Site Loader

VirtualBox是什么?

VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。已由甲骨文公司进行开发,是甲骨文公司xVM虚拟化平台技术的一部份。
VirtualBox号称是最强的免费虚拟机软件,它不仅具有丰富的特色,而且性能也很优异!它简单易用,可虚拟的系统包括Windows(从Windows 3.1到Windows 10、Windows Server 2012,所有的Windows系统都支持)、Mac OS X、Linux、OpenBSD、Solaris、IBM OS2甚至Android等操作系统!使用者可以在VirtualBox上安装并且运行上述的这些操作系统!

笔者这次遇到使用的软件会绑定机器的问题,同时需要在两台电脑上来回切换工作,每换绑一次都需要扣除相应币值。

正好有台跑私有云的服务器,心想不如用此服务器安装虚拟机系统跑Windows,软件装进去,远程使用不就解决了。

但私有云服务器上有很多重要数据,重做整个系统会疯的。那不如在现有系统上安装虚拟机?经过一番推敲,最后选择了VirtualBox。

注意:如原有系统有比较重要的数据,建议备份好再进行VirtualBox的安装操作。

部署环境

  • Ubuntu Server 20.04 LTS
  • Apache 2.4
  • PHP 7.4
  • VirtualBox 6.1.18
  • phpVirtualBox

原系统使用的是Ubuntu Server 20.04 LTS,已安装Apache及PHP,如未安装,请使用管理员运行以下命令安装即可,并且系统会自动安装相关依赖软件包。

sudo -i
apt install apache2
apt install php7.4

安装php7.4-xml及php7.4-soap,安装原毕,重启apache2服务。

apt install php7.4-xml php7.4-soap
service apache2 restart

下载适合Ubuntu20.04使用的VirtualBox 6.1.18到/var/tmp下

cd /var/tmp
wget https://download.virtualbox.org/virtualbox/6.1.18/virtualbox-6.1_6.1.18-142142~Ubuntu~eoan_amd64.deb

其它Linux版本可到https://www.virtualbox.org/wiki/Linux_Downloads查看下载。

按官方下载页提示,先安装密钥。

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

安装VirtualBox

dpkg -i virtualbox-6.1_6.1.18-142142~Ubuntu~eoan_amd64.deb

这次安装并未成功,提示缺少相关依赖软件包,如下图:

运行如下命令,修正并安装相关依赖软件包:

apt --fix-broken install

再次安装VirtualBox

dpkg -i virtualbox-6.1_6.1.18-142142~Ubuntu~eoan_amd64.deb

安装virtualbox-dkms

apt install virtualbox-dkms

安装virtualbox扩展包

打开VirtualBox官方下载页,https://download.virtualbox.org/virtualbox,进入对应的版本目录,右键复制virtualbox-ext-pack的下载地址

服务器上用wget进行下载

cd /var/tmp
wget https://download.virtualbox.org/virtualbox/6.1.18/Oracle_VM_VirtualBox_Extension_Pack-6.1.18-142142.vbox-extpack

运行安装命令

VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-6.1.18-142142.vbox-extpack

重启VirtualBox服务

service virtualbox restart

新建一个用户,名称自己定义,本文为runner,按提示设置好密码及相关信息,最后按“Y“确定。

adduser runner

并将用户添加到vboxusers组中(vboxusers分组在安装VirtualBox时已自动建立)。

usermod -aG vboxusers runner

输入如下命令,试试运行VirtualBox服务,看看是否成功。

vboxwebsrv -H 127.0.0.1

服务运行成功,但此时服务运行在前台,必须让服务在后台运行,才可进行下一步操作,ctrl+c终止服务,运行如下命令,让服务后台运行。

vboxwebsrv -b -H 127.0.0.1

安装phpVirtualBox

由于Ubuntu Server没有图形界面,配置VirtualBox都需要通过命令行,带来极大的不便,此时,需要借助phpVirtualBox实现web界面的管理。

打开https://github.com/phpvirtualbox/phpvirtualbox,点击右侧Code按键,鼠标指着Download ZIP右键,选择“复制链接地址”,终端登录服务器,粘贴下载地址,用wget将其下载到web默认目录/var/www/html下,也可下载到其它目录,解压后为其新建web虚拟机。

cd /var/www/html
wget https://github.com/phpvirtualbox/phpvirtualbox/archive/develop.zip

要注意的是,phpvirtualbox是需要匹配VirtualBox版本的,phpvirtualbox主页是6.1版本,笔者安装的VirtualBox也是6.1,所以下载上图链接即可,如下载5.2旧版,可从页面右侧链接进入。

解压下载到的zip文件

unzip develop.zip

解压出来目录名称是phpvirtualbox-develop,可将其更改为简短一些的目录名称,笔者将其改为phpvb。

mv phpvirtualbox-develop phpvb 

将phpvb及其下所有子目录和文件的拥有者改为apache2用户及组。

chown -R www-data:www-data phpvb

进入phpvb目录,把目录下的配置文件范本config.php-example拷贝给config.php。

cp config.php-example config.php

编辑config.php,找到username及password两个参数,将其默认值改为之前所建立的runner用户及密码。

找到vrdeaddress参数,将前面的#去掉,远程桌面地址改为Ubuntu Server主机的地址(强烈建议将Ubuntu Server的IP地址设为固定IP),保存并退出。

浏览器输入http://192.168.1.100/phpvb,打开phpvirtualbox登录页。192.168.1.100为Ubuntu Server的IP地址。

默认的Username及Password均为admin,点击登录,进入主界面。(确保VirtualBox服务已运行,否则会提示错误)

通过菜单选项更改显示语言

VirtualBox下安装Windows10(当然,也可以是其它操作系统)

在安装前,先准备两个镜像包,一个是Win10的ISO镜像,另一个是VirtualBox的增强工具。

Win10原版ISO镜像可到https://msdn.itellyou.cn/下载,VirtualBox增强工具可到https://download.virtualbox.org/virtualbox下载,VirtualBox增强工具也需要匹配版本,我们安装的VirtualBox版本是6.1.18,因此增强工具需要下载VBoxGuestAdditions_6.1.18.iso。

把两个ISO镜像上传到Ubuntu Server任意目录中。

现在开始安装Windows10

点击phpVirtualBox菜单的“新建“,名称自已按需定义,类型选择“Microsoft Windows”,版本选择“Windows 10(64-bit)”,点下一步。

主机总内存为8GB,这里分配4GB给Win10。

新建虚拟硬盘,选择“现在创建虚拟硬盘”并点击“创建“按键。

虚拟硬盘文件类型,选择默认的VDI即可,点击下一步。

虚拟硬盘的存储形式分为“动态分配”和“固定大小”,各有优缺点,自己按实际情况选择。

设置虚拟硬盘的极限大小,默认50GB,点击“创建”。

进一步配置网络,点击“网络“,在网卡1中,把连接方式改为“桥接网卡”,界面名称选择Ubuntu Server主机的物理网卡。

一切就绪,启动虚拟机,提示选择ISO镜像,然后选择Ubuntu Server主机上的Win10镜像,点击“启动”按键。

从右侧的预览窗口可看到当前系统界面,鼠标右键可设置刷新时间间隔。

phpVirtualBox只能对VirtualBox虚拟机进行配置操作,并不能对VB虚拟机所安装的系统进行实际操作,这时需要通过远程桌面服务实现对虚拟机系统的操作行为。

打开本地的“远程桌面连接”,计算机一栏输入Ubuntu Server主机的IP地址,后面跟上Win10虚拟机的远程端口号9000(端口号可更改,远程管理多个虚拟机时,是通过不同端口号区分开的),点“连接”。

成功连接到win10的安装界面,进行安装操作即可,具体的win10安装过程这里略过。

笔者发现一个问题,虚拟机与本地主机的鼠标指针有错位的情况,屏幕分辨率也很低,但不影响安装操作,后面可通过虚拟机安装增强工具解决。

Win10安装好了,但发现远程后系统分辨率低,鼠标指针错位等情况,这时我们需要在Win10里安装VB增强工具。

先关闭Win10虚拟机系统,在phpVirtualBox中打开Win10虚拟机设置,打开“存储”,我们看到已挂载了Win10的ISO镜像,选择后点击右面的光盘图标,将其替换为增强工具ISO镜像,或者新建一个光驱再加载增强工具ISO镜像也可。

设置好后,启动Win10虚拟机,再次远程,我们看到ISO镜像已加载成功。

打开光盘,点击VBoxWindowsAdditions进行安装,按提示操作即可。

安装完毕,提示重启,重启进入系统,此时系统已可全屏显示,鼠标指针也正常了。

至此,已成功在Ubuntu Server下使用VirtualBox虚拟机安装运行Windows。

如需开机自启VirtualBox服务,请参照站内文章《为Ubuntu Server 20.04设置开机自启》进行设置。