Public bug reported:

Problem
=======
Live system with persistence becomes unstable under warm reboot stress. Failures
are intermittent and symptoms vary — like a "time bomb": the system may appear
to work while initrd contents are silently corrupted.

Observed failure modes (~16 reboot stress test):
  - Boot hangs in initramfs, then BusyBox (initramfs) shell (no systemd)
  - "init not found"
  - "Segmentation fault" displayed and never recovers
  - Kernel log: "Initramfs unpacking failed: ZSTD-compressed data is corrupt"
    (seen on 4 of 15 boots that produced logs; boot continued on those 4)
  - 1 of 16 boots hung completely with no userspace logs
  - Sometimes boot completes despite errors; unknown whether runtime state is
    fully trustworthy

Primary proven failure (binary analysis on hung boot):
On-disk initrd is correct, but runtime overlay.ko in RAM has a single-byte
corruption that invalidates the kernel module signature. modprobe/insmod fails
with "Key was rejected by service"; persistence overlay cannot mount.

Environment
===========
Hardware:     Dell OptiPlex AIO Plus 7410 (0RV5V3), BIOS 1.36.0
              Intel Core i9-13900, 32 GB RAM
Boot:         UEFI, Secure Boot disabled
Boot media:   USB live system (ext4 persistence partition)
Initrd:       /current/initrd (~177 MiB)
Cmdline:      boot=live persistence persistence-label=persistence
              live-media=UUID=<ext4-partition> live-media-path=current forcefsck

Packages
========
Kernel:       linux-image-6.17.0-41-generic (6.17.0-41.41~24.04.1-generic)
Modules:      linux-modules-6.17.0-41-generic
GRUB:         grub-efi-amd64-signed 2.06-2ubuntu14.8

Steps to reproduce
==================
1. Build live initrd with live-boot and persistence (~177 MiB).
2. Confirm overlay.ko is in on-disk initrd:
     lsinitramfs /current/initrd | grep overlay.ko
3. Run automated warm reboot stress test (~16+ cycles).
4. Observe intermittent symptoms (hang, init not found, segfault, ZSTD error).
5. On initramfs hang, compare overlay.ko from failed runtime with file extracted
   from on-disk initrd via unmkinitramfs.

Expected result
===============
Initrd contents in RAM always match on-disk initrd. Every reboot reaches systemd
reliably with persistence.

Actual result
=============
Intermittent initrd corruption in RAM with varying visible symptoms. On proven
failure case: overlay.ko corrupted; modprobe overlay fails; boot stops in
initramfs. On other cycles: system may still boot after errors, leaving unknown
runtime state.

Reboot stress statistics (our test)
====================================
  ~16 warm reboot cycles total
  4 / 15 logged boots: kernel logged "Initramfs unpacking failed: 
ZSTD-compressed
                         data is corrupt" (~1.09s) but boot continued
  1 / 16 boots:        hung completely, no userspace logs
  1 proven failure:    overlay.ko RAM vs disk binary mismatch (see below)

(So corruption manifests as warnings on some boots and fatal failure on
others.)

Boot state on proven overlay failure
====================================
- External initrd loads: Freeing initrd memory ~181204K, /init runs
- ext4 live medium mounted; /run/live/medium/rw present
- Manual squashfs mount succeeds
- modprobe overlay → exit 1
- insmod overlay.ko → "Key was rejected by service"
- overlay not in /proc/filesystems; boot stops before systemd

Binary evidence (attachments)
=============================
Two overlay.ko files attached (484313 bytes each):

  overlay.ko.from-disk-initrd   (from unmkinitramfs of on-disk initrd)
    MD5:    cec41b97f29dbd6b1b160f7d209b9c68
    SHA256: d69e6a2794c0439179364317ca91ab5f5a41fbf0727a27b03139f6645d6c47a6

  overlay.ko.from-runtime-failed   (from failed initramfs shell)
    MD5:    05ea0944dcf1752941fcc35e7780d219
    SHA256: 94b827b1c8a7e50800bd206de4ac6f2b79b7d900b40d22e957c549ad2eb048c4

cmp -l: exactly ONE byte differs:
  Offset:     194603 (0x2F82B)
  Disk byte:  0x01
  RAM byte:   0x00

Hex context:
  GOOD:  ... 00 00 00 00 00 00 0a da 87 02 00 00 00 00 00 [01] 00 00 0d b5 ...
  BAD:   ... 00 00 00 00 00 00 0a da 87 02 00 00 00 00 00 [00] 00 00 0d b5 ...

ELF section of corrupted byte: .BTF
ELF header: identical
Module signature trailer ("~Module signature appended~"): identical
All other 484312 bytes: identical

Reproduce: cmp -l overlay.ko.from-disk-initrd overlay.ko.from-runtime-failed
           → 194603   1   0

Root cause
==========
Intermittent corruption of initrd contents in RAM after GRUB load. Severity
varies: silent/single-bit flip (overlay.ko signature failure), kernel ZSTD error
message, or other fatal initramfs symptoms. System reliability cannot be
guaranteed even when boot appears to succeed after an error.

Suggested investigation
=======================
- Initrd RAM integrity between GRUB load and kernel cpio unpack on 
6.17.0-41-generic
- Relationship between ZSTD unpack errors and single-byte file corruption
- CONFIG_OVERLAY_FS=y as mitigation for live+persistence images

Attachments
===========
1. overlay.ko.from-disk-initrd
2. overlay.ko.from-runtime-failed

** Affects: grub-efi-amd64-signed (Ubuntu)
     Importance: Undecided
         Status: New

** Attachment added: "Binary evidence: overlay.ko from on-disk initrd (good) vs 
failed initramfs runtime (corrupted). Same size (484313 bytes); MD5 differs; 
cmp shows 1 byte flip at offset 194603 (0x01→0x00). Includes comparison.txt 
with hashes."
   
https://bugs.launchpad.net/bugs/2162765/+attachment/5989216/+files/overlay-ko-evidence.tar.gz

** Package changed: grub2-unsigned (Ubuntu) => grub-efi-amd64-signed
(Ubuntu)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2162765

Title:
  initrd RAM corruption: single-byte flip in overlay.ko invalidates
  module signature; intermittent initramfs failures under reboot stress
  (6.17.0-41-generic)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub-efi-amd64-signed/+bug/2162765/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to