Arch Linux in virutalbox: kernel panic-not syncing: VFS: unable to mount root fs on unknown block(0,0)

6,651

I had a wrong fstab generated by genfstab (as pointed out here). So the kernel (please correct me, if this is wrong) didn't find my root-partition.

I generated fstab with labels and had a partition with a space in it. In fstab this must be written with \040. genfstab wrote garbage for the space.

Other answeres suggest to run update-initramfs -u -k version, however this command is replaced by mkinitcpio.

To get the system running I did this:

  • I ran grub-mkcofnig -o /boot/grub/grub.cfg (probably not important in this case)
  • after that I booted into grub-menu and pressed c for the grub-shell I started Arch Linux manually by entering the following commands:

    insmod linux insmod ext2 (this works for ext3 and ext4, too or enter your filesystem-driver) set root=(hd0, 2) (enter your partiton-number starting from 1) linux /boot/vmlinuz-linux root=/dev/sda2 (again select your partition) initrd /boot/initramfs-linux.img boot

  • correct /etc/fstab (make sure spaces are expressed as \040)

Finished!

Share:
6,651

Related videos on Youtube

Mpunkt Moeniac
Author by

Mpunkt Moeniac

I studied Mathematik mit Nebenfach Informatik und Informatik an der FAU in Erlangen.

Updated on September 18, 2022

Comments

  • Mpunkt Moeniac
    Mpunkt Moeniac almost 2 years

    I installed Arch Linux from arch linux evolution-image to a virtual device. I tested the installation with GRUB MBR and GRUB efi.

    Inside virtualbox, I can see the grub menu, but when I select Arch Linux it gives me a

    Kernel panic - not syncing: VFS: unable to mount root fs on unknown block(0,0)

    What is going wrong?

  • user2948306
    user2948306 almost 6 years
    Since you asked :). When you use an initrd, the kernel isn't what finds the root device. "unable to mount root fs on unknown block(0,0)" tends to mean an initrd wasn't (successfully) loaded when it needed to be. I wonder if you were missing an initrd at that point. If the initrd fails to find the root filesystem then it is different; the initrd tends to provide a nice little shell prompt, to see if you can do any better finding for it :). I researched this in the last section of my answer here: unix.stackexchange.com/questions/453272/…
  • Mpunkt Moeniac
    Mpunkt Moeniac almost 6 years
    @sourcejedi ...and the initrd is found by grub (or any other bootloader), so the fstab is not read at this point. I can’t tell with this much time in between anymore. But I understand, that you say, that the error message doesn’t match with what I‘ve diagnosed.
  • Denys Vitali
    Denys Vitali almost 6 years
    Or just check that you wrote initrd correctly in your config file. (Yeah, this is a note for my future-self)