You are not logged in.

#1 2025-05-28 05:31:47

callieee
Member
Registered: 2025-05-28
Posts: 4

[SOLVED] NVME drive can only be found while using linux-zen

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

#2 2025-05-28 06:38:21

seth
Member
Registered: 2012-09-03
Posts: 64,019

Re: [SOLVED] NVME drive can only be found while using linux-zen

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

#3 2025-05-28 06:42:32

jl2
Member
From: 47° 18' N 8° 34' E
Registered: 2022-06-01
Posts: 714
Website

Re: [SOLVED] NVME drive can only be found while using linux-zen

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

#4 2025-05-28 07:39:40

callieee
Member
Registered: 2025-05-28
Posts: 4

Re: [SOLVED] NVME drive can only be found while using linux-zen

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

#5 2025-05-28 08:02:40

seth
Member
Registered: 2012-09-03
Posts: 64,019

Re: [SOLVED] NVME drive can only be found while using linux-zen

From the rescue shell

lsmod | grep nvme
modprobe nvme # load explicitly
ls /dev/nvme* # device now there?

Offline

#6 2025-05-28 21:21:00

callieee
Member
Registered: 2025-05-28
Posts: 4

Re: [SOLVED] NVME drive can only be found while using linux-zen

That does nothing sad

Offline

#7 2025-05-28 21:44:11

seth
Member
Registered: 2012-09-03
Posts: 64,019

Re: [SOLVED] NVME drive can only be found while using linux-zen

Was the nvme module loaded before?
Is it afterwards?
Does this produce any output in dmesg?

https://bbs.archlinux.org/viewtopic.php?id=57855

Offline

#8 2025-05-28 23:25:46

callieee
Member
Registered: 2025-05-28
Posts: 4

Re: [SOLVED] NVME drive can only be found while using linux-zen

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

#9 2025-05-29 06:26:47

jl2
Member
From: 47° 18' N 8° 34' E
Registered: 2022-06-01
Posts: 714
Website

Re: [SOLVED] NVME drive can only be found while using linux-zen

I had that too once too lol 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

Board footer

Powered by FluxBB