A new Linux kernel was built using the commands, make gconfig, make, sudo make install and sudo make modules_install. After building a new Linux kernel and booting from it, the boot process halts with the following message:
kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
A lot many drivers are configured as loadable modules. It is necessary to detect and load these modules. The solution is to make an initial ram disk (initrd) image.
- During the kernel configuration, make sure that RAM block device support (CONFIG_BLK_DEV_RAM) and Initial RAM filesystem and RAMDISK support (CONFIG_BLK_DEV_INITRD) options are enabled (set to
y
). - Delete any old kernel files that might be present.
cd /boot rm -i *old sudo update-grub
- After building and installing the kernel and assuming the kernel version is 2.6.30,
cd /boot sudo mkinitramfs -o initrd.img-2.6.30 2.6.30 sudo update-grub
- Reboot.