1

On a dual-boot system: Fedora rawhide with Debian sid, the system will not boot.
Fedora is operational, Debian is unable to boot.
grub is being updated from within Fedora (entries refreshed properly).

Kernel panic message:

Initramfs unpacking failed: ZSTD-compressed data is corrupt
Failed to execute /init (error -2)
CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.15-amd64 #1
Kernel panic not syncing: No working init found.
Try passing init option to kernel.
See Linux Documentation/admin-guide/init.rst for guidance.

Things I have tried:

  1. chroot into the system from GParted Live:
    • chroot commands:
      sudo mount /dev/sda1 /mnt
      sudo mount --bind /dev /mnt/dev
      sudo mount --bind /dev/pts /mnt/dev/pts
      sudo mount --bind /proc /mnt/proc
      sudo mount --bind /sys /mnt/sys
      sudo chroot /mnt
      
    • apt update && apt upgrade
    • apt --reinstall install linux-image-amd64
    • update-initramfs -u -k all
  2. GRUB:
    • Provide init=/bin/init
    • Boot from command-line.
  3. Lower Kernel version.
  4. Documentation/admin-guide/init.rst:
    • readelf -d <INIT>|grep NEEDED is satisfied.
    • There was no /bin/init at all.
8
  • 1
    Could be corrupt data, kernel bug, or faulty hardware. The failing Intel CPUs sometimes show this symptom. Bad ram could also be responsible. Fedora might work due to different kernel, config, or other compression method. You can add kernel parameters (maxcpus=1 or maxcpus=0?) to limit CPU to single core, just for testing, if that makes it work, then more likely to be CPU related issue. Commented Feb 23 at 14:42
  • 1
    Can you verify / unpack the initrd file manually? Maybe it's actually corrupt for some reason? Filesystem has enough free space? Grub can calculate md5sum for files, so you can also verify Grub sees it correctly. That's the trouble with corruption errors, you never know which step is failing. Commented Feb 23 at 23:11
  • 1
    Does the unpacked size match the packed one? initrd images can be concatenated, and cpio would only see the first one. (I'm not sure if Debian uses that for early microcode and the like). It should be zstd compressed anyhow unless the error message is completely bogus... Commented Feb 26 at 20:47
  • 1
    try lsinitramfs, unmkinitramfs or lsinitcpio --extract or similar utils that handle concatenated initrd images, or try with cat initrd | (cpio; unzstd; dd of=remainder) but that doesn't work in every situation. binwalk might also work Commented Feb 28 at 11:38
  • 1
    wiki.debian.org/initramfs descibes it better I guess, "how to inspect initramfs" Commented Feb 28 at 11:41

0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.