21

I am unable to boot Ubuntu 10.04, with the built in boot shell giving out this error:

Gave up waiting for root device. Common problems:
  — Boot args (cat /proc/cmdline)
    — Check rootdelay= (did the system wait long enough?)
    — Check root= (did the system wait for the right device?)
  — Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/disk/by-uuid/aa91b9fe-1e27-44d7-9c1b-72dd7d4e8575 does not exist.   
Dropping to a shell! 

BusyBox v.1.13.3 (Ubuntu 1:1.13.3-1ubuntu11) built-in shell (ash)   
Enter 'help' for list of built-in commands.  

(initramfs)

Update 1
This error occurred after I updated my 2.6.32-26 version kernel and booted directly in Windows.

The rootdelay solution did not work. Is there any chance that my disk's uuid got changed (maybe by windows), I could log in to my Ubuntu earlier but after logging into windows, and rebooting I get this error. As far as backing up is concerned, do I need to even if I have separate home and workspace partitions than Ubuntu installation?

Update 2
The update after which this happened was just an update (no new install) of version 2.6.32-26. So I guess this has something to do with last update of this version of kernel. Also since it was not a new install, no new menu entry was added. By any chance may this be caused because of my rebooting in Windows after the kernel update.

Update 3
Installed older kernel by chrooting through live USB, still the same problem with the kernel, so it seems the problem is not due to kernel update after all.

I have faced this problem earlier too but back then, I just considered reinstalling distribution easier (I used to distro switch a lot). But now I had configured it too far and so looking for some last resort.

Update 4
Reinstalled Ubuntu. Configuration was easier this time thanks to separate home and workspace partitions. Even tough I don't need the solution of this problem just now but if you know any possible solution please post here for future benefit.

4
  • Try running "blkid" from the initramfs prompt to list recgonized device uids. Nov 30, 2010 at 15:09
  • What happens if you let the computer sit at the busybox "(initramfs)" prompt for a minute and then type "exit" and hit the Enter key?
    – Li Lo
    Nov 30, 2010 at 17:46
  • gives out the same prompt again, the above messages get appended to the boot shell
    – crodjer
    Dec 1, 2010 at 5:56
  • I had the exact same problem, and found a solution in this "very little up-voted" solution, but it actually works! askubuntu.com/a/519814/223469
    – Aleks
    Apr 21, 2015 at 20:15

18 Answers 18

8

I had the same issue like the thread starter and I solved it without reinstalling.

My issue occurred while juggling with a virtual installation based on a copied disk image. This resulted in a changed uuid and the copy wouldn't start. This is a rough sketch of what i did.

First boot using a rescue system (same version) and run a shell on your non-booting disk. Have a look at /etc/fstab and confirm the uuids there by issuing the blkid command for each device. Fix these entries as they're important.

Next we fix grub with:

  • grub-mkconfig
  • update-grub

Then run:

  • update-initramfs -u /boot/initrd.img-2.6.YOURVERSION-HERE

This will create a fresh initramdisk for your version. If you don't know the exact version you were running have a look at the files in /boot/. Picking the highest version number should be safe.

After you exit the rescue shell the ubuntu live cd will offer you the last menu from where you entered the shell. Choose "install Grub" (or similar) there and enter the device where to put your boot sector.

On most systems (standard install) /dev/sda is a safe bet. Be aware: Windows- or other multiboot-systems might need other entries here!

Finally you should be able to boot from the repaired disk.

1
  • 2
    This worked for me, but the update-initramfs command was: update-initramfs -k -u 2.6.YOURVERSION-HERE
    – Dan
    Nov 8, 2014 at 2:36
7

The problem seems to be that your hard disk, or the controller, doesn't respond quickly enough.

Try the following:

  • When the boot menu comes up, having the top of the list highlighted, press e (for edit).

  • You should see a long list of parameters. Add this one to it: rootdelay=130

  • Hit Enter and then b (boot). Try to see if you system boots now. You can increase the value if that doesn't help first time (but not by much, 130 is already more than enough for any hardware that isn't broken).

However, it may also be your hard drive is failing. The first thing to do once you get back into your system is backing up your data. If you want to be safe, back it up using an ubuntu cd. I strongly urge you to do that, sooner rather than later.

2
  • 1
    This is true... what ever happens, try a live CD or live USB and after you boot to the live desktop attach an external hard drive (hope you have one) and start backing up your data to the external hard disk...
    – Salih Emin
    Nov 30, 2010 at 14:39
  • the rootdelay solution did not work. Is there any chance that my disk's uuid got changed (maybe by windows), I could log in to my buntu earlier but after logging into windows, and rebooting I get this error. As far as backing up is concerned, do I need to even if I have separate home and workspace partitions than buntu installation?
    – crodjer
    Nov 30, 2010 at 14:59
5

As a matter of fact I have experienced disk UUIDs changing spontaneously once or twice. The change may be the result of a corruption of some sort. I would try the following:

  • Boot your computer from a live medium;
  • fdisk -l /dev/sda to find the partition you're looking for; or use cfdisk; or usegparted(replacesda` by your hard drive).
  • blkid /dev/sda1 (replace sda1 by the partition you found); alternatively use vol_id;
  • see if you can mount the partition (using the device file /dev/sda1);
  • check if the UUID displayed matches with the UUID in your root partition's /etc/fstab;
  • generate a new UUID using uuidgen and apply it to the partition using tune2fs -U;
  • change the fstab entry accordingly.

It might seem unlikely that something as vital as the UUID changes without apparent cause, but it happens, probably because of a bug. See if changing the UUID to a new value helps.

3
  • 1
    The uuid in the initramfs prompt, root disk and fstab were same. I still changed it as you specified but still the same problem
    – crodjer
    Dec 1, 2010 at 6:52
  • Maybe this really is a problem related to the kernel update. Can you mount the file system from inside the busybox shell? Try mounting it using the device file /dev/sda1 (mutatis mutandis), which shouldn't be related to the UUID at all. If that works, you can just edit your fstab and GRUB configuration to use device files rather than UUIDs.
    – loevborg
    Dec 1, 2010 at 10:15
  • Also, about re-installation - it's not that big of a deal if you make a copy of your /home directory and drop it in after installation. Then it's just about installing the same set of packages (which can be done automatically as well). I agree that it shouldn't really be necessary and it's much cleaner to find the problem instead, though.
    – loevborg
    Dec 1, 2010 at 10:18
2

When I saw this on my system, it was a matter of the wrong UUID being set as the boot root parameter in /boot/grub/menu.lst .

cat /proc/cmdline actually shows the boot parameters passed to initramfs -- if you see that initramfs is being told to mount a non-existent root partition, it's obviously going to fail.

update-grub did not update these parameters for me, but simply doing a manual replacement for the old UUID in the menu.lst fixed it for me.

1
  • This is also how I've had to fix things in the past. However, last time I didn't even bother with the UUID and just replaced the incorrect UUID with the /dev/xxx device id in /etc/fstab. For others trying to fix this, also see @loevborg's answer.
    – belacqua
    Sep 13, 2011 at 3:37
1

Have you got an older kernel? Does it work? Check /etc/fstab as loevborg said about possible 'stale' records (i had the same problem when installed lvm and grub2 - there was an old record for /boot partition which caused the error)

5
  • no....I have a habit of deleting old kernel after testing a new install 4-5 times. The update after which this happened was just an update (no new install) of version 2.6.32-26. So I guess this has something to do with last update of this version of kernel.
    – crodjer
    Nov 30, 2010 at 17:13
  • Why don't you try to chroot with a live cd and reinstall this kernel or the latest 2.6.35-23?
    – Pavlos G.
    Nov 30, 2010 at 17:30
  • yeah.....currently making a live usb stick
    – crodjer
    Nov 30, 2010 at 17:53
  • Installing old kernel did not work either....the problem doesn't seems to be because of the kernel update after all.
    – crodjer
    Dec 1, 2010 at 6:03
  • Can you then try to run bootsinfoscript (sourceforge.net/projects/bootinfoscript) and paste the results here?
    – Pavlos G.
    Dec 1, 2010 at 9:09
1

I dont have any idea of what can cause this but as a solution you can try reinstalling Grub only. I think it will solve your problem.

1
  • 1
    I chrooted and tried this too but didn't work...finally I reinstalled the distro.
    – crodjer
    Dec 1, 2010 at 14:46
1

Tried all the answers but could not solve it so finally hadd to reinstall ubuntu :(.

This same error came in my friends comp too, but he had no luck with it too.

1

This issue appeared for me after installing libuuid. I was able to fix it manually and now it boots OK, but every time it still shows errors about missing blkid. Also, boot failure re-appears after updates that require rebooting.

The UUID in the /proc/cmdline is correct, however system fails to recognize it.

1

How to Fix an Ubuntu Error: "No init found. Try passing init= bootarg"

This morning, a friend came to me with his laptop that won't boot. At every boot attempt, his Ubuntu 10.04 Lucid Lynx system outputs the following error messages:

mount: mounting /dev/disk/by-uuid/***************************** on /root
failed: Invalid argument
mount: mounting /sys on /root/sys failed: No such file or directory
mount: mounting /dev on /root/dev failed: No such file or directory
mount: mounting /sys on /root/sys failed: No such file or directory
mount: mounting /proc on /root/proc failed: No such file or directory
Target file system doesn't have /sbin/init
No init found. Try passing init= bootarg



Busybox v1.13.3 (Ubuntu 1:1.13.3-1ubuntu7) built-in shell (ash)
Enter 'help' for a list of built-in commands
(initramfs) _

Booting into "Recovery Mode" as well as choosing the other kernels listed in grub didn't help at all.

Solution:

  1. Boot from the Ubuntu Live CD;

  2. Open/Run Terminal;

  3. Type: sudo fdisk -l (to get the device name) then press ENTER;

    Disk /dev/sda: 250.1 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: ****

    Device Boot Start End Blocks Id System /dev/sda1 * 1 30238 242886703+ 83 Linux /dev/sda2 30239 30401 1309297+ 5 Extended /dev/sda5 30239 30401 1309266 82 Linux swap / Solaris

The device name for my friend's system based on the above: /dev/sda1

  1. Type: sudo fsck /dev/sda1 then press ENTER;

  2. Restart the system and boot normally.

    • The laptop booted normally after the fix.
1

I was seeing the same problem - with the extra info that I have used blkid (and tune2fs) to check the UUID, and it's an exact match. Listing /dev/disk/by-uuid also showed the expected UUID sitting there. The drive is perfectly mountable within busybox as well. All the normal files expected in [/mnt]/boot/ are present (for kernel 3.13.0-36).

I got the computer to boot by (from inside of busybox) changing the /etc/fstab's UUID reference for the root partition to be /dev/sda1 (modify as appropriate for your setup). I'm not sure, however, that this step is important, since alone it didn't make a difference. What did was upon the next reboot, sitting at grub, hitting "e" to edit the Ubuntu default boot, and stripping out the entire "if ... fi" construct, and replacing the "linux" line's UUID= with the /dev/sda1 . This approach allowed the computer to boot fully.

In the end the problem turned out to be a failed second hard drive was causing a massive delay in the disk search sequence.

0

I fixed this myself editing the file /etc/default/grub

GRUB_CMDLINE_LINUX=" rootdelay=3 "
GRUB_DISABLE_LINUX_UUID=true

With only the first one, it was not enough. I even tried a 130 as stated before. Then I disabled UUID with the second command. It was a LVM root partition anyway, so the UUID data was pointless.

0

In my case:

The OSs are installed in ext4 with Ubuntu 14.04

but I found when I install other ubuntu edition like 10.04 after the Ubuntu 10.04

and Also compile the Ubuntu 10.04 kernel and use dpkg to install it.

the error is appeared.

Finally, the problem is in grub.cfg.

Because Ubuntu 10.04 default use ext2 for OS so the initramfs will load ext2's driver not use ext4 driver...

So replace ext2 to ext4 in grub.cfg to fix it.

0

i have same problem in ubuntu after hours i searching i just realised that grub try to boot sdb5 and my kali is on sda5 so boot with live cd and try to mount ur linux os with mkdir and mount command if it exist try to fix grub by holding shift in load and hit e and change root dev and if it works make it permanent

0

This could also happen if you've cloned a partition or especially the entire hard drive and partition table with dd. If this has happened usually an fsck of all partitions in question will solve it.

Source: http://realtechtalk.com/UbuntuDebianLinux_wont_boot_and_drops_to_Busybox_shell_after_cloning_HDD_with_dd-1978-articles

0

Apart from all the other answers, try going to the grub menu (press SHIFT while booting to be in Ubuntu Advanced options) and select your older working kernel. The grub configuration must have been updated after you installed the newer kernel version.

0

I got the same problem yesterday on my disk with two linux installation in two different partitions and there was a corruption in one of the installations and I looked for solutions online and didn't get one. All of the solutions in this thread don't completely work on their own on this problem;->"ALERT! UUID [anything] does not exist.Dropping to a shell!" so I will try to give the solution that worked for me without reinstalling the whole system. Also, the answers on this thread may be outdated bcoz they are from over 12 years ago.

First things first, get a live CD or bootable USB with one of the many linux distros bcoz this method will work only on linux. Next, boot from the USB/CD, no need to follow the installation process, cancel it and;

  1. Open Terminal.
  2. List all the volumes on the disk to make sure you don't make mistakes in choosing which volume to fix;
    sudo fdisk -l /dev/sda
    

my volume is /dev/sda1 and yours might be different.

  1. Clean up any corruptions on /dev/sda1 but first make sure that the /dev/sda1 is not mounted;
    sudo umount /dev/sda1
    sudo e2fsck -f /dev/sda1
    

click "y" to the prompts and don't worry, this will not remove any of your files.

  1. Generate a new UUID and don't panic, this will not break anything;
    sudo tune2fs -U random '/dev/sda1'
    

it might take some time so be patient and don't interrupt the process.

  1. Mount the volume /dev/sda1 and any other required directories on /mnt using;

    sudo mount /dev/sda1 /mnt
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /sys /mnt/sys
    sudo mount --bind /proc /mnt/proc
    
    sudo chroot /mnt
    
  2. Install os-prober to help with fixing grub;

    apt install os-prober
    
  3. Fix grub boot-loader using;

    grub-mkconfig
    update-grub
    

the update-grub output will look like this;

Sourcing file '/etc/default/grub'
Sourcing file '/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.0.2-76060002-generic
Found initrd image: /boot/initrd.img-6.0.2-76060002-generic
done

copy the Kernel version from the line "Found initrd image: /boot/initrd.img-6.0.2-76060002-generic" bcoz we will need it for the next command. The copied Kernel version should look like this; "6.0.2-76060002-generic"

  1. Now update the initramdisk of your version using "update-initramfs -k -u" and run a command looking like this one;

    update-initramfs -k 6.0.2-76060002-generic -u
    
  2. Unmount /dev/sda1 from /mnt using;

    exit
    sudo umount /dev/sda1
    
  3. Reboot your computer using;

    sudo reboot
    
0

No recovery CD needed In (initramfs) do this: change ext4, /dev/sda1 to your values

mkdir mnt
mount -t ext4 /dev/sda1 /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
chroot mnt

now you can continue same as booting from a CD

update your /etc/fstab

then run

update-grub
update-initramfs -u

Before reboot you should exit from chroot and umount /mnt/dev, /mnt/proc and /mnt

This happend to me after changing the UUID of root partition (silly me).

-3

I just went to the recovery mode. And choose something indicate updating grub in the menu. then fix the issue.

1
  • 1
    /dev/disk by uuid doesn't exist. I don't see how updating grub will resolve this issue.
    – Elder Geek
    Mar 10, 2015 at 15:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .