Subject: cryptsetup: Fails to unlock the filesystem with missing libgcc_s.so.1
Package: cryptsetup
Version: 2:2.7.2-1
Severity: normal
Dear Maintainer,
After a recent apt upgrade, my system failed to unlock. After a
ctrl-alt-del, I got to the console and there it showed an error about
libgcc_s.so.1 not available and aborting.
Thankfully, I still had a other initrd around (I guess due to
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1065698, yay for
bugs!).
I snooped around in the source code a bit and found that libgcc_s
seems to be dlopened and is special cased:
https://salsa.debian.org/kernel-team/initramfs-tools/-/blob/master/hook-functions?ref_type=heads#L248-249
(original bugreport:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=950254). So my guess
is that nothing depends on libpthread either anymore, and this is the
case: `lsinitramfs initrd.img-6.7.9-amd64 |grep thread` shows no
libpthread (actually nothing). I fixed it now by installing a
update-initramfs hook (thanks to
https://groups.google.com/g/linux.debian.bugs.dist/c/4fi2HaOEC_M):
```
λ cat /etc/initramfs-tools/hooks/libgcc
#!/bin/sh -e
PREREQS=""
case $1 in
prereqs) echo "${PREREQS}"; exit 0;;
esac
. /usr/share/initramfs-tools/hook-functions
copy_file library /lib/x86_64-linux-gnu/libgcc_s.so.1
/lib/x86_64-linux-gnu/libgcc_s.so.1
```
Not sure if that's the right solution, but i got my system back to boot up:
```
λ sudo update-initramfs -k 6.7.9-amd64 -u
λ lsinitramfs initrd.img-6.7.9-amd64 |grep gcc
usr/lib/x86_64-linux-gnu/libgcc_s.so.1
```
It would also be nice if the "gui" view could show the error or at
least tell the user to pres ctrl-alt-del to get to a more informative
view, took me ages to figure out that one :-(
-- Package-specific info:
-- /proc/cmdline
BOOT_IMAGE=/vmlinuz-6.7.9-amd64 root=/dev/mapper/bloodaxe--vg-root ro
quiet splash
-- /etc/crypttab
nvme0n1p3_crypt UUID=8df352e7-81f1-457e-82bc-0d40aa06ea83 none luks,discard
-- /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# systemd generates mount units based on this file, see systemd.mount(5).
# Please run 'systemctl daemon-reload' after making changes here.
#
#
/dev/mapper/bloodaxe--vg-root / ext4
errors=remount-ro 0 1
# /boot was on /dev/nvme0n1p2 during installation
UUID=1fa0b711-60ed-4c97-b63e-63b57ea38220 /boot ext2
defaults0 2
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=5AC9-21F9 /boot/efi vfatumask=0077 0 1
/dev/mapper/bloodaxe--vg-swap_1 noneswapsw
0 0
-- lsmod
Module Size Used by
xt_conntrack 12288 1
nft_chain_nat 12288 3
xt_MASQUERADE 16384 1
nf_nat 65536 2 nft_chain_nat,xt_MASQUERADE
nf_conntrack_netlink61440 0
nf_conntrack 212992 4
xt_conntrack,nf_nat,nf_conntrack_netlink,xt_MASQUERADE
nf_defrag_ipv6 24576 1 nf_conntrack
nf_defrag_ipv4 12288 1 nf_conntrack
xfrm_user 61440 1
xfrm_algo 16384 1 xfrm_user
xt_addrtype12288 2
nft_compat 24576 4
br_netfilter 36864 0
bridge385024 1 br_netfilter
stp12288 1 bridge
llc16384 2 bridge,stp
ctr12288 2
ccm20480 6
tun69632 2
rfcomm102400 4
uinput 20480 2
cmac 12288 3
algif_hash 12288 1
algif_skcipher 12288 1
af_alg 36864 6 algif_hash,algif_skcipher
snd_seq_dummy 12288 0
snd_hrtimer12288 1
snd_seq 114688 7 snd_seq_dummy
snd_seq_device 16384 1 snd_seq
nf_tables 372736 57 nft_compat,nft_chain_nat
qrtr 57344 4
overlay 212992 0
bnep 36864 2
binfmt_misc28672 1
snd_ctl_led24576 0
snd_soc_skl_hda_dsp24576 4
snd_soc_hdac_hdmi 45056 1 snd_soc_skl_hda_dsp
snd_sof_probes 24576 0
snd_soc_intel_hda_dsp_common16384 1 snd_soc_skl_hda_dsp
snd_hda_codec_hdmi 90112 1
snd_hda_codec_realtek 200704 1
snd_hda_codec_generic 114688 1 snd_hda_codec_realtek
snd_soc_dmic 12288 1
snd_sof_pci_intel_cnl12288 0
snd_sof_intel_hda_common 221184 1 snd_sof_pci_intel_cnl
intel_pmc_core_pltdrv12288 0
intel_pmc_core 81920 0
soundwire_intel73728 1 snd_sof_intel_hda_common
soundwire_generic_allocation12288 1 soundwire_intel
snd_sof_intel_hda_mlink40960 2 soundwire_intel,snd_sof_intel_hda_common
x86_pkg_temp_thermal16384 0
soundwire_cadence 45056 1 soundwire_intel
intel_powerclamp 16384 0
snd_sof_intel