I downloaded, configured and installed kernel downloaded from kernel.org. While booting up this new kernel for the first time, this error screen shows which is pointing towards a missing or wrongly mentioned root device probably. But I didn't mention it explicitly, installation scripts did it. So if this is the error, can someone please tell how to fix?

Or if the cause may be something else, please tell what it can be?

NOTE: I am using VirtualBox for all this process. Don't want my laptop to become unbootable for this experiment.enter image description here


  1. Grub entries are fine, as it is same for another kernel running on this system and other kernel is working fine.
  2. DEVTMPS is just creating a warning, I think programmers care about errors only, not warnings, so hopefully this is not the major cause as well.
  3. TSC is giving an error, I investigated, it is probably a clock mode, nothing very related to root device.
  4. Again UUID is not an issue, because other working kernel grub entry is using same ID and booting up correctly.
  • first of all, warnings exist for a reason: they may be indicative of a mistake or something not aligned with best practices. any programmer worth his salt will pay attention to errors. secondly, that distinction is only valid in a compilation context, which this is not. the fact that devtmpfs is not available is a major problem. fix it. – strugee Apr 8 '14 at 10:32

You are missing one of the drivers that is necessary to access your root filesystem. The code in the initramfs is looking for a block device to mount and failing, so the problem is in accessing that device. You won't get a more explicit message because the code in the initramfs can only see what it has access to and the problem is that it doesn't have access to the desired root device.

You can run make localmodconfig in the kernel source directory to configure a kernel including all the drivers that are currently in use. Better yet, use your distribution's kernel (the only common reason not to do that is if you have hardware that is too recent to be supported), or at least use your distribution's kernel configuration. Since you're using Ubuntu, note that you can find more recent precompiled kernels if you need them.

If you really want to configure your own kernel, here's a checklist for what you need to include to be able to boot. Note that I only list common requirements, this is not an exhaustive list.

  • SCSI, BLK_DEV_SD (→ scsi_mod, sd_mod) for most hard disks and similar devices (with SCSI or SCSI-like command sets, including ATA);
  • the right ATA_xxx, PATA_xxx, SATA_xxx, SCSI_xxx or other (e.g. ata_generic, libata and ahci for the AHCI controller on Intel PC chipsets) for your hard disk controller;
  • MD, BLK_DEV_MD and the right RAID mode (→ md_mod and e.g. raid1) if applicable;
  • MD, BLK_DEV_DM (→ md_mod, dm_mod) for LVM;
  • MD, BLK_DEV_DM, DM_CRYPT and the requisite cryptographic algorithms (→ md_mod, dm_mod, dm_crypt and e.g. aes_generic, sha256_generic, cbc and a couple more) for dm-crypt;
  • EXT4_FS (→ ext4) or other filesystem.

These can be built into the kernel or compiled as modules. If you compile as modules, don't forget to include the modules in the initramfs. If you use Ubuntu's kernel building infrastructure, everything will be done automatically when you install the kernel package.

  • Yes there is a reason I am using vanilla kernel, and thanks, things are working now – JuliandotNut Apr 7 '14 at 23:34

Found it!!! It was the drivers for my hard disk controller, SATA AHCI was not added while configuring kernel before compilation. Now I added, recompiled and viola! new installed kernel booted up. :)

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.