You are not logged in.

#1 2015-12-30 20:07:29

dorky
Member
Registered: 2015-12-30
Posts: 4

[SOLVED] root partition not found with systemd-boot

Hello everybody, with my surprise i have succesfully installed arch linux in my new laptop and it works well, except for the wireless/bluetooth broadcom thing.

Reading the arch wiki, it seems that the driver for the broadcom thing will be included in the kernel 4.4.
I tried both, to compile it manually (copying the configuration of my current kernel & guessing the new ones) and to get it from the AUR linux-mainline package. However, in both cases i have the same problem: i cannot boot in the operating system because it does not find the correct root partition.


This is the configuration for the working version of arch (kernel 4.2.5-1):

- The hard-disk is an ssd and it is named /dev/nvme0n1.

- To boot i use the systemd-boot service, with the following entry:
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root=PARTUUID=cfb2780f-0309-48d7-a419-5f5094fa26d7 resume=PARTUUID=ddc00760-f058-49ec-b4e9-c446c2d35354 i915.enable_execlists=0 i915.preliminary_hw_support=1 rw

(i got the PARTUUID addresses using "ls -l /dev/disk/by-partuuid" )

The configuration for the mainline version is basically the same:
title Arch Linux Mainline
linux /vmlinuz-linux-mainline
initrd /intel-ucode.img
initrd /initramfs-linux-mainline.img
options root=PARTUUID=cfb2780f-0309-48d7-a419-5f5094fa26d7 resume=PARTUUID=ddc00760-f058-49ec-b4e9-c446c2d35354 i915.enable_execlists=0  rw

The problem is that when i boot using the "Arch Linux Mainline" entry, it does not find the root partition and drop me in a "strange" shell.

In particular the error message is:
Waiting 10 seconds for the device /dev/disk/by-partuuid/<root> ...
ERROR: device 'PARTUUID=<root>' not found. Skipping fsck.
ERROR: Unable to find root device 'PARTUUID=<root>'.
You are being dropped to a recovery shell
    Type 'exit' to try and continue booting
sh: can't access tty: job control turned off
[rootfs /]#

The strange thing is that under /dev there is no trace of the ssd (no /dev/nvme0n1 file) and there is no /dev/disk folder. I guess that the ssd is not recognized by the kernel.
The output of dmesg seems ok, but i don't know how to copy-paste the output.

Moreover i have no clue on the information required to figure out this problem. This is way out of my knowledge zone.

Last edited by dorky (2016-03-31 08:03:50)

Offline

#2 2015-12-30 21:16:51

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 19,793

Re: [SOLVED] root partition not found with systemd-boot

If I understand this correctly, you build a custom kernel.
How, specifically, did you build it?  Did you change the Local version of the kernel?   (make menuconfig   --> General Setup --> Local Version  )  This allows it to have a different modules directory than does the main line kernel.
Did you install the modules?  ( sudo make modules_install  [Don't do this if you have not changed the local version, you will overwrite the mainline modules] ).  If you used an AUR package and malepkg, the answer is yes.  If you did it by hand....

How did you build the initramfs ?.   Does it have all of the modules in it that you need to boot?   Hint:  What file system does your root partition use?


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way

Offline

#3 2015-12-30 22:02:51

dorky
Member
Registered: 2015-12-30
Posts: 4

Re: [SOLVED] root partition not found with systemd-boot

Yes i have built it by hand, but forget about it. I guess it is too complex to explain.
And the original version it's fine, no harm done (i'm using it right now). The problem is only with the 4.4 version.

The procedure that i've done to get the kernel 4.4 is to install the linux-mainline from AUR which has produced the following files:

/boot/initramfs-linux-mainline-fallback.img
/boot/initramfs-linux-mainline.img
/boot/vmlinuz-linux-mainline

To boot it i have created the file

/boot/loader/entries/arch-mainline.conf

whit the following content:
title Arch Linux Mainline
linux /vmlinuz-linux-mainline
initrd /intel-ucode.img
initrd /initramfs-linux-mainline.img
options root=PARTUUID=cfb2780f-0309-48d7-a419-5f5094fa26d7 resume=PARTUUID=ddc00760-f058-49ec-b4e9-c446c2d35354 i915.enable_execlists=0  rw


The file system of the root partition is ext4.


EDIT

And you are right, the ext4 module is not loaded!!!!!
How can i add it to list of the module to be loaded?
Actually, there are a lot of modules that in the original version are loaded, but not in the mainline.

By the way, thank you for your answer.

Last edited by dorky (2015-12-30 22:45:35)

Offline

#4 2015-12-31 01:57:31

tom.ty89
Member
Registered: 2012-11-15
Posts: 897

Re: [SOLVED] root partition not found with systemd-boot

I think you need to make sure they are even "built". If it is, the filesystem hook of mkinitcpio will pull it in to the initramfs. In any case, you can use the MODULES array in mkinitcpio.conf.

Offline

#5 2015-12-31 10:00:12

dorky
Member
Registered: 2015-12-30
Posts: 4

Re: [SOLVED] root partition not found with systemd-boot

ok, if i have understood correctly the problem is that the "mini-linux" contained in the initramfs image does not contain all the required modules to roperly boot the system, thats right?
So, you are suggesting to put them in the /etc/mkinitcpio.conf, which contains also all the modules that are needed by the "mini-linux" in order to properly boot the system?
I think that you are right, beacuse when i am in the "strange shell", doing insmod ext4 produce an error saying that the module is not found. So i guess that it is not been compiled.

If this is ok, then my real question is how to do so? I mean i looked in the /etc/mkinitcpio.d/linux.preset and it points to the /etc/mkinitcpio.conf file, the same of the /etc/mkinitcpio.d/linux-mainline.preset. The fact is that section MODULES of the file /etc/mkinitcpio.conf  is empty, so i have assumed that there are a set of "standard modules" to be loaded by default. So, at this point i should copy all the module found with "lsmod" in that file or there is a set of those "standard modules" in another file?

Moreover, after that i guess that i should reinstall the packages from AUR in order to actually build the modules, right?

I am sorry for all these questions, but i had pratically blind shot my way using the wiki as reference, i am not that sure on what i am doing...

Offline

#6 2015-12-31 10:18:59

tom.ty89
Member
Registered: 2012-11-15
Posts: 897

Re: [SOLVED] root partition not found with systemd-boot

Just rebuilt the kernel with the ext4 support enabled: https://projects.archlinux.org/svntogit … e45f#n6674

You better investigate what other options you need/want to enabled too if you don't want to use the config file in Arch. Default config is seldom enough.

Offline

#7 2016-03-31 08:03:32

dorky
Member
Registered: 2015-12-30
Posts: 4

Re: [SOLVED] root partition not found with systemd-boot

You were right i missed the nvme module.

Now everything works fine. Thank you for your support.

Offline

Board footer

Powered by FluxBB