我克隆了一个 GPT 格式的磁盘,其中包含双启动(Windows + Linux Debian),它在真实机器上运行良好。
我尝试使用 Qemu 创建使用克隆磁盘的 VM,使其在 Debian 分区上启动,但我能做的最好的就是启动 Windows。
这是我使用的命令:
virt-install \
--name "vm-test_dual_boot" \
--boot loader=/usr/share/OVMF/OVMF_CODE.fd \
--vcpus 2 --memory 8192 --osinfo debian11 \
--network bridge=br0 \
--graphics=vnc \
--disk path=/home/user/vm/clone.qcow2 \
--import -v
我无法做与真正的 UEFI 机器一样的事情,将HD(1,GPT,unique_identifier)
文件系统与\EFI\debian\shimx64.efi
文件关联起来。
你能帮助我启动 Debian 吗?
感谢@telcoM,我更改了命令:
boot_config=\
"loader=/usr/share/OVMF/OVMF_CODE_4M.fd,"\
"loader.readonly=yes,"\
"loader.type=pflash,"\
"nvram.template=/usr/share/OVMF/OVMF_VARS_4M.ms.fd,"\
"nvram=/home/user/vm/clone_nvram.fd" ;
virt-install \
--name "vm-test_dual_boot" \
--boot $boot_config \
--vcpus 2 --memory 8192 --osinfo win10 \
--network bridge=br0 \
--graphics=vnc \
--disk path=/home/user/vm/clone.qcow2 \
--import -v
笔记:
从目录
/usr/share/OVMF
loader
必须nvram.template
与然后OVMF_CODE_4M.fd
到匹配OVMF_VARS_4M.ms.fd
,所以在我的情况下,这会触发此错误:“Guest 尚未初始化显示(尚未)”。/etc/libvirt/qemu.conf
(默认值:)中定义的用户libvirt-qemu
必须具有对nvram
文件的读取和执行正确访问权限,否则会触发权限错误。在我的情况下
--osinfo win10
是强制性的,因为默认的 vHD EFI 启动是 Windows(在我尝试之前,以BSODdebian11
结束)。对于该
--network
部分,假设我们有一个br0
桥接设备(有关临时桥接请参见此处Network Manager
,或有关 的请参见此处iproute
,有关永久桥接请参见此处ifup
)。
创建后,配置 VM EFI 以启动正确的分区(请参阅@telcoM 详细解答以暂时或永久实现它)。