qemu';s virtio blk';s驱动参数必须设置为
我试图用virtio磁盘控制器启动qemu,它说:qemu';s virtio blk';s驱动参数必须设置为,qemu,pci,Qemu,Pci,我试图用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 -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参数,是因为我已经尝试了驱动器上的if=virtio,但是当我扫描PCI设备时,没有显示virtio块设备
我正在从头开始编写自己的操作系统
如何显示此virtio PCI设备?应将-device的驱动器选项设置为使用-drive创建的驱动器的ID: -驱动器id=mydrive,文件=foo.img-设备虚拟磁盘pci,驱动器=mydrive 这是QEMU选项的常见模式
PS:如果您通过“给它一个ID名称并在-device选项中指定它”将使用-drive创建的驱动器连接到设备,那么您不希望传递if=virtio。(“if=virtio”表示“尝试自动将此驱动器连接到virtio接口”,QEMU会抱怨您要求它连接驱动器两次,一次自动,一次显式。)我还需要将if=none传递给-drive,然后它接受了,但结果与我只使用-drive with if=virtio是一样的:当我搜索那些供应商id为1AF4的PCI设备时,我得到的只是一个网络设备。virtio大容量存储设备应该有供应商id,这是真的吗?我想出来了。Osdev误导了我,使我认为“PCI配置空间中的子系统ID字段”必须是2。我发现的1AF4设备并非如此,但它的PCI设备ID为0x1001,这使其成为块设备。