On 5 March 2017 at 07:57, Jiahuan Zhang <jiahuanzhan...@gmail.com> wrote: > Dear QEMU developers, > > I have a problem when running qemu to build a system with versatilepb, > linux zImage and rootfs. the qemu cmdl is as follows. > > ../qemu/build/arm-softmmu/qemu-system-arm.exe -M versatilepb -kernel zImage > -dtb versatile-pb.dtb -initrd ramfs.gz -nographic -append "console=ttyAMA0 > root=/dev/ram0" > > However, the running result is the same as the case without the initrd > file, which is "Kernel panic - not syncing: VFS: Unable to mount root fs on > unknown-block(1,0)". > > The kernel is configured with versatile_defconfig, ramfs.gz is created by > busybox 1.25.1. I am using QEMU 2.8.50 and Linux 4.7. I've also tried with > Linux 2.6.35 and 3.2.8, and still versatilepb gives this kernel panic.
> No filesystem could mount root, tried: ext2 cramfs minix romfs > Kernel panic - not syncing: VFS: Unable to mount root fs on > unknown-block(1,0) This is a guest configuration error, not a QEMU bug. The kernel message means "I found the root device, but I did not recognize its contents as one of the above filesystem types". Probably the thing you are trying to use as an initrd is something like a compressed cpio archive, not an actual filesystem that you can pass to root=. You need to either fix what you're using to create the initrd or you need to fix the kernel command line so you don't try to use it as a root device. (Usually an initrd isn't the root= device, unless you've constructed it specially for that purpose.) thanks -- PMM