qemu的virtio-blk的驱动参数可以设置成什么

What can qemu's virtio-blk's drive parameter be set to

我正在尝试使用 virtio 磁盘控制器启动 qemu,它显示:

qemu-system-x86_64 -S -gdb tcp::9000 --nographic --enable-kvm -cpu host -m 8192 -device virtio-blk-pci,drive=c,scsi=off -drive file=hard.disk,if=virtio,format=raw -fda floppy.img                                                           
qemu-system-x86_64: -device virtio-blk-pci,drive=c,scsi=off: Property 'virtio-blk-device.drive' can't find value 'c'   

我使用 -device 参数的原因是我已经在 -drive 上尝试了 if=virtio 但是当我扫描 PCI 设备时没有 virtio 块设备出现。

我正在从头开始编写自己的 OS。

如何让这个 virtio PCI 设备出现?

-device 的驱动器选项应设置为您使用 -drive 创建的驱动器的 ID:

-drive id=mydrive,file=foo.img,...-device virtio-blk-pci,drive=mydrive,...

这是 QEMU 选项的常见模式。

PS:如果您通过 "give it an ID name and the specify it in a -device option" 将使用 -drive 创建的驱动器连接到设备,那么您不想传递 if=virtio。 ("if=virtio" 表示 "try to automatically connect this drive to a virtio interface",QEMU 会抱怨你要求它连接驱动器两次,一次是自动的,一次是显式的。)