我使用 Hyper-V 虚拟机管理程序在 Windows 11 上通过 qemu-kvm for Windows 虚拟化了 img 文件(通过 dd 真实的 FreeBSD 14.0 安装创建)。我使用的参数如下:
I:\OS\qemu\FreeBSD\qemu\qemu-system-x86_64w.exe -accel whpx -machine q35 \
-cpu kvm64,hv_relaxed,hv_time,hv_synic -m 8G \
-device vmware-svga,id=video0,vgamem_mb=16,bus=pcie.0,addr=0x1 \
-audiodev dsound,id=snd0 -device ich9-intel-hda \
-device hda-duplex,audiodev=snd0 \
-hda "I:\OS\qemu\FreeBSD\FreeBSD-ada1p2-qemu.img" -rtc base=localtime \
-device nec-usb-xhci,id=usb -device usb-tablet -device usb-kbd \
-smbios type=2 -nodefaults -netdev user,id=net0 \
-device virtio-net-pci,netdev=net0,id=net0,mac=52:54:00:11:22:33 \
-device ich9-ahci,id=sata \
-bios "I:\OS\qemu\FreeBSD\OSX-KVM-master\OVMF_combined.fd"
运行良好。现在,我想要做的是将磁盘 8 传递给 qemu,这样我就可以在 FreeBSD 系统中使用它。磁盘 8 有 ZFS 文件系统。Windows 版 Qemu 不使用 /dev,磁盘 8 甚至没有在 Windows 中映射为驱动器,那么我该怎么办?
PS:我倾向于不使用 virt-manager。
答案1
Windows 原始磁盘设备路径是 \.\PhysicalDrive[x],其中 x 是从 0 开始的磁盘设备号。您可以使用磁盘管理 MMC 管理单元或使用 diskpartlist disk
命令检查磁盘设备号。
对于您来说,您应该使用以下命令行:
I:\OS\qemu\FreeBSD\qemu\qemu-system-x86_64w.exe -accel whpx -machine q35 \
-cpu kvm64,hv_relaxed,hv_time,hv_synic -m 8G \
-device vmware-svga,id=video0,vgamem_mb=16,bus=pcie.0,addr=0x1 \
-audiodev dsound,id=snd0 -device ich9-intel-hda \
-device hda-duplex,audiodev=snd0 \
-hda "I:\OS\qemu\FreeBSD\FreeBSD-ada1p2-qemu.img" -rtc base=localtime \
-device nec-usb-xhci,id=usb -device usb-tablet -device usb-kbd \
-smbios type=2 -nodefaults -netdev user,id=net0 \
-device virtio-net-pci,netdev=net0,id=net0,mac=52:54:00:11:22:33 \
-device ich9-ahci,id=sata \
-bios "I:\OS\qemu\FreeBSD\OSX-KVM-master\OVMF_combined.fd"
-drive file=\\.\PhysicalDrive8,format=raw,media=disk
这是一个例子来自 Arch Wiki 的 QEMU 原始设备映射
我的同类回答,我确信全文比简单的链接更有帮助。