尝试通过 VirtualBox 从 Linux 启动到我物理安装的 Windows 10——两者都在同一个硬盘上。我阅读了很多资料:
- 使用物理硬盘分区作为 VirtualBox VM 和可启动分区
- VirtualBox 手册 - 第 05 章虚拟存储
- VirtualBox 手册 - 第 09 章高级主题
- 在 Linux 上的 VirtualBox 中运行真正的 Windows 安装
我遇到的问题是有一个启动分区来加载 Windows 10 EFI。
据我所知,这是我所进行的过程:
- 创建时间
.vmdk
:
sudo VBoxManage internalcommands createrawvmdk \
-filename win10.vmdk \
-rawdisk /dev/nvme0n1 -partitions 2,3,4 \
-relative -mbr win10.mbr
注意:分区 2、3 和 4 是 Microsoft 保留分区、主 NTFS 分区和 Windows RE。我不想有该/boot/efi
分区,因为在虚拟机中运行已安装的分区是不安全的。win10.mbr
来自dd if=/dev/nvme0n1 of=win10.mbr bs=512 count=1
。
/dev/nvme0n1
更改权限以允许我的用户对生成的文件(win10.vmdk
和)进行读/写访问win10-pt.vmdk
。在 VirtualBox 中创建虚拟机,使用
win10.vmdk
NVMe 控制器作为直写硬盘。此外,还启用了 UEFI。将虚拟机的硬件 ID 更改为我的。
当然,这会将我启动到 UEFI cli,因为没有安装启动分区。
将启动分区复制到
.iso
:dd if=/dev/nvme0n1p1 of=boot.iso
将设置
boot.iso
为虚拟机的光盘并启动。由于找不到 Linux 安装,因此启动到 grub-cli(很好,因为我不想通过访问已安装的分区来冒数据丢失的风险)从 grub cli 启动 Windows 10 EFI,但在加载 Windows 10 时,会出现蓝屏,提示启动分区无法访问(光盘在 VirtualBox 中是只读的,因此这是有道理的)
那么,如何获得用于启动 Windows 10 虚拟机的当前启动分区的副本?我正在考虑以某种方式使第一个分区指向.vmdk
一个.img
文件,分区 2、3 和 4 指向实际分区,而第 5 个分区将不指向任何内容(因为那是 Linux 分区,我不需要它,尤其是因为它存在数据丢失的风险)。当然,另一种实现相同目标的解决方案也很棒。