Hi,

On Tue, Dec 05, 2023 at 05:14:20PM +0100, Salvatore Bonaccorso wrote:
> Control: reassign -1 src:cryptsetup 2:2.6.1-5
> 
> Hi
> 
> On Tue, Dec 05, 2023 at 04:55:58PM +0100, Salvatore Bonaccorso wrote:
> > Hi,
> > 
> > On Tue, Dec 05, 2023 at 04:38:19PM +0100, Salvatore Bonaccorso wrote:
> > > Control: tags -1 + confirmed
> > > 
> > > On Tue, Dec 05, 2023 at 06:23:45AM +0100, Michael Ott wrote:
> > > > Package: src:linux
> > > > Version: 6.6.4-1~exp1
> > > > Severity: important
> > > > 
> > > > Dear Maintainer,
> > > > 
> > > > After updating to the 6.6 kernel the password for my encryption does 
> > > > not longer
> > > > work
> > > > 
> > > > Please unlock disk nvme0n1p3_crypt: **********
> > > > device-mapper: table: 253:0: crypt: Error allocation crypto tfm 
> > > > (_ENOENT)
> > > > device-mapper: ioctl: error adding target to table
> > > > device-mapper: reload ioctl on nvme0n1p3_crypt (253:0) failed: No such 
> > > > file or
> > > > directory
> > > > cryptsetup: ERROR: nvme0n1p3_crypt: cryptsetup failed, bad password or 
> > > > options?
> > > > 
> > > > Everything works with 6.5. I also downgrade systemd and cryptosetup but 
> > > > no
> > > > changes
> > > 
> > > I suspect this is related to changes around
> > > https://git.kernel.org/linus/68cf01760bc0891074e813b9bb06d2696cac1c01
> > > (but not verified, nor tracked down).
> > 
> > Actually after a more closer look on what is in the initrd: Bastian
> > can be this due to switching to compressed modules? If this claim is
> > correct then likely initramfs-tools would not copy them to the initrd.
> 
> It looks that we only consider *.ko uncompressed in
> debian/initramfs/hooks/cryptroot:
> 
> add_modules() {
>     local glob="$1" found=n
>     shift
>     for mod in $(find -H "$@" -name "$glob.ko" -type f -printf '%f\n'); do
>         manual_add_modules "${mod%.ko}"
>         found=y
>     done
>     [ "$found" = y ] && return 0 || return 1
> }
> 
> but various modules are now with 6.6.4-1~exp1 compressed:
> 
> a relatively quick woraround would be to change the function to:
> 
> add_modules() {
>     local glob="$1" found=n
>     shift
>     for mod in $(find -H "$@" -name "$glob.ko*" -type f -printf '%f\n'); do
>         manual_add_modules "${mod%.ko*}"
>         found=y
>     done
>     [ "$found" = y ] && return 0 || return 1
> }
> 
> Is this the correct approach though? Which other hook functions might
> be affected by the change in linux by switching to compressed modules?

And in fact this is the solution proposed in #1036049.

Regards,
Salvatore

Reply via email to