Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
qemu';s virtio blk';s驱动参数必须设置为_Qemu_Pci - Fatal编程技术网

qemu';s virtio blk';s驱动参数必须设置为

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

我试图用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参数,是因为我已经尝试了驱动器上的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,这使其成为块设备。