QEMU/Windows XP
GNU/Linux、OSX 和 FreeBSD 都是优秀的操作系统,但有时您只需要运行 Windows 程序。这可以通过几种不同的方式实现,例如
- Wine 将直接在 Linux/OSX/*BSD 中运行一些 Windows 程序
- rdesktop 在 Linux/OSX/*BSD 上运行的 Windows 计算机上为您提供远程桌面
- 双重启动 允许您在启动计算机时选择要运行的操作系统
- QEMU 允许您将 Windows 作为 Linux/OSX/*BSD 下运行的另一个程序来运行
前三个选项有一些主要的优点,尤其是性能,但并不总是实用的。有些 Windows 程序无法在 Wine 中运行,或者至少无法正常运行;rdesktop 要求您能够访问在另一台计算机上运行的 Windows;双重启动意味着您无法在运行 Windows 时运行操作系统的本机程序。
如果您拥有合法的 Windows XP Pro 许可证副本,则可以创建 QEMU 镜像并在 Linux/OSX/*BSD 计算机上运行 Windows。注意:您可能无法使用 Windows XP 的 OEM 版本,因为它可能被锁定到它附带的硬件(而不是 QEMU 模拟的硬件)。
由另一位读者添加:OEM Windows 和零售 Windows 之间并没有太大区别。对于某些用户来说,差异可能令人惊讶,但在您的 setup.ini 文件中,该文件位于 386 目录文件夹中。该 pid 可以更改为将零售副本转换为 OEM 或反之亦然。OEM 未编码到任何硬件,但 OEM 的密钥不同。我有两个合法的 OEM 密钥,没有光盘。这就是我发现它的方式;很多用户遇到了这个问题,因为机器并不总是提供光盘,而是经常复制到目录中,用户往往会因为硬盘故障而丢失它们,或者忘记它在那里,然后借用或下载 Windows XP 的 ISO 镜像,发现他们无法使用自己的密钥。好吧,你可以通过更改 pid 来做到这一点。因此,我相信您可以使用您的 OEM Windows XP 以及 QEMU 的零售版。因为 ini 文件中只有几个数字和字母是不同的。
读者脚注:请注意,一些 OEM 品牌的 Windows 包含产品品牌,甚至有一些 Windows 的驱动程序集非常有限。它不像缺乏广泛支持那样被锁定到硬件上。通常可以从制造商网站找到驱动程序。
基本设置 指示适用于为 QEMU 创建基本的 Windows XP 镜像。为了使事情变得更轻松,请将 Windows XP 光盘复制到 ISO 镜像,以便您可以轻松地将其重新连接到系统(例如,安装额外的网络组件,如 IIS Web 服务器)。
请注意,3 GB 可能不够,这取决于您将在 Windows 下安装的软件,并且在安装了软件的 NTFS 分区上扩展 NTFS 分区并不容易。更好的基础大小将是 10 GB,但是,通过稍微调整虚拟内存和休眠设置,基本的 Windows XP 将可以在 3 GB 上运行。将数据文件存储在 Linux/Unix 上并通过 SAMBA 访问它们也有助于减少对更大 QEMU 镜像文件的需求。
即使使用 KVM 内核模块,在 QEMU 下运行 Windows 也可能非常慢。虽然直接代码运行很快,但需要模拟的系统调用(尤其是对显卡的调用)会使事情看起来非常慢和迟钝。可以通过关闭 Windows XP 引入的一些 GUI 炫耀来轻松改善这种情况。从控制面板打开系统属性小程序,选择高级选项卡,然后打开性能设置。请参阅右侧的图像,了解您可以关闭以提高性能的一些示例设置,或者只需通过选择“调整以获得最佳性能”来关闭所有设置。注意:如果您使用 RDP(远程桌面)连接到 Windows XP 镜像,则这些设置将默认情况下为您选择;RDP 可能是让 Windows XP 桌面在其他操作系统中可见的最快方式,但需要一些网络配置(见下文)。
当您打开系统属性小程序时,您也可能要关闭 系统还原。这会消耗更多资源,如果您保留了镜像的备份副本(始终是一个好主意),则可以省去它。
您可能不需要的另一件事是 Windows Update。您随时可以激活更新,那么为什么在您试图在 QEMU 下的 Windows 中完成某项操作时让 Windows 启动更新呢?注意:如果您将在 Windows XP 镜像中进行任何 Internet 浏览,尤其是使用 Internet Explorer,则完全禁用 Windows Update 非常危险。将更新安排在固定时间或使用“为我下载更新,但我选择何时安装它们”选项可能更安全。
除非您想使用某些自定义软件测试休眠/恢复系统,否则您可能希望关闭 休眠。这将释放一些磁盘空间,与您为 QEMU 分配的 RAM 一样多(因此可能是 256 MB 或更多)。在处理空间有限的镜像时,可以很高兴地恢复这些空间。
如果您有几个不同的 Windows XP QEMU 镜像,例如要测试不同版本的软件或支持不同的开发环境,您可以将 Windows 分页文件 移到另一个磁盘镜像并共享它。注意:您只能在一次只运行一个 QEMU 实例的情况下共享分页文件!使用 qemu-img
创建一个使用原始格式的简单分页文件镜像,从 QEMU 中的 Windows XP 对其进行 NTFS 格式化,然后在系统属性小程序中将您的分页文件移到新驱动器。
您可能希望在 Windows XP 镜像上运行病毒扫描程序(您可能应该这样做!)。如果您这样做,请记住关闭自动更新以改善启动时间。只需记住偶尔运行更新!注意:与 Windows Update 一样,如果您将在 Windows XP 镜像中进行任何 Internet 浏览,则完全禁用病毒扫描程序的自动更新功能非常危险。如果您的软件提供计划更新功能,设置计划到非中断时间,而不是依赖内存来完成此任务会更安全。
如果您只打算使用 Windows XP 来宾操作系统外部的网络资源,那么您可能无需执行任何特殊操作来使网络正常运行。QEMU 默认情况下将提供用户模式网络,让来宾操作系统访问 Linux/unix 主机可以访问的基于 TCP 和 UDP 的网络。默认情况下,Windows XP 将打开 DHCP,因此会自动由 QEMU 的虚拟 DHCP 服务器(地址从 10.0.2.15 开始)分配 IP 地址。
此设置将允许您从来宾操作系统访问 Internet,并允许您将 Windows 驱动器映射到真实世界网络上的 SAMBA 共享或 QEMU 中的虚拟 SAMBA 服务器(10.0.2.4)。例如,如果您需要在 Internet Explorer 中测试网页,您将能够在 Internet 上浏览它们,或者如果您在本地托管它们,则可以通过键入 Linux/unix 主机的网络 IP 地址来浏览它们。要通过主机文件中的名称访问网络资源,请编辑 Windows 中的本地主机文件。
notepad \windows\system32\drivers\etc\hosts
如果您需要从 Linux/unix 主机访问 Windows XP 来宾操作系统上的网络资源,您将需要做更多工作。用户模式网络 展示了如何配置 QEMU 以将端口转发到来宾操作系统以进行 Windows 文件共享和提供网页。如果您想继续维护一些 ASP 网站,但不想离开 Linux/unix 桌面的舒适性和它的工具,您可以使用此技术让您能够在主机操作系统下挂载 QEMU 来宾操作系统上的 Windows 文件共享。只需使用适当的权限共享文件夹 C:\inetpub\wwwroot\
,您就可以开始了。