# dpkg --configure -a
Paramétrage de initramfs-tools (0.141) ...
update-initramfs: deferring update (trigger activated)
Traitement des actions différées (« triggers ») pour initramfs-tools (0.141) ...
update-initramfs: Generating /boot/initrd.img-5.17.0-1-amd64
live-boot: core filesystems dm-verityE: /usr/share/initramfs-tools/hooks/live failed with return 1.
update-initramfs: failed for /boot/initrd.img-5.17.0-1-amd64 with 1.
dpkg: erreur de traitement du paquet initramfs-tools (--configure) :
installed initramfs-tools package post-installation script subprocess returned error exit status 1
Des erreurs ont été rencontrées pendant l'exécution :
initramfs-tools
Par curisosité je viens de voir que je n’ai pas cette hook sur plusieurs de mes systèmes et en cherchant ça semble lié à ce paquet : live-boot-initramfs-tools.
N’y aurait-il pas un souci avec la signature de ce kernel durant la mise à jour ??? j’ai pas de secure boot sous la main malheureusement et pas plus d’idée
Pas surprenant qu’il ne soit pas installé chez toi : d’après sa description ce paquet est prévu pour les systèes live et n’est pas censé être installé sur un système ordinaire.
Pour le reste, qu’est-ce qui te fait penser à un problème lié au secure boot ?
@PengouinPdt : c’est un système live ou une installation ordinaire ?
update-initramfs -u affichera peut-être plus d’informations avec l’option -v.
La hook en question but après ça : filesystems dm-verity
Quel rapport avec le secure boot ?
installation ordinaire, depuis une image iso. ça fait des mois et des mois que je fonctionne dessus, sans quasiment jamais de soucis.
toutes les infos restituées sont dans ce paste :
PS : en passant - merci à tous les deux de vous pencher sur ce problème
Car j’avais pas pensé à la vérification d’un Device Mapper chiffré mais plus à un souci de signature lié au secure boot.
(...)
Calling hook ntfs_3g
Adding binary /bin/ntfs-3g
Adding binary-link /usr/lib/x86_64-linux-gnu/libntfs-3g.so.89
Adding binary /lib/x86_64-linux-gnu/libntfs-3g.so.89.0.0
Calling hook live
live-boot: core filesystems dm-verityRemoving /boot/initrd.img-5.17.0-1-amd64.dpkg-bak
Ça s’arrête comme ça, sans message d’erreur ? Si tu as redirigé la sortie standard dans un fichier, tu as bien redirigé aussi la sortie d’erreur ?
update-initramfs -uv | tee update-initramfs.txt
mais avec la commande update-initramfs, cela se termine exactement pareil !
Cette commande ne redirige pas la sortie d’erreur dans le fichier. Utilise plutôt
update-initramfs -uv 2>&1 | tee update-initramfs.txt
Et pas besoin de tout poster, la fin suffit.
(…)
Calling hook live
live-boot: core filesystems dm-verityE: /usr/share/initramfs-tools/hooks/live failed with return 1.
Removing /boot/initrd.img-5.17.0-1-amd64.dpkg-bak
update-initramfs: failed for /boot/initrd.img-5.17.0-1-amd64 with 1.
Le hook script live n’est pas plus bavard avec -v… Et je ne sais pas du tout ce qu’il fait.
Espace libre suffisant dans /boot et ailleurs ?
Essaie avec strace
, c’est très bavard mais parfois ça permet de décoincer des trucs.
J’ai trouvé ça sur la toile c’est pour ubuntu mais ça doit être proche (je n’ai pas non plus sur les postes aux quels j’ai accès) :
Pour débugger un script shell, ça me paraît un peu excessif.
Ça ne contient pas de section « dm-verity ».
P’têt ben mais on trouve ren…
Bon en récupérant le paquet adéquat j’ai bien une copie à jour du script :
https://packages.debian.org/sid/live-boot-initramfs-tools
#!/bin/sh
set -e
. /usr/share/initramfs-tools/hook-functions
[ "${QUIET}" ] || echo -n "live-boot:"
# Reading configuration file from filesystem and live-media
for _FILE in /etc/live/boot.conf /etc/live/boot/* \
/run/live/medium/live/boot.conf /run/live/medium/live/boot/*
do
if [ -e "${_FILE}" ]
then
. "${_FILE}"
fi
done
# Checking live-boot
if [ ! -e /bin/live-boot ]
then
echo
echo "W: live-boot-initramfs-tools (backend) installed without live-boot,"
echo "W: this initramfs will *NOT* have live support."
exit 0
fi
[ "${QUIET}" ] || echo -n " core"
mkdir -p "${DESTDIR}/bin"
cp -a /bin/live-boot "${DESTDIR}/bin"
mkdir -p "${DESTDIR}/lib/live"
cp -a /lib/live/boot "${DESTDIR}/lib/live"
mkdir -p "${DESTDIR}/etc/live"
if [ -e /etc/live/boot.conf ]
then
cp -a /etc/live/boot.conf "${DESTDIR}/etc/live"
fi
if [ -e /etc/live/boot ]
then
cp -a /etc/live/boot "${DESTDIR}/etc/live"
fi
# klibc dependencies
for FILE in /lib/libacl* /lib/libblkid* /lib/libuuid* /lib/libdevmapper* /lib/libattr*
do
if [ ! -e "${DESTDIR}/${FILE}" ] && ls "${FILE}" > /dev/null 2>&1
then
cp -a "${FILE}" "${DESTDIR}/${FILE}"
fi
done
# udev dependencies
if [ "${MINIMAL:-}" != "true" ] && [ "${MINIMAL:-}" != "yes" ]
then
for FILE in /lib/udev/*_id
do
copy_exec "${FILE}"
done
fi
if [ -e /lib/udev/rules.d/60-cdrom_id.rules ] && [ "${DISABLE_CDROM:-}" != "true" ] && \
[ "${DISABLE_CDROM:-}" != "yes" ]
then
mkdir -p "${DESTDIR}/lib/udev/rules.d"
cp -p /lib/udev/rules.d/60-cdrom_id.rules "${DESTDIR}/lib/udev/rules.d"
fi
[ "${QUIET}" ] || echo -n " filesystems"
# Configuration: keymap (usefull when using encryption)
if [ -x /bin/loadkeys ] && [ -r /etc/console/boottime.kmap.gz ]
then
copy_exec /bin/loadkeys
mkdir -p "${DESTDIR}/etc"
cp /etc/console/boottime.kmap.gz "${DESTDIR}/etc"
fi
# Configuration: Unique ID
if [ -n "${LIVE_GENERATE_UUID}" ]
then
mkdir -p "${DESTDIR}/conf"
uuidgen -r > "${DESTDIR}/conf/uuid.conf"
fi
# Filesystem: btrfs
manual_add_modules btrfs
# Filesystem: cifs
if [ -x /sbin/mount.cifs ]
then
copy_exec /sbin/mount.cifs
manual_add_modules cifs
fi
# Filesystem: ext3/ext4
manual_add_modules ext3
manual_add_modules ext4
# Filesystem: hfs/hfsplus
manual_add_modules hfs
manual_add_modules hfsplus
# Filesystem: jffs2
manual_add_modules jffs2
if [ -x /usr/bin/rsync ] && [ "${MINIMAL:-}" != "true" ] && [ "${MINIMAL:-}" != "yes" ]
then
copy_exec /usr/bin/rsync /bin
fi
# Filesystem: squashfs
copy_exec /sbin/losetup
manual_add_modules loop
manual_add_modules squashfs
manual_add_modules sqlzma
manual_add_modules unlzma
# Filesystem: aufs/overlay
manual_add_modules aufs
manual_add_modules overlay
# Filesystem: vfat
if [ "${DISABLE_FAT:-}" != "true" ] && [ "${DISABLE_FAT:-}" != "yes" ]
then
manual_add_modules nls_cp437
manual_add_modules nls_iso8859-1
manual_add_modules nls_utf8
manual_add_modules nls_ascii
manual_add_modules vfat
fi
# Filesystem: ntfs
if [ "${DISABLE_NTFS:-}" != "true" ] && [ "${DISABLE_NTFS:-}" != "yes" ]
then
manual_add_modules ntfs
fi
# dm-verity support
if [ "${DISABLE_DM_VERITY:-}" != "true" ] && [ "${DISABLE_DM_VERITY:-}" != "yes" ]
then
[ "${QUIET}" ] || echo -n " dm-verity"
manual_add_modules dm-verity
# The BusyBox mount does not support dm-verity so we use the util-linux version.
copy_exec /usr/bin/mount /bin
fi
[ "${QUIET}" ] || echo -n " devices"
# Hardware: cdrom
if [ "${DISABLE_CDROM:-}" != "true" ] && [ "${DISABLE_CDROM:-}" != "yes" ]
then
manual_add_modules ide-cd
manual_add_modules ide-generic
manual_add_modules ohci1394
manual_add_modules sbp2
manual_add_modules sr_mod
fi
# Hardware: usb
if [ "${DISABLE_USB:-}" != "true" ] && [ "${DISABLE_USB:-}" != "yes" ]
then
manual_add_modules sd_mod
fi
# Hardware: network
auto_add_modules net
# Program: eject
if [ -x /usr/bin/eject ]
then
copy_exec /usr/bin/eject /bin
fi
[ "${QUIET}" ] || echo -n " utils"
# Feature: Verify Checksums
if [ -e /etc/progress-linux_version ]
then
copy_exec /usr/bin/sha256sum /bin
else
copy_exec /usr/bin/md5sum /bin
fi
# Program: memdisk
if [ -x /usr/bin/memdiskfind ]
then
[ "${QUIET}" ] || echo -n " memdisk"
copy_exec /usr/bin/memdiskfind
manual_add_modules phram
manual_add_modules mtdblock
fi
# Program: udev
if [ -x /bin/udevadm ]
then
[ "${QUIET}" ] || echo -n " udev"
copy_exec /bin/udevadm
fi
# Program: blockdev
if [ -x /sbin/blockdev ]
then
[ "${QUIET}" ] || echo -n " blockdev"
copy_exec /sbin/blockdev
fi
# FUSE kernel module
if [ "${DISABLE_FUSE:-n}" != "true" ] && [ "${DISABLE_FUSE:-n}" != "yes" ]
then
manual_add_modules fuse
# FUSE filesystem: httpfs2
if [ -x /usr/bin/httpfs2_ssl ]
then
[ "${QUIET}" ] || echo -n " httpfs:ssl"
copy_exec /usr/bin/httpfs2_ssl /bin/httpfs
elif [ -x /usr/bin/httpfs2 ]
then
[ "${QUIET}" ] || echo -n " httpfs"
copy_exec /usr/bin/httpfs2 /bin/httpfs
fi
# FUSE filesystem: curlftpfs
if [ -x /usr/bin/curlftpfs ]
then
[ "${QUIET}" ] || echo -n " ftpfs"
copy_exec /usr/bin/curlftpfs /bin
fi
fi
# iSCSI
if [ -x /usr/sbin/iscsistart ]
then
[ "${QUIET}" ] || echo -n " iscsi"
copy_exec /usr/sbin/iscsistart /bin
#manual_add_modules ib_iser
manual_add_modules iscsi_tcp
manual_add_modules crc32c
fi
# Some experimental stuff
[ "${QUIET}" ] || echo -n " dns"
# libnss_dns.so.*: DNS
# libnss_files.so.*: /etc/hosts and /etc/passwd
# libnss_compat.so.*: /etc/passwd
for _SHLIB in $(find /lib /usr/lib -name 'libnss_dns.so.*' -o -name 'libnss_files.so.*')
do
copy_exec "${_SHLIB}"
done
if [ ! -e "${DESTDIR}/etc/nsswitch.conf" ]
then
# Needed to make "hostname -f" honor the domainname provided by DHCP
echo "hosts: files dns" > "${DESTDIR}/etc/nsswitch.conf"
fi
[ "${QUIET}" ] || echo .
Mais je vois pas plus …
La partie concernant dm-verity :
# dm-verity support
if [ "${DISABLE_DM_VERITY:-}" != "true" ] && [ "${DISABLE_DM_VERITY:-}" != "yes" ]
then
[ "${QUIET}" ] || echo -n " dm-verity"
manual_add_modules dm-verity
# The BusyBox mount does not support dm-verity so we use the util-linux version.
copy_exec /usr/bin/mount /bin
fi
Les causes d’erreurs possibles sont :
- le module dm-verity est manquant ; il est bien présent dans le noyau Debian standard
- l’exécutable /usr/bin/mount est manquant ; le paquet mount installe ce fichier dans /bin et non dans /usr/bin, mais avec « usr-merge » (où /bin est un symlink vers /usr/bin, par défaut à partir de buster et abandonné après bullseye), il est accessible par les deux chemins.
Vérification :
/sbin/modinfo dm-verity
which -a mount
Apparemment il est possible de désactiver le support de dm-verity dans l’initramfs en mettant DISABLE_DM_VERITY à « true » ou « yes » dans /etc/live/boot.conf ou un fichier /etc/live/boot/*, mais je ne connais pas les conséquences sur le démarrage.
Oui :
$ df -h
df: /run/user/1000/doc: Operation not permitted
Filesystem Size Used Avail Use% Mounted on
udev 7.8G 0 7.8G 0% /dev
tmpfs 1.6G 1.3M 1.6G 1% /run
/dev/sda7 4.6G 1.1G 3.2G 26% /
/dev/sda9 19G 7.9G 9.4G 46% /usr
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 4.7G 4.0K 4.7G 1% /dev/shm
/dev/sda8 920M 112M 746M 13% /boot
/dev/sda1 510M 15M 496M 3% /boot/efi
/dev/sda6 397G 342G 35G 91% /home
/dev/sda12 4.6G 2.0G 2.3G 47% /opt
/dev/sda10 4.6G 76K 4.3G 1% /tmp
/dev/sda13 4.6G 160K 4.3G 1% /usr/local
/dev/sda11 4.6G 1.9G 2.4G 44% /var
/dev/sda14 4.6G 34M 4.3G 1% /var/log
cgroup_root 10M 0 10M 0% /sys/fs/cgroup
tmpfs 1.6G 12K 1.6G 1% /run/user/1000
/home/myuser/.Private 397G 342G 35G 91% /home/myuser
$ /sbin/modinfo dm-verity
filename: /lib/modules/5.17.0-1-amd64/kernel/drivers/md/dm-verity.ko
license: GPL
description: device-mapper target for transparent disk integrity checking
author: Will Drewry <wad@chromium.org>
author: Mandeep Baines <msb@chromium.org>
author: Mikulas Patocka <mpatocka@redhat.com>
depends: dm-bufio,dm-mod,reed_solomon
retpoline: Y
intree: Y
name: dm_verity
vermagic: 5.17.0-1-amd64 SMP preempt mod_unload modversions
sig_id: PKCS#7
signer: Debian Secure Boot CA
sig_key: 4B:6E:F5:AB:CA:66:98:25:17:8E:05:2C:84:66:7C:CB:C0:53:1F:8C
sig_hashalgo: sha256
signature: 5F:F3:3C:79:48:72:8D:9D:5D:DE:BA:B1:0A:75:55:5E:DC:12:A1:36:
2A:44:88:B7:BD:AA:2B:FD:EC:D7:A5:3B:7D:29:6E:CE:C6:1C:2A:06:
A9:33:AC:96:9A:4C:40:AB:16:5B:9A:C2:1E:43:54:95:02:D0:DA:9A:
CE:8D:60:E2:03:8C:77:C2:C4:DB:03:2D:C2:A6:C3:C2:E9:37:3B:10:
1B:12:5B:91:DD:2B:30:B4:57:0A:83:C2:99:E5:30:DC:55:0A:2B:89:
8E:07:1A:DC:FF:FF:AB:60:34:06:C4:4B:58:14:1D:B8:A3:A9:93:88:
3D:05:49:4E:5A:0E:F5:6C:A5:A3:99:5A:9E:9D:DA:76:A0:5D:81:9E:
FC:4D:63:9A:18:0A:01:01:22:19:54:37:F3:C2:4F:FD:EE:24:ED:CB:
09:76:BB:C6:9F:1E:22:84:07:2B:55:F8:F0:6E:46:DE:22:6C:DD:2F:
47:4A:DC:73:87:22:2C:06:2E:0C:DB:B8:69:B0:E9:6B:01:05:A9:A8:
17:76:5C:7B:95:55:E3:69:65:75:D5:5A:AA:C1:A9:A9:6F:85:54:29:
67:F5:C4:56:11:35:0F:FD:A3:81:AA:2A:14:5D:FE:0C:CF:E5:02:54:
24:69:BB:57:BC:87:00:EF:93:7F:F1:0D:26:59:04:AB
parm: prefetch_cluster:uint
parm: require_signatures:Verify the roothash of dm-verity hash tree (bool)
$ which -a mount
/bin/mount
Le binaire usrmerge
n’est pas installé. Je fais.
Paramétrage de usrmerge (25) ...
The system has been successfully converted.
Et cela a résolu le problème ; la mise à jour a continué sans soucis.
Installer le paquet usrmerge n’était pas la meilleure chose à faire… Comme je l’ai écrit, cette façon de fusionner /usr est abandonnée car elle est incompatible avec le fonctionnement de dpkg, et revenir en arrière est compliqué voire impossible. Il aurait mieux valu créer un symlink de mount dans /usr/bin ou désactiver le support de dm-verity fautif qui a été ajouté par la toute récente mise à jour de live-boot en attendant que le bug soit corrigé. Apparemment il n’a pas encore été rapporté, n’hésite pas à le faire.