VBoxHeadless  - 使用VirtualBox 4.1在无头Ubuntu 12.04服务器上运行虚拟机

VBoxHeadless - 使用VirtualBox 4.1在无头Ubuntu 12.04服务器上运行虚拟机

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

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

1初步说明

我已经在Ubuntu 12.04服务器(主机系统)上测试了这个IP地址192.168.0.100 ,我以普通用户(在这个例子中是用户名管理员 )而不是根用户登录

2安装VirtualBox

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

sudo vi /etc/apt/sources.list

...并添加以下行:

[...]
deb http://download.virtualbox.org/virtualbox/debian precise 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.18 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.18/Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack

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

(确保你运行最后一个命令sudo - sudo VBoxManage extpack install ... - 因为否则你会得到一个这样的错误:

administrator@server1:/tmp$ VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack
0%...
Progress state: NS_ERROR_FAILURE
VBoxManage: error: Failed to install "/tmp/Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.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 12.04服务器虚拟机和一个10GB硬盘,从Ubuntu 12.04 Server iso映像(我存储在/home/ubuntu-12.04-server-amd64.iso )中:

VBoxManage createvm --name "Ubuntu 12.04 Server" --register
VBoxManage modifyvm "Ubuntu 12.04 Server" --memory 512 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0
VBoxManage createhd --filename Ubuntu_12_04_Server.vdi --size 10000
VBoxManage storagectl "Ubuntu 12.04 Server" --name "IDE Controller" --add ide
VBoxManage storageattach "Ubuntu 12.04 Server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Ubuntu_12_04_Server.vdi
VBoxManage storageattach "Ubuntu 12.04 Server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/ubuntu-12.04-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 12.04 Server"

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

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

要停止VM,请运行

VBoxManage controlvm "Ubuntu 12.04 Server" poweroff

要暂停虚拟机,请运行

VBoxManage controlvm "Ubuntu 12.04 Server" pause

要重置VM,请运行

VBoxManage controlvm "Ubuntu 12.04 Server" reset

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

VBoxHeadless --help

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

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏