You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Windows 11的QEMU中为FreeBSD 14虚拟机直通ZFS磁盘

如何在Windows 11的QEMU中为FreeBSD 14虚拟机直通ZFS磁盘

看起来你已经成功在Windows 11上用QEMU+Hyper-V后端跑起来FreeBSD 14的镜像了,很棒!现在要把带ZFS文件系统的物理磁盘8直通给虚拟机,我来给你一步步梳理操作流程,注意细节避免踩坑:

第一步:确保磁盘未被Windows占用

直通物理磁盘的核心前提是Windows不能挂载或占用这个磁盘,否则QEMU无法获取访问权限:

  • 打开「磁盘管理」(右键开始菜单就能找到),定位到磁盘8。如果它的分区有盘符,右键分区选择「更改驱动器号和路径」,删除所有关联的盘符。
  • 确认磁盘没有被BitLocker、Windows Defender等服务占用,必要时暂时关闭相关功能(操作完成后可以再开启)。

第二步:获取磁盘的Windows设备路径

Windows下物理磁盘的访问路径是\\.\PhysicalDriveN,其中N是磁盘编号(diskpart里的编号从0开始):

  • 以管理员身份打开命令提示符,输入diskpart进入磁盘工具:
    1. 输入list disk,找到磁盘8对应的编号(比如显示为Disk 8);
    2. 输入select disk 8选中该磁盘;
    3. 输入detail disk确认信息,记住编号N=8,对应的路径就是\\.\PhysicalDrive8

第三步:修改QEMU启动命令,添加磁盘直通参数

在你现有的QEMU命令末尾添加直通磁盘的参数,推荐用virtio驱动保证性能(FreeBSD 14默认已集成该驱动)。另外注意Windows命令行换行用^替代\

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,id=disk8,if=virtio

参数解释:

  • file=\\.\PhysicalDrive8:指定要直通的物理磁盘路径
  • format=raw:让QEMU直接访问原始磁盘,跳过镜像格式处理
  • id=disk8:给磁盘设备分配唯一标识,方便后续调试
  • if=virtio:使用高性能的virtio块设备接口

第四步:以管理员身份运行QEMU

因为访问物理磁盘需要系统级权限,必须**右键命令提示符/快捷方式,选择「以管理员身份运行」**后执行上述命令,否则会出现权限不足的报错。

第五步:在FreeBSD中识别并挂载ZFS磁盘

启动虚拟机后,在FreeBSD终端里操作:

  1. 运行geom disk listdmesg | grep da,找到新识别的磁盘(比如da1,取决于现有设备数量);
  2. 运行zpool import查看可用的ZFS池;
  3. zpool import <你的ZFS池名>导入并挂载池,之后就能正常访问磁盘里的数据了。

重要注意事项

  • 绝对不要让Windows和FreeBSD同时访问该磁盘,否则会直接导致ZFS池损坏或数据丢失!
  • 如果用的是GPT分区磁盘,你当前使用的OVMF BIOS已经支持,无需额外设置;
  • 若遇到权限问题,除了用管理员身份运行,还可以检查磁盘的安全权限:磁盘管理中右键磁盘→属性→安全,确保当前用户拥有「完全控制」权限。

备注:内容来源于stack exchange,提问作者john_connor

火山引擎 最新活动