本指南解释了如何运行虚拟机 VirtualBox 4.2 在无头 Fedora 18台服务器。 通常你使用 VirtualBox GUI 来管理您的虚拟机,但服务器没有桌面环境。 幸运的是, VirtualBox 附带一个名为 VBoxHeadless 的工具,它允许您通过远程桌面连接连接到虚拟机,因此不需要 VirtualBox GUI.
1 初步说明
我已经在一个 Fedora 18 服务器(主机系统),IP 地址为 192.168.0.100,我以普通用户身份登录(用户名 admin 在这个例子中)而不是 asroot。
如果你只有root账号,没有普通用户账号,请按如下方式创建一个(用户 admin, 团体 admin)…
# groupadd admin # useradd -d /home/admin -m -g admin -s /bin/bash admin
…为新用户创建密码…
# passwd admin
…并以该用户身份登录。
2 安装 VirtualBox
安装 VirtualBox 4.2 关于我们 Fedora 18个服务器,我们需要root权限,所以我们运行
$ su
确保您的内核是最新的:
yum install kernel
如果内核得到更新,您必须重新启动…
reboot
再次以普通用户身份登录并成为 root:
su
然后我们安装依赖 VirtualBox 4.2 如下:
# yum groupinstall 'Development Tools' # yum groupinstall 'Development Libraries' # yum install SDL kernel-devel kernel-headers dkms
接下来下载并注册 VirtualBox 公共 rpm 密钥:
# wget -q https://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc # rpm --import oracle_vbox.asc # rm -f oracle_vbox.asc
现在我们启用 VirtualBox Fedora 我们系统上的存储库:
# cd /etc/yum.repos.d/ # wget https://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo
我们现在可以简单地安装 VirtualBox 4.2 如下:
# yum install VirtualBox-4.2
从 4.0 版开始, VirtualBox 引入了所谓的“扩展包”并外包了一些功能,例如远程桌面连接支持 (VRDP) VirtualBox 4.0 版之前的包到这些扩展包中。 因为我们需要远程桌面连接来控制我们的虚拟机,所以我们现在需要安装适当的扩展包。 去 https://www.virtualbox.org/wiki/Downloads,您将找到以下扩展包的链接:
VirtualBox 4.2.6 甲骨文虚拟机 VirtualBox 扩展包
支持 USB 2.0 设备, VirtualBox Intel 卡的 RDP 和 PXE 引导。
下载并安装扩展包如下:
# cd /tmp # wget https://download.virtualbox.org/virtualbox/4.2.6/Oracle_VM_VirtualBox_Extension_Pack-4.2.6-82870.vbox-extpack # VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.2.6-82870.vbox-extpack
(确保您从 VirtualBox 网站。)
现在我们必须添加将运行的用户 VirtualBox (admin 在本例中)到 vboxusers 组:
# /usr/sbin/usermod -G vboxusers admin
VirtualBox 现在已安装并可以使用。
类型
# exit
离开root账户,成为普通用户(admin) 再次。
3 使用 VirtualBox 在命令行上
3.1 创建虚拟机
要在命令行上创建 VM,我们可以使用 VBoxManage 命令。 看
$ VBoxManage --help
有关可用开关的列表和(强烈推荐!)查看 https://www.virtualbox.org/manual/ch08.html.
在我们创建虚拟机之前,我们需要找出主要网络设备是如何命名的 Fedora:
$ ifconfig [[email protected] ~]$ ifconfig lo: flags=73<UP,LOOPBACK,RUNNING> mtu 16436
inet 127.0.0.1 网络掩码 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10
p2p1: flags=4163
inet 192.168.0.100 网络掩码 255.255.255.0 广播 192.168.0.255 inet6 fe80::a00:27ff:fe08:1269 prefixlen 64 scopeid 0x20 ether 08:08:1209trx7que09tx7que07070708字节 113684403 (108.4 MiB) RX 错误 0 丢弃 0 溢出 0 帧 0 TX 数据包 42260 字节 3541430 (3.3 MiB) TX 错误 0 丢弃 0 溢出 0 载波 0 冲突 0
[[email protected] ~]$
如您所见,在这种情况下它被命名为 p2p1 – 请记住这一点。
我现在将从 Ubuntu 12.10 Server iso 映像(我已存储在 /home/ubuntu-12.10-server-amd64.iso 中)创建一个具有 1024MB 内存和 10GB 硬盘驱动器的 Ubuntu 12.10 Server VM:
$ VBoxManage createvm --name "Ubuntu 12.10 Server" --register
在下一个命令中,我们必须指定正确的网络接口(在我的例子中是 p2p1):
$ VBoxManage modifyvm "Ubuntu 12.10 Server" --memory 1024 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 p2p1 $ VBoxManage createhd --filename Ubuntu_12_10_Server.vdi --size 10000 $ VBoxManage storagectl "Ubuntu 12.10 Server" --name "IDE Controller" --add ide $ VBoxManage storageattach "Ubuntu 12.10 Server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Ubuntu_12_10_Server.vdi $ VBoxManage storageattach "Ubuntu 12.10 Server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/ubuntu-12.10-server-amd64.iso
3.2 导入现有虚拟机
假设您有一个名为 examplevm 的虚拟机,您希望在该主机上重用它。 在旧主机上,您应该有一个目录 Machines/examplevm 在 VirtualBox 目录;Machines/examplevm 应包含 examplevm.xml 文件。 将examplevm目录(包括examplevm.xml文件)复制到你的新机器目录(如果你的用户名是admin,这是/home/admin/.VirtualBox/Machines – 结果应该是 /home/admin/.VirtualBox/Machines/examplevm/examplevm.xml)。
除此之外,将 examplevm.vdi 文件从旧 VDI 目录复制到新目录(例如 /home/admin/.VirtualBox/VDI/examplevm.vdi)。
之后,您必须注册导入的 VM:
$ VBoxManage registervm Machines/examplevm/examplevm.xml
3.3 使用 VBoxHeadless 启动虚拟机
无论是创建新 VM 还是导入旧 VM,都可以使用以下命令启动它:
$ VBoxHeadless --startvm "Ubuntu 12.10 Server"
(将 Ubuntu 12.10 Server 替换为您的 VM 名称。)
VBoxHeadless 将启动 VM 和一个 VRDP (VirtualBox 远程桌面协议)服务器,它允许您在另一台机器上远程查看 VM 的输出。
要停止 VM,请运行
$ VBoxManage controlvm "Ubuntu 12.10 Server" poweroff
要暂停 VM,请运行
$ VBoxManage controlvm "Ubuntu 12.10 Server" pause
要重置 VM,请运行
$ VBoxManage controlvm "Ubuntu 12.10 Server" reset
要了解有关 VBoxHeadless 的更多信息,请查看
$ VBoxHeadless --help
4 从远程桌面连接到虚拟机
4.1 视窗 XP
您可以使用内置的远程桌面连接实用程序连接到 VM: