运行虚拟机 VirtualBox 4.2 关于无头 Fedora 18 服务器

本指南解释了如何运行虚拟机 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 loop txqueuelen 0 (Local Loopback) RX 数据包 6 字节 624 (624.0 B) RX 错误 0 丢弃 0 溢出 0 帧 0 字节 624 数据包624.0 B) TX 错误 0 丢弃 0 溢出 0 载波 0 冲突 0

p2p1: flags=4163 mtu 1500

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: