Public bug reported:

On Ubuntu 24.04 minimal cloud images (arm64; build serials 20260626 and
20260716), the first kernel update by unattended-upgrades installed
tiny-initramfs as the initramfs generator. From /var/log/apt/history.log
on one of the VMs:

  Start-Date: 2026-07-28  06:02:54
  Commandline: /usr/bin/unattended-upgrade
  Install: tiny-initramfs-core:arm64 (0.1-5.1, automatic), 
linux-modules-6.8.0-136-generic:arm64 (6.8.0-136.136, automatic), 
tiny-initramfs:arm64 (0.1-5.1, automatic), linux-image-6.8.0-136-generic:arm64 
(6.8.0-136.136, automatic)

(The other VM shows the same on 2026-07-16 with 6.8.0-134. initramfs-
tools-core was installed; initramfs-tools was not.)

These images set GRUB_FORCE_PARTUUID (/etc/default/grub.d/40-force-
partuuid.cfg). With an initrd present, the generated default entry is:

  if [ "${initrdfail}" = 1 ]; then
    echo 'GRUB_FORCE_PARTUUID set, initrdless boot failed. Attempting with 
initrd.'
    linux /vmlinuz-6.8.0-142-generic root=PARTUUID=<uuid> ro  console=tty1 
console=ttyAMA0
    initrd /initrd.img-6.8.0-142-generic
  else
    echo 'GRUB_FORCE_PARTUUID set, attempting initrdless boot.'
    linux /vmlinuz-6.8.0-142-generic root=PARTUUID=<uuid> ro  console=tty1 
console=ttyAMA0 panic=-1
  fi
  initrdfail

The fallback branch cannot boot with a tiny-initramfs initrd. Its init
accepts root= only as /dev/..., 0xMAJMIN or UUID=, so it exits and the
kernel panics. The fallback line has no panic= and the kernel has
CONFIG_PANIC_TIMEOUT=0, so the machine stays halted. initrdfail stays 1,
so every later boot takes the same branch and the system never comes
back on its own.

Console of that boot (captured by changing console=tty1 to console=hvc0
on a copy of the disk):

  Run /init as init process
  initramfs: Couldn't load /uio.ko: Exec format error
  initramfs: Couldn't load /uio_pdrv_genirq.ko: Exec format error
  initramfs: Parameter root=PARTUUID=7271bf21-f9c1-450a-b2a7-e045e85a64a8 
unsupported (only /dev/, 0xMAJMIN and UUID= are  supported)
  initramfs: Will cause kernel panic in 10s...
  [   10.043180] Kernel panic - not syncing: Attempted to kill init! 
exitcode=0x00000100

The same copy with only recordfail and initrdfail removed from
/boot/grub/grubenv boots normally (initrdless).

Steps to reproduce (minimal cloud image with tiny-initramfs installed as above):
1. sudo grub-editenv /boot/grub/grubenv set initrdfail=1
2. reboot

Expected: the fallback entry boots.
Actual: kernel panic; the system does not come back.

How initrdfail stayed set in our case: the preceding boot did not mount
/boot, so grub-initrd-fallback.service was skipped
(ConditionPathExists=/boot/grub/grub.cfg). /boot was not mounted because
udev lost its by-label link while fsck replayed /boot's journal, which
matches LP: #2160558; on these VMs that happened in 4 of 8 boots that
replayed the journal. Any boot that stops before that unit leaves the
same state.

Workaround: install initramfs-tools (it replaces tiny-initramfs) and
regenerate the initrds; the fallback entry then boots (tested by setting
initrdfail=1 and hard-stopping the VM).

Environment: krunkit/libkrun VM on macOS, virtio-blk, EFI. grub-efi-
arm64 2.12-1ubuntu7.3, tiny-initramfs 0.1-5.1, initramfs-tools-core
0.142ubuntu25.8, kernels 6.8.0-134/136/142.

The attached apport data was collected after the workaround had been
applied.

The investigation and this report were prepared with an AI assistant
(Claude), which also filed it through the Launchpad API under my
account. I reviewed the text and the logs it is based on.

--- 
ProblemType: Bug
ApportVersion: 2.28.2-0ubuntu0.1
Architecture: arm64
CasperMD5CheckResult: unknown
CloudArchitecture: aarch64
CloudBuildName: minimal
CloudID: nocloud
CloudName: unknown
CloudPlatform: nocloud
CloudSerial: 20260716
CloudSubPlatform: config-disk (/dev/vdb)
Date: Wed Oct  7 20:40:29 2026
DistroRelease: Ubuntu 24.04
Package: grub2-common 2.12-1ubuntu7.3
PackageArchitecture: arm64
ProcEnviron:
 LANG=C.UTF-8
 PATH=(custom, no user)
 SHELL=/bin/bash
 XDG_RUNTIME_DIR=<set>
ProcVersionSignature: Ubuntu 6.8.0-142.142-generic 6.8.12
SourcePackage: grub2
Tags: cloud-image noble
Uname: Linux 6.8.0-142-generic aarch64
UpgradeStatus: No upgrade log present (probably fresh install)
_MarkForUpload: True

** Affects: grub2 (Ubuntu)
     Importance: Undecided
         Status: New

** Affects: tiny-initramfs (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: apport-collected cloud-image noble

** Tags added: apport-collected cloud-image noble

** Description changed:

  On Ubuntu 24.04 minimal cloud images (arm64; build serials 20260626 and
  20260716), the first kernel update by unattended-upgrades installed
  tiny-initramfs as the initramfs generator. From /var/log/apt/history.log
  on one of the VMs:
  
    Start-Date: 2026-07-28  06:02:54
    Commandline: /usr/bin/unattended-upgrade
    Install: tiny-initramfs-core:arm64 (0.1-5.1, automatic), 
linux-modules-6.8.0-136-generic:arm64 (6.8.0-136.136, automatic), 
tiny-initramfs:arm64 (0.1-5.1, automatic), linux-image-6.8.0-136-generic:arm64 
(6.8.0-136.136, automatic)
  
  (The other VM shows the same on 2026-07-16 with 6.8.0-134. initramfs-
  tools-core was installed; initramfs-tools was not.)
  
  These images set GRUB_FORCE_PARTUUID (/etc/default/grub.d/40-force-
  partuuid.cfg). With an initrd present, the generated default entry is:
  
    if [ "${initrdfail}" = 1 ]; then
      echo 'GRUB_FORCE_PARTUUID set, initrdless boot failed. Attempting with 
initrd.'
      linux /vmlinuz-6.8.0-142-generic root=PARTUUID=<uuid> ro  console=tty1 
console=ttyAMA0
      initrd /initrd.img-6.8.0-142-generic
    else
      echo 'GRUB_FORCE_PARTUUID set, attempting initrdless boot.'
      linux /vmlinuz-6.8.0-142-generic root=PARTUUID=<uuid> ro  console=tty1 
console=ttyAMA0 panic=-1
    fi
    initrdfail
  
  The fallback branch cannot boot with a tiny-initramfs initrd. Its init
  accepts root= only as /dev/..., 0xMAJMIN or UUID=, so it exits and the
  kernel panics. The fallback line has no panic= and the kernel has
  CONFIG_PANIC_TIMEOUT=0, so the machine stays halted. initrdfail stays 1,
  so every later boot takes the same branch and the system never comes
  back on its own.
  
  Console of that boot (captured by changing console=tty1 to console=hvc0
  on a copy of the disk):
  
    Run /init as init process
    initramfs: Couldn't load /uio.ko: Exec format error
    initramfs: Couldn't load /uio_pdrv_genirq.ko: Exec format error
    initramfs: Parameter root=PARTUUID=7271bf21-f9c1-450a-b2a7-e045e85a64a8 
unsupported (only /dev/, 0xMAJMIN and UUID= are  supported)
    initramfs: Will cause kernel panic in 10s...
    [   10.043180] Kernel panic - not syncing: Attempted to kill init! 
exitcode=0x00000100
  
  The same copy with only recordfail and initrdfail removed from
  /boot/grub/grubenv boots normally (initrdless).
  
  Steps to reproduce (minimal cloud image with tiny-initramfs installed as 
above):
  1. sudo grub-editenv /boot/grub/grubenv set initrdfail=1
  2. reboot
  
  Expected: the fallback entry boots.
  Actual: kernel panic; the system does not come back.
  
  How initrdfail stayed set in our case: the preceding boot did not mount
  /boot, so grub-initrd-fallback.service was skipped
  (ConditionPathExists=/boot/grub/grub.cfg). /boot was not mounted because
  udev lost its by-label link while fsck replayed /boot's journal, which
  matches LP: #2160558; on these VMs that happened in 4 of 8 boots that
  replayed the journal. Any boot that stops before that unit leaves the
  same state.
  
  Workaround: install initramfs-tools (it replaces tiny-initramfs) and
  regenerate the initrds; the fallback entry then boots (tested by setting
  initrdfail=1 and hard-stopping the VM).
  
  Environment: krunkit/libkrun VM on macOS, virtio-blk, EFI. grub-efi-
  arm64 2.12-1ubuntu7.3, tiny-initramfs 0.1-5.1, initramfs-tools-core
  0.142ubuntu25.8, kernels 6.8.0-134/136/142.
  
  The attached apport data was collected after the workaround had been
  applied.
  
  The investigation and this report were prepared with an AI assistant
  (Claude), which also filed it through the Launchpad API under my
  account. I reviewed the text and the logs it is based on.
+ 
+ --- 
+ ProblemType: Bug
+ ApportVersion: 2.28.2-0ubuntu0.1
+ Architecture: arm64
+ CasperMD5CheckResult: unknown
+ CloudArchitecture: aarch64
+ CloudBuildName: minimal
+ CloudID: nocloud
+ CloudName: unknown
+ CloudPlatform: nocloud
+ CloudSerial: 20260716
+ CloudSubPlatform: config-disk (/dev/vdb)
+ Date: Wed Oct  7 20:40:29 2026
+ DistroRelease: Ubuntu 24.04
+ Package: grub2-common 2.12-1ubuntu7.3
+ PackageArchitecture: arm64
+ ProcEnviron:
+  LANG=C.UTF-8
+  PATH=(custom, no user)
+  SHELL=/bin/bash
+  XDG_RUNTIME_DIR=<set>
+ ProcVersionSignature: Ubuntu 6.8.0-142.142-generic 6.8.12
+ SourcePackage: grub2
+ Tags: cloud-image noble
+ Uname: Linux 6.8.0-142-generic aarch64
+ UpgradeStatus: No upgrade log present (probably fresh install)
+ _MarkForUpload: True

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

Title:
  GRUB_FORCE_PARTUUID initrd fallback panics with tiny-initramfs:
  root=PARTUUID= unsupported

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/2169897/+subscriptions


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

Reply via email to