encrypted root fails to cryptsetup on disco
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
cryptsetup |
Fix Released
|
Undecided
|
Unassigned | ||
initramfs-tools (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
There is a subtle error message during update-initramfs:
find: '': No such file or directory
I could trace this to /usr/share/
# libargon2 uses pthread_cancel
LIBC_DIR="$(ldd /sbin/cryptsetup | sed -nr 's#.* => (/lib.*
> 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/
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_
DISTRIB_
DISTRIB_
WORKAROUND: Change line 429 to read:
# libargon2 uses pthread_cancel .so\.[0- 9.-]+ \(0x[[: xdigit: ]]+\)$# \1#p')"
LIBC_DIR="$(ldd /sbin/cryptsetup | sed -nr 's#.* => (/.*)/libc\
find -L "$LIBC_DIR" -maxdepth 1 -name 'libgcc_s.*' -type f | while read so; do
copy_exec "$so"
done
This changes the first regexp group from "(/lib.*)" to "(/.*)" allowing /usr/lib.* as well.
After running
update- initramfs -v -k 5.0.0-32-generic -c
cryptsetup succeeds in mounting the encrypted root.