On Sat, 05 Apr 2025 22:56:46 +0300 =?utf-8?q?Martin-=C3=89ric_Racine?= <martin-eric.racine@iki.fi> wrote:
Package: upgrade-reports
Severity: important
X-Debbugs-Cc: martin-eric.racine@iki.fi
After upgrading an amd64 host from Bookworm to Trixie (2025-04-05 EEST), on reboot, the host gets a kernel panic with:
initramfs unpacking failed invalid magic at start of compressed archive
I just checked whether I can rescue the host using the Trixie mini.iso
on a USB stick:
Debian GNU/Linux 13 (trixie) amd64 - netboot mini.iso 20241227
I get the same kernel panic as soon as GRUB loads the kernel.
If I try with the Bookworm mini.iso, the kernel boots just fine and
gets me to the rescue menu.
Debian GNU/Linux 12 (bookworm) amd64 - netboot mini.iso 20230607+deb12u9
However, using the Bookworm rescue mode is a PITA, because it doesn't
know how to mount brtfs sub-volumes (not even with Debian's default
@rootfs) so even just chroot'ing myself in using the above recipe
requires a LOT of command typing inside the rescue mode's shell.
On Sun, 6 Apr 2025 10:00:45 +0300
=?UTF-8?Q?Martin=2D=C3=89ric_Racine?= <martin-eric.racine@iki.fi>
wrote:
On Sat, 05 Apr 2025 22:56:46 +0300 =?utf-8?q?Martin-=C3=89ric_Racine?= <martin-eric.racine@iki.fi> wrote:
Package: upgrade-reports
Severity: important
X-Debbugs-Cc: martin-eric.racine@iki.fi
After upgrading an amd64 host from Bookworm to Trixie (2025-04-05 EEST), on reboot, the host gets a kernel panic with:
initramfs unpacking failed invalid magic at start of compressed archive
I just checked whether I can rescue the host using the Trixie mini.iso
on a USB stick:
Debian GNU/Linux 13 (trixie) amd64 - netboot mini.iso 20241227
I get the same kernel panic as soon as GRUB loads the kernel.
If I try with the Bookworm mini.iso, the kernel boots just fine and
gets me to the rescue menu.
Debian GNU/Linux 12 (bookworm) amd64 - netboot mini.iso 20230607+deb12u9
However, using the Bookworm rescue mode is a PITA, because it doesn't
know how to mount brtfs sub-volumes (not even with Debian's default @rootfs) so even just chroot'ing myself in using the above recipe
requires a LOT of command typing inside the rescue mode's shell.
As a further test, I've tried booting the following Trixie USB stick
in BIOS mode via the rescue menu:
Debian GNU/Linux trixie-DI-alpha1 "Trixie" - Official Alpha amd64
NETINST with firmware 20241230-11:26
This succesfully gets me to the rescue process and allows me to chroot
into the host after typing the long commandline series above.
Basically, a/b testing shows that Trixie kernels per-se work fine, but something fishy is going on with the grub-efi-amd64 in Trixie. The
same host was originally installed with a Bookworm mini.iso on USB and
booted fine via EFI, so the problem really does seem to be the
grub-efi-amd64 in Trixie.
As the attached screenshot shows, 'fuseblk' seemingly doesn't know
anything about the 'subvol' option for btrfs, which is what causes the failure to mount root. As to whether this implies a GRUB or Linux
module, I wouldn't know.
On 16/04/2025 at 13:38, Martin-Éric Racine wrote:
As the attached screenshot shows, 'fuseblk' seemingly doesn't know
anything about the 'subvol' option for btrfs, which is what causes the failure to mount root. As to whether this implies a GRUB or Linux
module, I wouldn't know.
The failure has nothing to do with fuse.
I guess the kernel tries to mount the root filesystem with fuseblk as a
last resort *after* the initramfs unpacking failure because it is the
only built-in driver, all other block device/filesystem drivers being
modules in the initramfs.
If you start grub shell and load the kernel and initramfs by hand, does
it show an error when loading the initramfs ?
ls # show drives and partitions
set root=hd0,gpt2 # adjust with actual root partition
linux /@rootfs/boot/vmlinuz-6.12.20-amd64 # load kernel
initrd /@rootfs/boot/initrd.img-6.12.20-amd64 # load initramfs
ke 16.4.2025 klo 20.40 Pascal Hambourg (pascal@plouf.fr.eu.org) kirjoitti:
There may be some silent data corruption when grub reads the initramfs.
Can you test with the initramfs on another filesystem type (fat, ext4) ?
Can you test with grub for BIOS/legacy boot ?
See above. GRUB-EFI is clearly the culprit. Booting the Trixie d-i in
rescue mode works in BIOS mode, but not in EFI mode.
Am Freitag, dem 18.04.2025 um 19:10 +0300 schrieb Martin-Éric Racine:
The Debian changelog suggests what caused this:
Someone enabled compiling GRUB with FUSE3 to enhance QEMU support.
The problem with FUSE3 is that it only has very basic support for
btrfs, lacking among other things support for subvolumes. This is a
serious issue considering how widely spread btrfs has become and how debian-installer uses subvolumes by default whenever someone selects
brtfs as the filesystem type. Rendering hosts unbootable is a big
no-no. I would really hope the release team to step in on this one.
FUSE support in GRUB 2 is only used for the grub-mount binary. And not
at all in the actual booting code loaded from EFI/BIOS.
You could though test the fs drivers of it with grub-mount:
grub-mount /dev/sda2 /mnt (replace sda2 with your / partition)
sha1sum /mnt/@rootfs/boot/initrd.img-6.12.20-amd64
sha1sum /@rootfs/boot/initrd.img-6.12.20-amd64
both commands should output the same hash sum.
And yes, this is safe with a mounted fs because the GRUB fs code is
100% complete read-only.
There seems to be two issues here:
1) A magic error upon loading initrd. It also affects the Trixie
rescue mode via UEFI (but not via BIOS). Bookworm rescue mode boots
both ways.
2) fuseblk reporting an unsupported subvol option on Trixie.
It's a simply a/b test: Downgrading grub* to Bookworm made the host
bootable again.
Martin-Éric
la 19.4.2025 klo 8.43 Felix Zielcke (fzielcke@z-51.de) kirjoitti:
Am Freitag, dem 18.04.2025 um 21:17 +0300 schrieb Martin-Éric Racine:
pe 18.4.2025 klo 19.39 Felix Zielcke (fzielcke@z-51.de) kirjoitti:
You could though test the fs drivers of it with grub-mount:
grub-mount /dev/sda2 /mnt (replace sda2 with your / partition)
sha1sum /mnt/@rootfs/boot/initrd.img-6.12.20-amd64
sha1sum /@rootfs/boot/initrd.img-6.12.20-amd64
both commands should output the same hash sum.
And yes, this is safe with a mounted fs because the GRUB fs code is
100% complete read-only.
Same checksum. However, manually executing this tells us nothing. It's performed on a filesystem that's already available. It doesn't
simulate GRUB attempting to cold mount a system on a booting host.
There seems to be two issues here:
1) A magic error upon loading initrd. It also affects the Trixie
rescue mode via UEFI (but not via BIOS).
2) fuseblk reporting an unsupported subvol option on Trixie.
Is there any way I can help the maintainers pinpoint the source of the problem?
pe 2.5.2025 klo 19.44 Chris Hofstaedtler (zeha@debian.org) kirjoitti:
On Sun, Apr 13, 2025 at 10:23:17AM +0300, Martin-Éric Racine wrote:
Is there any way I can help the maintainers pinpoint the source of the problem?
This bug needs two things:
1) A full reproducer step list, starting from "I have nothing but an empty amd64 VM".
There isn't much to reproduce:
1) Start with a fully functional host running Bookworm with GRUB-EFI
on a brtfs filesystem created using d-i/Bookworm's default @rootfs
subvolume name.
2) Change APT sources from Bookworm to Trixie.
3) Dist-upgrade.
4) Reboot.
5) Find the above kernel panic.
6) Using Bookworm d-i's rescue mode via EFI, APT pin and downgrade
grub* to Bookworm. All other packages remain at Trixie versions.
7) Reboot.
8) The host boots normally.
la 3.5.2025 klo 17.47 Martin-Éric Racine (martin-eric.racine@iki.fi)kirjoitti:
<martin-eric.racine@iki.fi> wrote:la 3.5.2025 klo 17.41 Julian Andres Klode (jak@debian.org) kirjoitti:
On 3 May 2025 15:03:18 CEST, "Martin-Éric Racine"
kirjoitti:la 3.5.2025 klo 14.42 Chris Hofstaedtler (zeha@debian.org)
wrote:
Control: tags -1 + moreinfo unreproducible
On Fri, May 02, 2025 at 08:14:37PM +0300, Martin-Éric Racine
kirjoitti:pe 2.5.2025 klo 19.44 Chris Hofstaedtler (zeha@debian.org)
Racine wrote:
On Sun, Apr 13, 2025 at 10:23:17AM +0300, Martin-Éric
source of the problem?Is there any way I can help the maintainers pinpoint the
nothing but an empty
This bug needs two things:
1) A full reproducer step list, starting from "I have
GRUB-EFIamd64 VM".
There isn't much to reproduce:
1) Start with a fully functional host running Bookworm with
@rootfson a brtfs filesystem created using d-i/Bookworm's default
downgradesubvolume name.
2) Change APT sources from Bookworm to Trixie.
3) Dist-upgrade.
4) Reboot.
5) Find the above kernel panic.
6) Using Bookworm d-i's rescue mode via EFI, APT pin and
grub* to Bookworm. All other packages remain at Trixie versions.
7) Reboot.
8) The host boots normally.
I've followed these steps today, and cannot reproduce the problem.
The upgraded VM boots successfully.
I beleive you. Again, googling this exact error mostly pulls up >reports of this failing on ASUS motherboards of various models.
that can be done about that.Unfortunately some firmware is just broken and there isn't much
parts of the firmware, such as EFI LoadFile2 protocols for loading theSorry, but that's a really pitiful excuse for breaking something that worked fine until now.
As we're moving towards more upstream solutions that use more
I cannot help but wonder what is the point of breaking something as fundamental as a bootloader, even just for the sake of adopting new
ways of doing things. It can only result in fewer and fewer people
using Debian.
Check this post out:
It's on Ubuntu, but the error is similar. Key point: something among
the boot messages (see screenshot there) suggests that either GRUB or
Linux don't know how to boot off a btrfs partition anymore. Sure
enough, someone in the thread says that once they made a fresh install
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 482 |
Nodes: | 16 (2 / 14) |
Uptime: | 53:40:44 |
Calls: | 9,566 |
Files: | 13,660 |
Messages: | 6,142,642 |