I want my Kernel to start a squashfs rootfs for an embedded Linux. The squashfs file is on a sdcard, therefor i put these parameters on it's command line:

console=ttyS0,115200 root=/dev/sdb1 rw rootfstype=squashfs

Unfortunately a kernel panic occured:

VFS: Cannot open root device "sb1" or unkonw-block(0,0) Please append a correct "root=" boot option; here are the available partitions: not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

what am i doing wrong?


I tried with root=/dev/mmcblk0 but the results are the same. Do i have to mount these devices first, and if so how is this done ?

  • should be ro because squashfs volumes are read only
    – user55518
    Commented Feb 7, 2014 at 14:03

1 Answer 1


In order to mount a root filesystem, the kernel needs support for both the device the root filesystem is on, as well as the file system type the root filesystem is on. So, some troubleshooting:

  • Is it possible to mount the root filesystem if it uses a different file system type (such as ext2 or msdos/FAT?)
  • Is it possible to mount a squashfs on another device (such as a USB pen drive)

There are a couple of ways of making sure the root filesystem can be mounted

  • Be sure to have support for the SD card reader the device uses either in the kernel or in initramfs
  • Be sure to have support for the squashfs filesystem either in the kernel or in initramfs
  • thanks for the hints. I guess it's because he can't find a sd card to read from, and with the tip from you about checking kernel-sd support it might come to a solution. I'll have to check it on monday, unfortunately I have to leave. Thanks for now Commented Feb 7, 2014 at 14:49
  • Well the driver iss installed, still no difference. If I make an Initramfs image and let it boot I do an ls /dev and there's no mmcblk or sdb listed at all. Why is that ? Commented Feb 10, 2014 at 9:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .