VBoxHeadless - 使用VirtualBox 4.1在无头Ubuntu 11.10服务器上运行虚拟机
本指南介绍如何在无头Ubuntu 11.10服务器上运行VirtualBox 4.1的虚拟机。 通常,您使用VirtualBox GUI来管理虚拟机,但服务器没有桌面环境。 幸运的是,VirtualBox带有一个名为VBoxHeadless的工具,允许您通过远程桌面连接连接到虚拟机,因此不需要VirtualBox GUI。
我不会保证这将为您工作!
1初步说明
我已经在Ubuntu 11.10服务器(主机系统)上测试了这个IP地址为192.168.0.100
,我以普通用户(在这个例子中是用户名管理员
)而不是根用户登录
。
2安装VirtualBox
要在我们的Ubuntu 11.10服务器上安装VirtualBox 4.1,我们打开/etc/apt/sources.list
...
sudo vi /etc/apt/sources.list
...并添加以下行:
[...] deb http://download.virtualbox.org/virtualbox/debian oneiric contrib |
然后我们下载VirtualBox公钥
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
...并更新我们的包数据库:
sudo apt-get update
之后,我们安装VirtualBox 4.1如下:
sudo apt-get install linux-headers-$(uname -r) build-essential virtualbox-4.1 dkms
(如果Linux内核版本更改,则dkms
软件包可确保VirtualBox主机内核模块正确更新。)
从版本4.0开始,VirtualBox引入了所谓的“扩展包”,并将一些功能(如V4.4之前的VirtualBox包的一部分的远程桌面连接支持(VRDP))外包给这些扩展包。 因为我们需要远程桌面连接来控制我们的虚拟机,所以我们需要安装相应的扩展包。 转到http://www.virtualbox.org/wiki/Downloads ,您将找到以下扩展程序包的链接:
VirtualBox 4.1.8 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.1.8/Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack
(确保您从VirtualBox网站获取最新版本。)
(确保你运行最后一个命令sudo - sudo VBoxManage extpack install ...
- 因为否则你会得到一个这样的错误:
administrator@server1:/tmp$ VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack
0%...
Progress state: NS_ERROR_FAILURE
VBoxManage: error: Failed to install "/tmp/Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.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
组:
sudo adduser administrator vboxusers
VirtualBox现已安装并可以使用。
3在命令行上使用VirtualBox
3.1创建VM
要在命令行上创建一个虚拟机,我们可以使用VBoxManage
命令。 看到
VBoxManage --help
有关可用开关的列表(强烈推荐!),请查看http://www.virtualbox.org/manual/ch08.html 。
我现在将创建一个具有512MB内存的Ubuntu 11.10服务器虚拟机和一个10GB硬盘,从Ubuntu 11.10 Server iso映像(我存储在/home/ubuntu-11.10-server-amd64.iso中
):
VBoxManage createvm --name "Ubuntu 11.10 Server" --register
VBoxManage modifyvm "Ubuntu 11.10 Server" --memory 512 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0
VBoxManage createhd --filename Ubuntu_11_10_Server.vdi --size 10000
VBoxManage storagectl "Ubuntu 11.10 Server" --name "IDE Controller" --add ide
VBoxManage storageattach "Ubuntu 11.10 Server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Ubuntu_11_10_Server.vdi
VBoxManage storageattach "Ubuntu 11.10 Server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/ubuntu-11.10-server-amd64.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 "Ubuntu 11.10 Server"
(用您的虚拟机名称替换Ubuntu 11.10服务器
。)
VBoxHeadless
将启动虚拟机和VRDP( VirtualBox远程桌面协议
)服务器,允许您在另一台计算机上远程查看虚拟机的输出。
要停止VM,请运行
VBoxManage controlvm "Ubuntu 11.10 Server" poweroff
要暂停虚拟机,请运行
VBoxManage controlvm "Ubuntu 11.10 Server" pause
要重置VM,请运行
VBoxManage controlvm "Ubuntu 11.10 Server" reset
要了解有关VBoxHeadless的
更多信息,请查看
VBoxHeadless --help