System no longer boots, gave up waiting for root device, (initramfs), /dev/mapper/gnome-root does not exist

I got it fixed!!! For future generations so you don't have to go through the agonizing days and endless hours that I did:

Firstly, I was able to get the system to boot from the (initramfs) prompt by typing the following (I used this forum page as a crutch):

cryptsetup luksOpen /dev/sda5 sda5_crypt
lvm vgchange -a y
exit

This got my system to boot properly. Once booted, I modified /etc/crypttab to point to a different UUID than before. I picked the UUID from my /etc/fstab. Save the original UUID value. You will need it in a few steps. I then ran (from a terminal):

update-initramfs -k all -c

If you get a warning that looks like this or something similar:

WARNING: invalid line in /etc/crypttab

then go back to the beginning and instead of sda5_crypt, use what is in your crypttab.

I then rebooted. This time I got the prompt for the passphrase! But don't get too excited, because it didn't work. I entered the right password about 7 times and it rejected them all. It then went back to the (initramfs) prompt after about 90 seconds.

I repeated step one and got it booted again. I then restored the original UUID value to the crypttab, and reran step two. I then rebooted, and SUCCESS!


With full-disk encryption being an option in Ubuntu 14.04, I just wanted to point out how I solved this problem, since my initramfs terminal didn't allow me to use cryptsetup:

  1. Boot from a Live DVD/USB (USB will be a lot faster).

  2. Open a Terminal and type the following:

    sudo -i
    cryptsetup luksOpen /dev/sda5 sda5_crypt
    # (do any lvm management you need here, I didn't need any.)
    mkdir /mnt/system
    mount /dev/mapper/ubuntu--vg-root /mnt/system
    mount /dev/sda2 /mnt/system/boot
    mount /dev/sda1 /mnt/system/boot/efi (May or may not be needed.)
    for i in /dev/pts /dev /proc /sys; do mount -B $i /mnt/system$i; done
    chroot /mnt/system
    update-initramfs -k all -c
    exit
    for i in /dev/pts /dev /proc /sys; do umount /mnt/system$i; done
    umount /mnt/system/boot/efi # (If you have UEFI.)
    umount /mnt/system/boot
    umount /mnt/system
    
  3. Reboot and hope it works.