无法识别 Qemu virtio 设备使内核恐慌

时间:2020-12-26 14:50:36

标签: kernel qemu drive

我尝试使用带有以下选项的 qemu-system-aarch64 启动 linux。

/home/levi/work/lisa-qemu/external/qemu/build/aarch64-softmmu/qemu-system-aarch64 -machine virt,gic-version=3 -m 2G -cpu max -drive file=/home/levi/work/lisa-qemu/build/VM-ubuntu.aarch64/ubuntu.aarch64.img.kernel-5.10.0+-2,if=none,id=drive0,cache=writeback -device virtio-blk,drive=drive0,bootindex=0 -drive file=flash0.img,format=raw,if=pflash -drive file=flash1.img,format=raw,if=pflash -smp cpus=2,cores=1 -kernel /home/levi/work/lisa-qemu/build/VM-ubuntu.aarch64/vmlinuz-5.10.0+-2 --initrd /home/levi/work/lisa-qemu/build/VM-ubuntu.aarch64/initrd.img-5.10.0+-2 -append "root=/dev/vda1 nokaslr console=ttyAMA0" -nographic 

但是,在启动时,它找不到/dev/vda1。但是只有loop设备存在,所以导致内核挂在mount_root上。

[    1.468856] VFS: Cannot open root device "vda1" or unknown-block(0,0): error -6

我不知道如何让内核识别我的 drive0 以使内核启动...

flash.img0 是 /usr/share/qemu-efi-aarch64QEMU_EFI.fd 而 flash.img1 是全零图像。

1 个答案:

答案 0 :(得分:0)

这意味着您的访客内核没有配置必要的驱动程序来支持 virtio。 QEMU documentation for the virt board 建议您应该确保在内核中启用了一些配置选项:

CONFIG_PCI=y
CONFIG_VIRTIO_PCI=y
CONFIG_PCI_HOST_GENERIC=y

对于 virtio-gpu-pci 图形:

CONFIG_DRM=y
CONFIG_DRM_VIRTIO_GPU=y

另外,请确保您拥有所需的特定 virtio 后端(在本例中为 virtio 块设备)的所有选项。

相关问题