You are not logged in.
Hi,
I am unable to boot my system using any other kernel than linux-zen.
Using other kernels, systemd fails to mount my root drive, an nvme ssd, with the error that goes along the lines of "cannot find device: /dev/disk/by-partuuid/[uuid] 0:30/1:30".
I have recently swapped to using the systemd hook instead of a busybox based init, and as a result the rescue shell is locked (a whole other issue), but when I was put into a rescue shell months ago, it didn't seem like loading the nvme kernel module did anything.
I have tried linux-lts and linux, and they both do not work. I am using systemd-boot. My entry config files are identical, other than the initramfs and kernel image paths.
Months ago I did swap this installation from one computer to another, and then the drive from a sata ssd to this nvme drive, but I'm not particularly sure if that's relevant here.
I am sorely confused as to why it works on zen but no other kernels.
I know this isn't particularly an installation issue, seeing as I currently have a working system, and have had one for almost a year now, but out of all the topics installation seemed the most appropriate.
Any help would be greatly appreciated!
Last edited by callieee (2025-05-28 23:26:13)
Offline
The nvme module is probably not in the other initramfs?
lsinitcpio /boot/initramfs-linux.img | grep nvme
As for why that might be, check
ls -l /boot; file /boot/vmlinuz-linux
Chances are you were booting w/ an old kernel causing problems during the mkinitcpio run?
You might want to check the output of that (regenerating the initramfs)
Offline
Did you updated either the non-zen kernel or the initramfs in the meantime since you swapped the disk?
Do you have the "block" and "filesystem" initramfs hooks? Maybe try putting them in front of the "autodetect" hook, but that shouldn't be a issue.
In a last attempt, you can manually add the needed kernel modules in the MODULES= array at the top of the mkinitcpio config.
If that doesn't fix it: From the rescue shell (if I understood correctly you fixed it? IIRC You need the "base" hook in front of "systemd" for it, if not), check if the drive exists in /dev/nvme*, /dev/disk/by-*/*, or so. I once had a issue where the drive UUID wasn't found but the partition label was.
Why I run Arch? To "BTW I run Arch" the guy one grade younger.
And to let my siblings and cousins laugh at Arsch Linux...
Offline
the lsinitcpio output is near identical for linux and linux-zen
i've swapped back to busybox so that i can actually have a working rescue shell for now. even when adding the modules to my mkinitcpio conf, there's no /dev/nvme* devices created
putting the block and filesytem hooks earlier didn't seem to do anything at all. It fails after keymap runs, anyway. (probably on fsck?)
my hooks are currently setup like this:
HOOKS=(base udev autodetect microcode modconf keyboard keymap consolefont block filesystems fsck)
I swapped computers a long time ago, I've probably updated these kernels as well as ran mkinitcpio -P hundreds of times since, so I don't think it's anything from the old computer? I really just included that in case I'm missing something obvious. I did swap, on this current computer, from a sata disk to this nvme drive, ages ago, but I'm not exactly sure how it could be relevant/important.
output of ls -l boot:
drwxr-xr-x 5 root root 4096 Jul 13 2024 EFI/
-rwxr-xr-x 1 root root 51868959 May 28 03:09 initramfs-linux-fallback.img*
-rwxr-xr-x 1 root root 34450951 May 28 03:09 initramfs-linux.img*
-rwxr-xr-x 1 root root 53271567 May 28 03:09 initramfs-linux-lts-fallback.img*
-rwxr-xr-x 1 root root 35886207 May 28 03:09 initramfs-linux-lts.img*
-rwxr-xr-x 1 root root 10617545 May 27 22:42 initramfs-linux-lts-test.img*
-rwxr-xr-x 1 root root 52769701 May 28 03:10 initramfs-linux-zen-fallback.img*
-rwxr-xr-x 1 root root 35331680 May 28 03:09 initramfs-linux-zen.img*
-rwxr-xr-x 1 root root 13286400 May 12 13:56 intel-ucode.img*
drwxr-xr-x 4 root root 4096 May 28 03:17 loader/
-rwxr-xr-x 1 root root 15462912 May 26 20:46 vmlinuz-linux*
-rwxr-xr-x 1 root root 13885952 May 27 22:41 vmlinuz-linux-lts*
-rwxr-xr-x 1 root root 16548352 May 27 22:50 vmlinuz-linux-lts-test*
-rwxr-xr-x 1 root root 16548352 May 26 20:46 vmlinuz-linux-zen*
file /boot/vmlinuz-linux:
/boot/vmlinuz-linux: Linux kernel x86 boot executable, bzImage, version 6.14.7-arch2-1 (linux@archlinux) #1 SMP PREEMPT_DYNAMIC Thu, 22 May 2025 05:37:49 +0000, RO-rootFS, Normal VGA, setup size 512*39, syssize 0xeba20, jump 0x26c 0x8cd88ec0fc8cd239 instruction, protocol 2.15, from protected-mode code at offset 0x2cc 0xe83151 bytes ZST compressed, relocatable, handover offset 0xea7410, legacy 64-bit entry point, can be above 4G, 32-bit EFI handoff entry point, 64-bit EFI handoff entry point, EFI kexec boot support, xloadflags bit 5, max cmdline size 2047, init_size 0x4263000
file /boot/vmlinuz-linux-zen:
/boot/vmlinuz-linux-zen: Linux kernel x86 boot executable, bzImage, version 6.14.7-zen2-1-zen (linux-zen@archlinux) #1 ZEN SMP PREEMPT_DYNAMIC Thu, 22 May 2025 05:37:13 +0000, RO-rootFS, Normal VGA, setup size 512*39, syssize 0xfc320, jump 0x26c 0x8cd88ec0fc8cd239 instruction, protocol 2.15, from protected-mode code at offset 0x2cc 0xf8c1b3 bytes ZST compressed, relocatable, handover offset 0xfb0450, legacy 64-bit entry point, can be above 4G, 32-bit EFI handoff entry point, 64-bit EFI handoff entry point, EFI kexec boot support, xloadflags bit 5, max cmdline size 2047, init_size 0x4473000
they look fairly similar
Last edited by callieee (2025-05-28 07:40:12)
Offline
From the rescue shell
lsmod | grep nvme
modprobe nvme # load explicitly
ls /dev/nvme* # device now there?
Offline
That does nothing
Offline
Was the nvme module loaded before?
Is it afterwards?
Does this produce any output in dmesg?
Offline
oh, wow, i've solved it! thank you so much! i looked through my dmesg logs and found one telling me exactly what to do. My BIOS had the sata operation mode set to Raid On, and not AHCI. changing that fixes it!
Offline
I had that too once too It was so stupid because I thought the SATA controller on my motherboard had broken, and nearly bought a PCIe SATA controller.
Why I run Arch? To "BTW I run Arch" the guy one grade younger.
And to let my siblings and cousins laugh at Arsch Linux...
Offline