You are not logged in.
Hi everyone,
I’m stuck with a non-booting Arch system and I’m pretty sure this is a kernel / initramfs mismatch rather than a simple UUID or fstab mistake. I’m posting full details because I’ve been going in circles and this feels deeper than the usual stuff.
Disk layout (nothing fancy):
• /dev/nvme0n1p3 → ext4 → /
• /dev/nvme0n1p1 → vfat → /boot
• /dev/nvme0n1p2 → swap
• Bootloader: GRUB (UEFI)
Root UUID (verified via blkid): UUID=7ad3999c-c0ec-48ee-af43-50e7db6967d9
fstab entry: UUID=7ad3999c-c0ec-48ee-af43-50e7db6967d9 / ext4 rw,relatime 0 1
GRUB kernel line: linux /vmlinuz-linux root=UUID=7ad3999c-c0ec-48ee-af43-50e7db6967d9 rw
Boot error (key lines):
Warning: /lib/modules/6.18.3-arch1-1/modules.devname not found (ignoring) ERROR: device 'UUID=7ad3999c-c0ec-48ee-af43-50e7db6967d9' not found mount: /new_root: can't find UUID=7ad3999c-c0ec-48ee-af43-50e7db6967d9 You are now being dropped into an emergency shell
This happens on every boot.
The weird part with mkinitcpio:
From archiso and arch-chroot:
Running: mkinitcpio -P
always failed with: ERROR: '/lib/modules/6.18.3-arch1-1' is not a valid kernel module directory
But when I checked /lib/modules, it only contained 6.18.4-arch1-1
There were no 6.18.3 modules on disk at all.
Since mkinitcpio -P would not regenerate initramfs, I manually tried: mkinitcpio -k 6.18.4-arch1-1 -g /boot/initramfs-linux.img
That command completed successfully, but the system still failed to boot and continued referencing 6.18.3 during the initramfs stage.
Where I’m at now:
• Kernel and modules installed: 6.18.4
• initramfs still expects: 6.18.3
• Block / NVMe drivers never load
• Root UUID cannot be discovered
• System drops into emergency shell
At this point the system feels internally inconsistent, and mkinitcpio doesn’t seem able to recover automatically.
Before I wipe and reinstall, I wanted to ask:
Is there a clean way to realign kernel, initramfs, and GRUB when mkinitcpio -P fails because it references a kernel version that pacman no longer provides?
Thanks in advance.
Last edited by RanXom (Yesterday 12:52:50)
Offline
Please remove the superfluous '[HELP]' from your topic title.
Sakura:-
Mobo: MSI MAG X570S TORPEDO MAX // Processor: AMD Ryzen 9 5950X @4.9GHz // GFX: AMD Radeon RX 5700 XT // RAM: 32GB (4x 8GB) Corsair DDR4 (@ 3000MHz) // Storage: 1x 3TB HDD, 6x 1TB SSD, 2x 120GB SSD, 1x 275GB M2 SSD
Making lemonade from lemons since 2015.
Offline
Check `file /boot/vmlinuz-linux`, I'd bet it's the old version. Reinstalling the kernel package *should* fix it.
Offline
Check `file /boot/vmlinuz-linux`, I'd bet it's the old version. Reinstalling the kernel package *should* fix it.
Yes! That was exactly it.
/boot/vmlinuz-linux was stale and didn’t match the installed modules. Reinstalling the kernel via pacman didn’t update it in my case, so I manually copied the correct vmlinuz from /usr/lib/modules/<current-kernel>/vmlinuz to /boot/vmlinuz-linux, rebuilt initramfs with mkinitcpio -k, and regenerated the GRUB config.
After that, the system booted normally.
Thank you so much!
Last edited by RanXom (Yesterday 12:38:12)
Offline
Please remove the superfluous '[HELP]' from your topic title.
Done, thanks for the reminder. Title updated.
Offline
Reinstalling the kernel via pacman didn’t update it in my case
You need to figure out why. What does your /etc/mkinitcpio.d/linux.preset look like?
Offline
You need to figure out why. What does your /etc/mkinitcpio.d/linux.preset look like?
Here is my current /etc/mkinitcpio.d/linux.preset:
# mkinitcpio preset file for the 'linux' package
#ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux"
#ALL_kerneldest="/boot/vmlinuz-linux"
PRESETS=('default')
#PRESETS=('default' 'fallback')
#default_config="/etc/mkinitcpio.conf"
default_image="/boot/initramfs-linux.img"
#default_uki="/efi/EFI/Linux/arch-linux.efi"
#default_options="--splash /usr/share/systemd/bootctl/splash-arch.bmp"From what I can tell, the preset itself looks standard. My suspicion is that during the earlier kernel update something went wrong and /boot/vmlinuz-linux was left stale even though /usr/lib/modules/6.18.4-arch1-1 was installed correctly. As a result, mkinitcpio kept targeting the old kernel image path and reinstalling the package did not overwrite it.
Manually copying the correct vmlinuz that matched the installed modules back into /boot, then regenerating initramfs and GRUB, realigned everything and resolved the issue.
Offline
resolved it until the next kernel upgrade, most likely. If reinstalling the kernel package didn't work, something is wrong. Make sure to watch for any errors or warnings in the post install hooks.
Offline
wild guess in the blue: /boot wasn't mounted correctly during last kernel update
reboot the system and check whether /boot is mounted correctly
also: unmount /boot and check for files in the /boot directory on the / partition - could be shadowed something
(although try to mount over a non-empty mountpoint usually should give at least a warning or should fail)
Offline