我使用 Linux 作为日常驱动程序,刚刚将 Windows 10 安装到 PC 上的新物理磁盘上,以实现双启动。有一段时间,我通过 iSCSI 安装的 VirtualBox 映像使用 Windows 71。
现在我有两个不同的 Windows 环境,这非常令人沮丧。为了方便起见,我很想放弃 Windows 7 VM,直接通过 VirtualBox 访问 Windows 10 安装,但又不失去在需要原始性能时降级到双启动的能力。
是否可以通过 VirtualBox 在专用物理介质(内部 SATA3 SSD)上启动现有的 Windows 10 安装,同时又不失去双启动能力?
如果这让事情变得更加复杂(或不可能),值得注意的是 Windows 10 SSD 通过 VeraCrypt 使用 FDE 保护。
答案1
对的,这是可能的。
- 配置虚拟机以使用您的物理磁盘。这有点冒险,因为 VM 客户机将直接看到您的主机磁盘。详细信息这里。
- 授予您对物理磁盘的直接读/写访问权限 (
setfacl -m u:yourusername:rw /dev/sda
) - 更新您的 virtualbox VM 以使用与您的主机相同的系统 uuid(
dmidecode -s system-uuid
显示您的系统 uuid,vboxmanage modifyvm your-vm-name --hardwareuuid <your-hardware-uuid>
)。您可能还需要克隆您的驱动器控制器 uuid(lsblk --nodeps --no name,serial
显示您的主机的序列号。我不需要将它们克隆到我的 virtualbox 中,但可能需要。可能需要一些棘手的vboxmanage modifyvm
命令才能完成此操作,或者您必须手动编辑 vm 配置 xml。 - 尝试在 VM 中设置与主机相同的光盘和 DVD 控制器类型(如果主机是基于 SATA 的,则使用 SATA 虚拟控制器,如果主机是基于 IDE 的,则使用 IDE 控制器,等等)。
还有另一个危险:如果您在虚拟机中直接启动主机驱动器,则可能会启动同一个操作系统两次。或者打开同一个分区两次。这会破坏您的数据,因此切勿同时挂载多个分区。此外,不要在 Windows 使用 NTFS 分区时挂载它们(但您仍然可以在分区之间共享数据,例如使用 Samba)。
如果意外发生,请使用 sysrq(alt+printscreen+b)重新启动并 fsck 所有内容。为此可能还需要一些 grub 技巧(我重新配置了 grub 以默认启动 Windows,因此我避免了在 Windows VM 中意外再次启动 Linux 的问题 - 这肯定会发生,因为 Windows Update 经常会在您不知情的情况下重新启动 Windows)。
注意:Win10 使用您的系统 uuid 和驱动器控制器 uuid 来识别您的 PC。如果您错过了 (3),您的 win10 会认为它被克隆到一台新机器上,并且不会再被激活。不过,如果您重新启动到原始硬件,它将再次被激活。
答案2
我成功使用 Windows 10 作为客户机并使用 Linux Mint 作为主机。
首先你必须卸载所有 Windows 10 更新(以防万一,可能没用)然后:在 Linux 下打开控制台并逐行执行:
sudo su
fdisk -l # looking for EFI et Microsoft basic data for me 1 and 3 of sdb
VBoxManage internalcommands createrawvmdk -filename /home/borto/ww10.vmdk -rawdisk /dev/sdb -partitions 1,3 -relative
在虚拟盒中添加机器(始终使用“sudo virtualbox”作为 root)并在系统选项卡中启用 EFI,并选择 Windows XP 64 而不是 Windows 10,否则您只会得到一个漂亮的冻结 Windows 10 标志。就是这样。