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?

2 Answers 2


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)


  • 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/…
    – sourcejedi
    Jul 7, 2018 at 17:04
  • @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. Jul 7, 2018 at 17:34
  • Or just check that you wrote initrd correctly in your config file. (Yeah, this is a note for my future-self) Jul 13, 2018 at 12:33

Can you tell which CPU you are using.

In Arch OS, intel-cpu.img is required for Intell CPU whereas for AMD CPU initramfs-linux.img.

So if you are using Intell CPU, you should install intell-cpu along with linux image.

sduo pacman -S intell-cpu

For other AMD CPU, sometime Grub keep intell-cpu as microcode which also result in same situation, hence you have to update grub.cfg file manually. Open Grub file gksu gedit /boot/grub/grub.cfg and then edit the arch menuentry.

# /boot/grub/grub.cfg
echo 'Loading initial ramdisk'
initrd  /intel-ucode.img /initramfs-linux.img

Repeat it for each menu entry.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.