[Bug 1979159] Re: Cannot unlock encrypted root after upgrading to 22.04

Jesse Johnson 1979159 at bugs.launchpad.net
Wed Aug 10 18:57:05 UTC 2022


Success!

I upgraded from Ubuntu 20.04 to 22.04 on an circa-2016 ASUS laptop using
Ben's instructions in comment #41. After rebooting was prompted for
password to unlock the device which worked as expected and led to the
login screen and then the desktop. Opened a few apps and browsed the
file system, everything seems to be working and all the files on the
encrypted root and home partitions seem available!

IIRC the device had previously been upgraded from 18.04 to 20.04.

This is a laptop I regularly use, not a test device, so this was a
'real' successful upgrade in the wild. =)

Thanks all for the fix!

Hopefully prior to next LTS release the automated testing can be
improved to include encrypted file systems and other scenarios as Brian
mentioned in #40. Could help tighten release dates and increase user
confidence (not to mention help Ubuntu devs sleep better at night!). If
this issue had affected my non-techy users as part of a regular upgrade
it may have torpedoed their confidence in Ubuntu and Linux by
association. (Almost every non-tech I know who uses Ubuntu had it
installed for them on a laptop with file system encryption enabled for
privacy and security.)

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to cryptsetup in Ubuntu.
https://bugs.launchpad.net/bugs/1979159

Title:
  Cannot unlock encrypted root after upgrading to 22.04

Status in cryptsetup package in Ubuntu:
  Fix Committed
Status in cryptsetup source package in Jammy:
  Fix Committed
Status in cryptsetup source package in Kinetic:
  Fix Committed

Bug description:
  [Impact]

  After upgrading to Ubuntu 22.04 with an encrypted root filesystem, the
  root drive can no longer be unlocked at the "Please unlock disk
  <diskname>" prompt on boot.

  The encrypted root disk can be unlocked fine from the liveCD, but not
  from the initramfs environment on boot.

  The issue is caused by support for various luks encryption protocols
  now being missing from the initramfs environment due to changes
  introduced in OpenSSL 3.0 and Ubuntu pre-release testing not including
  a test-case of upgrading older Ubuntu versions with an encrypted root
  to the new version.

  [Test Plan]

  Test a fresh installation:

  * Use Ubuntu 22.04 installer
  * Prepare encrypted disk layout (first partition /boot, second for /) and go one step back
  * Then change hash in terminal
  ```
  sudo cryptsetup close vda2_crypt
  sudo cryptsetup luksFormat --hash=whirlpool /dev/vda2
  sudo cryptsetup luksOpen /dev/vda2 vda2_crypt
  sudo mkfs.ext4 /dev/mapper/vda2_crypt
  ```
  * Continue and complete installation
  * Ensure that /target/etc/crypttab exists (if not, create it and run "update-initramfs -u" in "chroot /target")
  * Reboot
  * The system should ask for the password during boot and successfully boot into the desktop

  Test an upgrade:

  * Install Ubuntu 20.04 (similar to above)
  * Upgrade to Ubuntu 22.04
  * Reboot
  * The system should ask for the password during boot and successfully boot into the desktop

  [Where problems could occur]

  The changed code is called when running "update-initramfs". Therefore
  generating a new initramfs could fail (and the user would stay on an
  old one). Upgrading the package will trigger "update-initramfs". So
  bugs in initramfs (or it scripts) can be triggered at that time.

  [Workaround]
  The issue can be worked-around by:
  1.  Booting from the 22.04 liveCD.
  2.  chrooting into the target system's root.
         See https://help.ubuntu.com/community/ManualFullSystemEncryption/Troubleshooting
  3.  Creating a file /etc/initramfs-tools/hooks/custom-add-openssl-compat.conf containing:
  ---
  . /usr/share/initramfs-tools/hook-functions
  copy_exec /usr/lib/x86_64-linux-gnu/ossl-modules/legacy.so /usr/lib/x86_64-linux-gnu/ossl-modules/
  ---
  4.  Mark the file as executable: chmod +x /etc/initramfs-tools/hooks/custom-add-openssl-compat.conf
  5.  Regenerating the initramfs.  ie. update-initramfs -k all -u

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cryptsetup/+bug/1979159/+subscriptions




More information about the foundations-bugs mailing list