[Bug 1851504] Re: encrypted root fails to cryptsetup on disco
Chris Baker
1851504 at bugs.launchpad.net
Sun Nov 17 02:42:25 UTC 2019
This bug is affecting me on Kubuntu 19.04.
I rebooted my computer this morning and typed my password into cryptsetup during boot only to get the message "libgcc_s.so.1 must be installed for pthread_cancel to work".
There are a few factors that I believe should cause the priority of this issue to be increased:
1. Advanced boot options cannot be used to recover
Selecting recovery mode from grub menu or older kernel/initramfs versions doesn't help.
All of my old initramfs images have been updated to no longer include libgcc_s.so.1.
2. The initramfs scripts do not recover gracefully
It has taken me at least 4 hours to recover from this issue because copying libgcc_s.so.1 from a usb stick into the initramfs isn't enough to recover. Upon exiting the recovery shell, it simply indicated that the root couldn't be mounted and dumped me back to the shell again.
I manually ran cryptsetup to open the LUKS volume and this still resulted in getting dumped back to the initramfs shell.
The problem, I think, is that the cryptsetup fails several times (in local-top and in local-premount or local-block) before the mount is considered failed and the initial recovery console is presented. So, when exiting the shell, it tries to resume at a point well past the initial mounting attempt.
I finally got the computer to boot by copying libgcc_s.so.1 from another
computer into the recovery initramfs. I then had to source
scripts/functions and run_scripts local-top. After that I was able to
boot, but I don't remember if I also did a run_scripts local-premount.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to initramfs-tools in Ubuntu.
https://bugs.launchpad.net/bugs/1851504
Title:
encrypted root fails to cryptsetup on disco
Status in cryptsetup:
New
Status in initramfs-tools package in Ubuntu:
Confirmed
Bug description:
There is a subtle error message during update-initramfs:
find: '': No such file or directory
I could trace this to /usr/share/initramfs-tools/hooks/cryptroot line
430:
# libargon2 uses pthread_cancel
LIBC_DIR="$(ldd /sbin/cryptsetup | sed -nr 's#.* => (/lib.*)/libc\.so\.[0-9.-]+ \(0x[[:xdigit:]]+\)$#\1#p')"
> find -L "$LIBC_DIR" -maxdepth 1 -name 'libgcc_s.*' -type f | while read so; do
copy_exec "$so"
done
ldd output shows:
libc.so.6 => /usr/lib/x86_64-linux-gnu/libc.so.6
(0x00007f41aa8c4000)
so the library is not in /lib anymore but /usr/lib
The root cause of this may be an update to libc, however the script
may need adjusting anyway.
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=19.04
DISTRIB_CODENAME=disco
DISTRIB_DESCRIPTION="Ubuntu 19.04"
To manage notifications about this bug go to:
https://bugs.launchpad.net/cryptsetup/+bug/1851504/+subscriptions
More information about the foundations-bugs
mailing list