Disk by UUID not detected (initramfs), boot failure
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.
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.
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 usecfdisk; or use
gparted(replace
sda` by your hard drive).blkid /dev/sda1
(replacesda1
by the partition you found); alternatively usevol_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 usingtune2fs -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.
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)
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.
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.
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.
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.
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:
-
Boot from the Ubuntu Live CD;
-
Open/Run Terminal;
-
Type:
sudo fdisk -l
(to get the device name) then pressENTER
;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
-
Type:
sudo fsck /dev/sda1
then pressENTER
; -
Restart the system and boot normally.
- The laptop booted normally after the fix.
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.
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.
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.
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.
I just went to the recovery mode. And choose something indicate updating grub in the menu. then fix the issue.
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
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.
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.
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;
- Open Terminal.
- 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.
- 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.
- 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.
-
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
-
Install os-prober to help with fixing grub;
apt install os-prober
-
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"
-
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
-
Unmount /dev/sda1 from /mnt using;
exit sudo umount /dev/sda1
-
Reboot your computer using;
sudo reboot
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).