VBoxHeadless - 一个无头的Ubuntu 16.04 LTS服务器运行虚拟机VirtualBox的有5.1

本指南解释了如何在无头的Ubuntu 16.04服务器上使用VirtualBox 5.1运行虚拟机。通常你使用VirtualBox GUI来man ...

本指南介绍如何在无头Ubuntu 16.04服务器上运行VirtualBox 5.1的虚拟机。 通常,您使用VirtualBox GUI来管理虚拟机,但服务器没有桌面环境。 幸运的是,VirtualBox带有一个名为VBoxHeadless的工具,允许您通过远程桌面连接连接到虚拟机,因此不需要VirtualBox GUI。

1初步说明

我已经在Ubuntu 16.04服务器(主机系统)上测试过,IP地址为192.168.1.100 ,我以普通用户身份登录(在本例中为用户名管理员 ),而不是root用户身份

2安装VirtualBox

要在我们的Ubuntu 16.04服务器上安装VirtualBox 5.1,我们打开/etc/apt/sources.list ...

sudo nano /etc/apt/sources.list

...并添加以下行:

deb http://download.virtualbox.org/virtualbox/debian xenial contrib

然后我们下载VirtualBox公钥

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

...并更新我们的包数据库:

sudo apt-get update

之后,我们安装VirtualBox 5.1如下:

sudo apt-get install linux-headers-$(uname -r) build-essential virtualbox-5.1 dkms

(如果Linux内核版本更改,则dkms软件包可确保VirtualBox主机内核模块正确更新。)

从版本4.0开始,VirtualBox引入了所谓的“扩展包”,并将一些功能(如V4.4之前的VirtualBox包的一部分的远程桌面连接支持(VRDP))外包给这些扩展包。 因为我们需要远程桌面连接来控制我们的虚拟机,所以我们需要安装相应的扩展包。 转到http://www.virtualbox.org/wiki/Downloads ,您将找到以下扩展程序包的链接:

VirtualBox 5.1 Oracle VM VirtualBox Extension Pack

下载并安装扩展包如下:

cd /tmp
wget http://download.virtualbox.org/virtualbox/5.1.0/Oracle_VM_VirtualBox_Extension_Pack-5.1.0-108711.vbox-extpack
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.1.0-108711.vbox-extpack

(确保您从VirtualBox网站获取最新版本,并使用sudo使用VBoxManage安装extpack文件。)

现在我们必须添加将运行VirtualBox(在本例中为管理员 )的用户到vboxusers组:

sudo adduser administrator vboxusers

VirtualBox现已安装并可以使用。

3在命令行上使用VirtualBox

3.1创建VM

要在命令行上创建一个虚拟机,我们可以使用VBoxManage命令。 看到

VBoxManage --help

有关可用开关的列表(强烈推荐!),请查看http://www.virtualbox.org/manual/ch08.html

现在我将创建一个具有2048MB内存的Ubuntu 16.04服务器虚拟机和一个10GB硬盘从Ubuntu 16.04 Server iso映像(我存储在/home/administrator/iso/ubuntu-16.04-server-amd64.iso )中:

VBoxManage createvm --name "Ubuntu 16.04 Server" --register
VBoxManage modifyvm "Ubuntu 16.04 Server" --memory 2048 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 ens33
VBoxManage createhd --filename /home/administrator/Ubuntu_16_04_Server.vdi --size 10000
VBoxManage storagectl "Ubuntu 16.04 Server" --name "IDE Controller" --add ide
VBoxManage storageattach "Ubuntu 16.04 Server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /home/administrator/Ubuntu_16_04_Server.vdi
VBoxManage storageattach "Ubuntu 16.04 Server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/administrator/iso/ubuntu-16.04-server-amd64.iso
VBoxManage modifyvm "Ubuntu 16.04 Server" --vrde on

现在继续第3.3章启动vm,然后按照第4章所述,使用远程桌面客户机连接到虚拟机。

3.2导入现有虚拟机

假设你有一个叫做examplevm的虚拟机,你想在这个主机上重用。 在旧主机上,您应该在VirtualBox 目录中有一个目录Machines / examplevm; Machines / examplevm应包含examplevm.xml文件。 将examplevm目录(包括examplevm.xml文件)复制到新的机器目录(如果您的用户名是管理员,则为/home/administrator/.VirtualBox/Machines ),结果应为/home/administrator/.VirtualBox/Machines /examplevm/examplevm.xml )。

除了将examplevm.vdi文件从旧VDI目录复制到新VDI目录(例如/home/administrator/.VirtualBox/VDI/examplevm.vdi )之外。

之后,您必须注册导入的VM:

VBoxManage registervm Machines/examplevm/examplevm.xml

3.3使用VBoxHeadless启动虚拟机

无论创建新VM还是导入旧虚拟机,都可以使用以下命令启动它:

VBoxHeadless --startvm "Ubuntu 16.04 Server"

(用您的虚拟机名称替换Ubuntu 16.04服务器 。)

VBoxHeadless将启动虚拟机和VRDP( VirtualBox远程桌面协议 )服务器,允许您在另一台计算机上远程查看虚拟机的输出。

要停止VM,请运行

VBoxManage controlvm "Ubuntu 16.04 Server" poweroff

要暂停虚拟机,请运行

VBoxManage controlvm "Ubuntu 16.04 Server" pause

要重置VM,请运行

VBoxManage controlvm "Ubuntu 16.04 Server" reset

要了解有关VBoxHeadless的更多信息,请查看

VBoxHeadless --help

并在http://www.virtualbox.org/manual/ch07.html#vboxheadless

4从远程桌面连接到虚拟机

4.1 Windows

您可以使用内置的远程桌面连接实用程序连接到虚拟机。

键入主机的主机名或IP地址(不是客人!):

Windows RDP登录

和voilà,你应该连接到VM:

Ubuntu虚拟机通过RDP

4.2 Ubuntu桌面

在Ubuntu桌面上,您可以使用Remmina Remote Desktop Client或gnome-rdp连接到VM。

安装客户端apt:

sudo apt-get install remmina remmina-plugin-rdp

只需搜索Remmina ,然后双击Remmina Client图标启动RDP应用程序。

Remmina远程桌面客户端中 ,单击加号图标添加新的远程桌面连接:

Remmina开始了

远程桌面首选项窗口中,填写配置文件的名称(如Ubuntu 16.04服务器 ),确保选择了RDP作为协议(默认情况下应选择),然后填写主机IP地址 - 而不是IP的VirtualBox客人! - 在“ 服务器”字段中,选择较高的颜色深度,而不是默认的8bpp-16bpp就可以了。 然后点击连接

Remmina登录详细信息。

和voilà,你应该连接到VM:

Ubuntu VM通过Remmina RDP。

4.3如果远程桌面连接不起作用...

如果远程桌面连接不起作用,则可能错过了第2章中安装VirtualBox扩展包的步骤。请现在安装扩展包,停止虚拟机(请参见第3.3章),并修改虚拟机接受远程桌面连接:

VBoxManage modifyvm "Ubuntu 16.04 Server" --vrde on

(如果在创建虚拟机时已经安装了扩展包,则会自动启用远程桌面连接。)

然后再次启动虚拟机。