Knowledge Base:Unable to mount root fs

Synopsis
When booting a freshly configured kernel, the boot fails with the following message:

VFS: Cannot open root device "hda3" or unknown-block(2,0) Please append a correct "root=" boot option; here are the available partions: ... Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

The numbers in the  section can be different.

Environment
Any Gentoo Linux system on which a new kernel is being booted (or an update was made on the bootloader configuration).

Analysis
The panic informs you that the Linux kernel is unable to either


 * 1) detect the controller for your hard disk (a likely candidate if the message says  )
 * 2) detect your partition because it doesn't have support for your partition types (less likely)
 * 3) mount your partition because it doesn't know how to access the file system (a likely candidate if the message gives a non-zero figure in the first number set, such as  )
 * 4) detect your partition because you passed the wrong device in your boot loader configuration

Resolution
Boot with your old kernel, or with the LiveCD and open the kernel configuration


 * Ensure that your controller chipset is configured in the Linux kernel (and in-kernel, not as a module)
 * Ensure that the file systems you use (such as Ext2, Ext3, Ext4, ReiserFS ...) are configured in the Linux kernel (and in-kernel, not as a module)
 * If you are running Gentoo as a qemu guest, ensure that the virtio block drivers and PCI driver for virtio devices are enabled (that is, CONFIG_VIRTIO_BLK=y and CONFIG_VIRTIO_PCI=y)

Also verify that your boot loader configuration (like /boot/grub/grub.conf) refers to the correct partition