VBoxHeadless - 使用VirtualBox 4.0在无头Debian挤压服务器上运行虚拟机

VBoxHeadless - 使用VirtualBox 4.0在无头Debian挤压服务器上运行虚拟机 本指南解释了如何运行虚拟机...

VBoxHeadless - 运行虚拟机与VirtualBox 4.0在无头Debian挤压服务器

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

我不会保证这将为您工作!

1初步说明

我已经在IP地址为192.168.0.100的Debian Squeeze服务器(主机系统)上进行了测试 ,我以普通用户身份登录(在本例中为用户名管理员 ),而不是根用户登录

如果您只有root帐户,但没有正常的用户帐户,请创建如下(用户管理员 ,组管理员 )...

# groupadd administrator
# useradd -d /home/administrator -m -g administrator -s /bin/bash administrator

...为新用户创建密码...

# passwd administrator

...并以该用户身份登录。

2安装VirtualBox

要在我们的Debian Squeeze服务器上安装VirtualBox 4.0,我们需要root权限,因此我们运行

$ su

然后我们将VirtualBox存储库添加到我们的apt配置中:

# echo "deb http://download.virtualbox.org/virtualbox/debian squeeze contrib non-free" > /etc/apt/sources.list.d/virtualbox.list

然后我们下载VirtualBox公钥

# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add -

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

# apt-get update

现在我们将系统更新:

# apt-get upgrade

(可能内核得到更新,如果是这种情况,请重新启动系统...

# reboot

...再次以普通用户身份登录,成为root用户:

$ su

之后,我们安装VirtualBox 4.0,如下所示:

# apt-get install linux-headers-$(uname -r) build-essential virtualbox-4.0 dkms

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

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

VirtualBox 4.0.6 Oracle VM VirtualBox Extension Pack
Support for USB 2.0 devices, VirtualBox RDP and PXE boot for Intel cards.

下载并安装扩展包如下:

# cd /tmp
# wget http://download.virtualbox.org/virtualbox/4.0.6/Oracle_VM_VirtualBox_Extension_Pack-4.0.6-71344.vbox-extpack
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.0.6-71344.vbox-extpack

(确保您从VirtualBox网站获取最新版本。)

(确保使用root权限运行最后一个命令 - #VBoxManage extpack install ... - 否则您将收到以下错误:

administrator@server1:/tmp$ VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.0.6-71344.vbox-extpack
0%...
Progress state: NS_ERROR_FAILURE
VBoxManage: error: Failed to install "/tmp/Oracle_VM_VirtualBox_Extension_Pack-4.0.6-71344.vbox-extpack": The installer failed with exit code 127: Error creating textual authentication agent: Error opening current controlling terminal for the process (`/dev/tty'): No such device or address
administrator@server1:/tmp$

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

# adduser administrator vboxusers

VirtualBox现已安装并可以使用。

类型

# exit

离开root帐户,再次成为普通用户( 管理员 )。

3在命令行上使用VirtualBox

3.1创建VM

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

$ VBoxManage --help

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

现在我将使用Debian Squeeze Netinstall iso映像创建一个512MB内存的Debian Squeeze Server VM和一个10GB的硬盘驱动器(我存储在/home/debian-6.0.1a-amd64-netinst.iso中 ):

$ VBoxManage createvm --name "Debian Squeeze Server" --register
$ VBoxManage modifyvm "Debian Squeeze Server" --memory 512 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0
$ VBoxManage createhd --filename Debian_Squeeze_Server.vdi --size 10000
$ VBoxManage storagectl "Debian Squeeze Server" --name "IDE Controller" --add ide
$ VBoxManage storageattach "Debian Squeeze Server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Debian_Squeeze_Server.vdi
$ VBoxManage storageattach "Debian Squeeze Server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/debian-6.0.1a-amd64-netinst.iso

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 "Debian Squeeze Server"

(用虚拟机的名称替换Debian Squeeze Server 。)

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

要停止VM,请运行

$ VBoxManage controlvm "Debian Squeeze Server" poweroff

要暂停虚拟机,请运行

$ VBoxManage controlvm "Debian Squeeze Server" pause

要重置VM,请运行

$ VBoxManage controlvm "Debian Squeeze Server" reset

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

$ VBoxHeadless --help

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