# [gelöst] kernel-konfiguration: kernel findet UUID nicht

## ManfredB

Hallo zusammen,

ich habe heute nach sehr langer Zeit einmal wieder den Versuch gestartet,

den Kernel selbst zu konfigurieren ohne genkernel.

Ich bin genau nach dem WIKI vorgegangen - habe auch wegen der NVIDIA-Grafikkarte das WIKI genau befolgt.

Als ich alles fertig hatte, wollte ich das System starten,

aber es endete mit der Meldung, daß UUID=~ nicht gefunden wurde.

ZusatzInfo:

Gentoo-stable ist auf einer USB-SSD installiert.

Mit dem älteren Kernel, den ich mit genkernel konfiguriert habe, kommt dieser Fehler nicht.,

Was kann ich bei der Konfiguration des Kernels übersehen haben, daß UUID nicht erkannt wird?

Hat da jemand einen Tipp oder gar Hilfe?

Danke im voraus.

Gruß

ManfredLast edited by ManfredB on Sat Mar 16, 2019 4:32 pm; edited 1 time in total

----------

## Max Steel

Die root=UUID= Funktion ist keine KErnel-Funktion, sondern eine initramfs Funktion. Versuch mal root=/dev/sda3 (/) (je nach deiner persönlichen festplattenpartitionierung).

----------

## ManfredB

Danke für den Tipp.

Das werde ich mal ausprobieren.

Doch die Frage bleibt ja dennoch, warum die genkernel-Version mit der UUID kein Problem hat.

Irgendetwas muss ich doch falsch gemacht haben bei der Konfiguration oder übersehen haben.

Gruß

Manfred

----------

## Max Steel

genkernel erstellt immer auch eine initramfs mit.

Und ich glaube du musst CONFIG_DEVTMPFS_MOUNT (Automount devtmpfs at /dev, after the kernel mounted the rootfs) einschalten.

----------

## ManfredB

Tausend Dank für deine freundliche Hilfe.

Nun werde ich das testen, bin gerade dabei, eine Neuinstallation durchzuführen.

Gruß

Manfred

----------

## Terrere

Label geht aber ohne initramfs. Wen man die Partitionen benennt, findet man sie auch leichter, zumindest ich.

```

LABEL=boot      /boot          ext2    noauto,nodiratime,noatime    0 0

LABEL=root      /              ext4    defaults,noatime,commit=300  0 1

LABEL=swapi     none           swap    sw                           0 0

LABEL=src       /usr/src       ext4    defaults,noatime,commit=300  0 0

LABEL=portage   /usr/portage   ext4    defaults,noatime,commit=300  0 0

LABEL=home      /home          ext4    defaults,noatime,commit=300  0 0

```

```

ls /dev/disk/by-label

```

----------

## ManfredB

Leider habe ich keinen Erfolg mit der Konfiguration des Kernels.

Egal was ich eingebe in der Kernel-Zeile: LABEL oder/und UUID,

jedesmal kommt die Meldung, daß die root-Partition nicht gefunden wird.

Nun werde ich es einmal auf der im PC eingebauten SSD versuchen,

vielleicht liegt es ja an der USB-SSD, daß es nicht klappt.

Aber auf der internen SSD müßte es eigentich klappen.

Was micht nur wundert:

genkernel --menuconfig all macht doch eigentlich nichts anderes als wenn ich eingebe:

make && make install modules

make install

(Ausnahme: initramfs, die von genkernel automatisch erstellt wird)

Doch warum klappt es mit genkernel und nicht mit der Installation ohne genkernel?

Ich bin mir sicher, daß es an meiner Konfiguration liegt, aber ich nutze 2 WIKIs:

kernel

nvidia

Alle dort angegebenen Einstellungen übernehme ich.

Ja - so ist es - ich habe es vor vielen Jahren schon einmal versucht,

aber ich bin damals auch daran gescheitert.

Was mich dann erst einmal von gentoo entfernt hat, allerdings nicht lange,

denn ich gebe nicht auf.

Vielleicht hat ja jemand doch noch eine Idee, was ich berücksichtigen muss.

Danke in jedem Fall für eure Hilfe.

Gruß

Manfred

----------

## mike155

Ich compiliere und installiere den Kernel nach der ganz alten Methode:

Vanilla kernel, kein Gentoo Kernel, kein genkernel, kein initramsfs, keine Module

Konfiguration des Kernels: cd /usr/src/linux; make menuconfig 

Compilieren mit: make -j 4 bzImage

Installieren mit: make install; cd /boot; ls -la; evtl. ältere Kernel löschen

Grub konfigurieren: grub-mkconfig -o /boot/grub/grub.cfg

Booten mit folgenden Kernel-Parametern: 

```
root=/dev/sda2 ro net.ifnames=0 ipv6.disable=1 init=/usr/lib/systemd/systemd transparent_hugepage=never
```

wobei /dev/sda2 meine Root-Partition und /dev/sda1 meine Boot-Partition ist. Die gewünschten Boot-Parameter trägt man in /etc/default/grub ein:

```
GRUB_CMDLINE_LINUX="net.ifnames=0 ipv6.disable=1 init=/usr/lib/systemd/systemd transparent_hugepage=never"
```

wobei die beiden Parameter "root=..." und "ro" automatisch durch /etc/grub.d/10_linux hinzugefügt werden:

```
linux   ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
```

Anmerkungen:

Labels und UUIDs verwirren mich mehr, als dass sie nutzen. Ja, ich weiß, warum Red Hat und Co. das eingeführt haben und Nein, ich brauche das nicht, jedenfalls nicht auf meinen eigenen Maschinen.

Eigentlich ist mir auch Grub2 viel zu komplex. Ich überlege, anstelle von grub-mkconfig wieder auf das alte Verfahren zurückzugehen: https://wiki.gentoo.org/wiki/GRUB2_Quick_Start#Manual_configuration

----------

## ManfredB

Hallo zusammen,

ich habe heute folgendes durchgeführt:

Meine gentoo-stable-systemd-Installation von der USB-SSD auf eine interne SSD kopiert.

Dann den üblichen Gang: /etc/fstab ändern, in einer chroot-Umgebung grub-mkconfig -o /boot/grub/grub.cfg laufen lassen.

So konnte ich das System einwandfrei starten.

Installiert sind 3 gentoo-sources:

linux-5.0.0-gentoo  

linux-5.0.1-gentoo  

linux-5.0.2-gentoo

Bis heute war ich mit kernel 1 unterwegs.

eselect kernel list

eselect kernel set 3

Und nun habe ich wieder den ganzen Weg durchlaufen,

am Ende genkernel --install initramfs

Dann reboot: der kernel 3 ist angezeigt - ich starte.

Komme allerdings noch nicht bis zum Desktop,

denn der nvidia-driver muss noch einmal neu installiert werden,

damit er auch in kernel 3 vorkommt.

Danach erneuter reboot: ich lande in sehr kurzer Zeit auf dem plasma-Desktop.

Zum erstenmal überhaupt habe ich mit der manuellen Konfiguration des Kernels Erfolg.

Das freut mich ganz besonders, vor allem, weil sich die vielen Bemühungen gelohnt haben.

Allen, dir mir auf diesem Weg beigestanden haben hier im Forum,

sage ich noch einmal ganz herzlich DANKE!!!.

Ich wünsche euch noch ein schönes Wochende und grüße euch.

Manfred

----------

## firefly

 *Terrere wrote:*   

> Label geht aber ohne initramfs. Wen man die Partitionen benennt, findet man sie auch leichter, zumindest ich.
> 
> ```
> 
> LABEL=boot      /boot          ext2    noauto,nodiratime,noatime    0 0
> ...

 

Nope Label funktioniert auch nicht als root angabe beim kernel, dass ist auch ein feature was via initramfs geliefert werden muss.

Der kernel selbst kennt nur die angabe eines direkten device (z.b. /dev/sda1) oder PARTUUID. PARTUUID funktioniert aber nur wenn die HDD/SSD mit GPT partitioniert wurde.

----------

## firefly

 *ManfredB wrote:*   

> Hallo zusammen,
> 
> ich habe heute folgendes durchgeführt:
> 
> Meine gentoo-stable-systemd-Installation von der USB-SSD auf eine interne SSD kopiert.
> ...

 

Es funktioniert, dass man auch von einer USB-Device booten kann. Das Problem dabei ist, dass die initialisierung von USB-Geräten recht lange dauern kann. Und bei dir scheint der Kernel schneller  bis zum punkt um das rootfs zu mounten als dass die USB-SSD sich initialisiert hat.

Was hilft ist ein boot delay zu haben, wodurch gewartet wird bis sich alle USB-Geräte initialisiert haben. Aber das funktioniert AFAIK nur mit einer entsprechenden initramfs.

Das ganze problem wird gut auch in diesem lwn artikel beschrieben: https://lwn.net/Articles/330378/

----------

