Indexof

IndexofFixing Ubuntu 26.04 Snapshot 3: Missing eMMC Modules in Initramfs › Last update: Mar 17, 2026@jazzyjonesAbout › #FixingUbuntu2604Snapshot3

The Storage Silent Treatment: Resolving Missing eMMC Modules in Ubuntu 26.04 Snapshot 3

Early testers of Ubuntu 26.04 (Plucky Puffin) Snapshot 3 have encountered a critical regression affecting budget laptops, single-board computers (SBCs), and Intel Atom-based tablets. Specifically, the kernel image in this development snapshot fails to include essential eMMC (MMC/SDHCI) drivers within the initial RAM disk (initramfs). Because the kernel cannot see the internal storage during the early boot phase, the system drops to a (initramfs) BusyBox shell with the error: Gave up waiting for root device. This tutorial provides the technical workaround to manually force-load these drivers into the boot image, restoring functionality to eMMC-reliant hardware.

Table of Content

Purpose

The primary objective of this guide is to bridge the gap between the kernel and internal flash storage during the transition from the bootloader to the root filesystem. This process involves:

  • Module Identification: Pinpointing the exact sdhci_pci and mmc_block drivers required.
  • Initramfs Reconfiguration: Overriding the default "Most" or "Dep" settings in the initramfs-tools configuration.
  • Kernel Image Rebuild: Generating a new initrd.img that recognizes eMMC controllers on boot.

The Issue: Why Snapshot 3 Fails to Boot

In the transition to the Linux 6.18+ kernel used in the Ubuntu 26.04 development cycle, some MMC controller drivers were reclassified as external modules rather than built-in components. Snapshot 3's build script accidentally omitted these from the "Generic" initramfs profile. When the bootloader hands off control to the kernel, the kernel looks for the root partition on /dev/mmcblk0p2, but without the mmc_core and sdhci modules, that device simply does not exist yet.

Step-by-Step

1. Boot into Live Media

Since the internal OS won't boot, use a Ubuntu 26.04 Live USB. Once in the Live environment, open a terminal and gain root access.

sudo -i

2. Chroot into the eMMC Installation

Identify your eMMC partitions (usually /dev/mmcblk0) and mount them to prepare for a chroot.

mount /dev/mmcblk0p2 /mnt
mount /dev/mmcblk0p1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
chroot /mnt

3. Force Module Inclusion

Add the missing storage modules to the initramfs configuration file manually.

nano /etc/initramfs-tools/modules

Add these lines to the bottom of the file:

mmc_core
mmc_block
sdhci
sdhci_pci
cqhci

4. Update Initramfs Tools Config

Ensure the tool is set to include "most" modules rather than trying to optimize for a specific hardware detection that might fail.

nano /etc/initramfs-tools/initramfs.conf
# Ensure MODULES=most is set

5. Regenerate the Boot Image

Run the update command for all installed kernels.

update-initramfs -u -k all

6. Cleanup and Reboot

Exit the chroot and unmount before restarting.

exit
reboot

Use Case

A developer is testing Ubuntu 26.04 on an Intel Celeron-based mini-PC for an IoT project. After a routine dist-upgrade to Snapshot 3, the machine boots into a BusyBox shell. By following the chroot injection method, the developer saves the project environment without a full reinstall, allowing the eMMC storage to be detected as the valid boot target once again.

Best Results

Driver Component Role in Boot Priority
mmc_core Base MMC infrastructure Critical
sdhci_pci PCI-based SD host controllers High (Intel/AMD)
mmc_block Mounts MMC as a block device Critical
cqhci Command Queue Host Controller Recommended (Speed)

FAQ

Why didn't this happen in Snapshot 2?

Kernel configurations change between snapshots. Snapshot 3 introduced a more aggressive "Kernel Module Stripping" policy to reduce the size of the initrd image, accidentally catching eMMC drivers in the cull.

Will a regular 'apt upgrade' fix this?

Only if a new kernel package (e.g., linux-image-6.18.0-xx-generic) is released with a corrected build script. Until then, the manual injection via /etc/initramfs-tools/modules is the only fix.

Can I use 'nomodeset' to fix this?

No. nomodeset affects graphics drivers. Missing storage modules are a disk-level issue and cannot be bypassed via video parameters.

Disclaimer

Ubuntu 26.04 is currently in its Alpha/Development phase. Snapshots are known to be unstable. Using these steps in a production environment is highly discouraged. Always back up your eMMC data before modifying initramfs configurations. March 2026.

Tags: Ubuntu_26.04, Initramfs, eMMC_Fix, Linux_Kernel



What’s new

Close [x]
Loading special offers...