如何在 FreeBSD 的 QEMU 虚拟机上跑 Windows

FreeBSD 和 Windows 不是鱼和熊掌的关系,二者兼得在同一机器上,或者以双系统的方式(见Windows XP + FreeBSD 双系统),或者以虚拟机的方式。

虚拟机的方式分为:(1)在 Windows 的某个虚拟机(如 VirtualBox)里跑 FreeBSD,(2)在 FreeBSD 的某个虚拟机(如 QEMU)里跑 Windows。前者没啥好说的,用过 VirtualBox 的都知道,那叫一个爽。这个小 wiki 只谈后者,它较少被涉猎,其实也可以超级爽(例如这个帖子,就是在这个环境下写完的)。对于主打 FreeBSD,偶尔以 Windows 为娱乐的朋友,本帖算是抛砖引玉吧。

QEMU 是法国黑客 Fabrice Bellard 的杰作,他还是 FFmpeg 的开发者。Qemu 和 VMware、VirtualBox 并列为最优秀的虚拟机。然而,在 FreeBSD 的环境里,我还是倾向于用 QEMU,因为它是命令行的。而 VirtualBox 要安装对我而言大而无用的 qt4。

准备工作:安装 qemu

/usr/ports/emulators/qemu,记得在 make config 时,选中 ADD_AUDIO 和 KQEMU 两项。如果没有 KQEMU 模块,QEMU 慢得像牛。这一点很重要,很多朋友拿裸 QEMU 和 VMware、VirtualBox 比速度,非常不厚道。

另外,Linux 实现了基于内核的虚拟机 KVM (Kernel-based Virtual Machine),目前硬件只支持 Intel VT 及 AMD-V。KQEMU 对硬件没啥特殊要求。

在虚拟机里安装 Windows XP

我的机器是二手笔记本 Thinkpad X200,目前上面只安装了 FreeBSD 9.2 stable。下面介绍如何在 QEMU 虚拟机上安装 Windows XP。为啥选 XP?因为它的 Ghost 安装文件到处都能找到。下载一个 Ghost XP 文件,不妨称为 WindowsXP.iso,譬如存在 /media/qemu/。我给 Windows 环境分配 40G 的虚拟硬盘空间,分配 1024M 内存。

# kldload kqemu
# kldload aio
# cd /media/qemu
# qemu-img create -f qcow2 winxp.img 40G
# qemu -cdrom WindowsXP.iso -hda winxp.img -m 1024 -boot d -kernel-kqemu -localtime

为了确保 kqemu 模块可用,按住左边的 Ctrl + Alt + 2,键入 info kqemu,可见 kquemu support: enabled for user and kernel code。再按住左边的 Ctrl + Alt + 1 可退出。

Ghost 安装 XP 过程很简单,先将虚拟硬盘分区,再将 XP Ghost 到 C 盘,大概需要六分钟左右的时间。安装结束后,不要重启机器,直接 CTRL + C 中断。

# qemu -hda winxp.img -m 1024 -kernel-kqemu -soundhw ac97 -localtime

启动机器,进入 XP 安装的最后环节。很快,XP 就运行于虚拟环境之中了。

FreeBSD 里的设置,可参考 https://wiki.freebsd.org/qemu。包括,

  • 在 /etc/rc.conf 里添加
devfs_system_ruleset="localrules"
kqemu_enable="YES"
  • 在 /boot/loader.conf 里添加
if_bridge_load="YES"
if_tap_load="YES"
aio_load="YES"
kqemu_load="YES"
  • 在 /etc/sysctl.conf 里添加
net.link.tap.up_on_open=1
net.link.tap.user_open=1

效果

在我的 Thinkpad X200 上,几乎能达到实机的速度。因为我用 DWM,内存消耗少。现在 FreeBSD 里开着 Opera 查资料,同时跑虚拟的 XP,边听酷我音乐盒里邓紫棋的歌,边写着这帖子,内存总消耗大致 1.8G 左右。相对于 3G 的内存来说,完全可以承受。

另外,分配给虚拟机的内存最多为实际内存的一半,例如我的机器,最多为 1.5G。一般地,给 1G 就差不多了。

特别声明

在 FreeBSD 的虚拟机 QEMU 里删除 XP 非常之简单,只需要删除那个 img 文件即可。比起双系统下删除 XP 可谓瞬间灭迹。

本帖所讨论的 Ghost 安装 XP 仅仅为了测试,请读者自觉遵守涉及版权的法律,购买和使用正版软件。

买不起正版的,或者不愿意为它付钱的,就加入 FreeBSD 和自由软件的大军吧。

转自:https://wiki.freebsdchina.org/doc/q/qemu

此条目发表在BSD分类目录,贴了, , , , 标签。将固定链接加入收藏夹。