我正在尝试使用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块设备。
我正在从头开始编写自己的操作系统。
如何使该virtio PCI设备出现?
答案 0 :(得分:1)
-device的驱动器选项应设置为使用-drive创建的驱动器的ID:
-drive id = mydrive,file = foo.img,... -device virtio-blk-pci,drive = mydrive,...
这是带有QEMU选项的常见模式。
PS:如果通过“给驱动器创建ID并在-device选项中指定它的名称”将使用-drive创建的驱动器连接到设备,则您不想传递if = virtio。 (“ if = virtio”表示“尝试将该驱动器自动连接到virtio接口”,并且QEMU会抱怨您已要求其将驱动器连接两次,一次自动连接,一次明确连接。)