双启动 Windows 和 Linux 是有据可查的,就像在其中一个可启动操作系统中以 VM 形式运行另一个可启动操作系统一样(例如,双启动 Windows 和 Ubuntu;在 Windows 中,使用 VMWare Workstation/Player/等在 VM 中托管 Ubuntu)。
我正在计划构建,并且想要两全其美:能够启动 Windows 8 并在 VM 中运行 Ubuntu,然后启动相同的 Ubuntu 安装并在 VM 中运行相同的 Windows 8 安装,两个操作系统共享一个用于项目文件的分区等。这似乎是可能的。
- 有哪些警告会使这一过程变得不可能 / 极其困难 / 不稳定?
- 是否有任何建议的磁盘配置(两个物理驱动器等)?
更新:
我找到了一些关于如何在此设置中运行 Windows 7 和 8 的信息。它非常具有黑客攻击性,很有可能会破坏您的 Windows 安装,但如果有人比我更热衷于此:http://geekery.amhill.net/2010/01/27/virtualbox-with-existing-windows-partition/
答案1
这部分是关键:
在虚拟机中运行相同的 Windows 8 安装
是的,有一些严重的问题会使这变得极其困难,甚至可能不稳定。虚拟机监视器 (VMM)(如 VirtualBox、VMware Workstation/Player、Virtual PC 等)通常呈现的虚拟化硬件与实际系统所具有的硬件不同。
基于 QEMU 的 VMM 通常向客户操作系统提供 PIIX3 芯片组。VirtualBox 为 PIIX3 提供 ICH9 选项。VMware Workstation 和 VMware Player 也模拟芯片组,而您的 PC 可能没有这种芯片组。
在以前的 Windows 版本中,有一个选择硬件配置文件的功能,这可能允许您安全地完成此操作,但这可能不是它的预期用途。实际上也没有很好的方法来自动选择配置文件。
您的真实硬件和虚拟化硬件之间会有很大差异的其他功能包括:视频适配器(任何加速图形都需要半虚拟化驱动程序,而这很可能会失败)、磁盘控制器(如果您有真实的硬件,例如 LSI 1068e、真正的 BusLogic 卡,您也许能够实现这一点,或者最有可能的是,您可以将磁盘控制器设置为显示 AHCI SATA 接口并让您的 VMM 显示可启动的 AHCI 磁盘控制器)、USB(如果您有英特尔主板,您可能有一个 UHCI USB 1.x 控制器,而不是 VirtualBox 提供的 OHCI)、音频(SoundBlaster 16 和 Ensoniq Audio PCI 通常是模拟的,但是是过时的硬件)等。
在 Linux 上执行此操作并不是那么糟糕,因为呈现给操作系统的大多数硬件配置详细信息都是在启动时选择的,除了 udev 规则之类的内容,所以您可能会得到奇怪的网络接口名称。
我认为,真正的危险在于 VMM 的半虚拟化驱动程序通过执行真实平台上未定义的事情来执行超级调用。如果半虚拟化驱动程序盲目地认为 VMM 存在而不进行检查,则很可能会导致您的内核触发意外故障,这会导致 Linux 上的内核崩溃和 Windows 上的 BSoD(如果您不先触发三重故障关闭)。这种情况有多大可能?实际上,我在 Linux 上遇到过这个问题,PV VMware 显示驱动程序触发了 Virtual PC 上的挂起。