View previous topic :: View next topic |
Author |
Message |
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1921 Location: Schweiz
|
Posted: Wed Aug 01, 2012 7:21 am Post subject: [s] Kernelparameter für root funktioniert nur mit /dev/sdaX |
|
|
Ich versuche gerade meinem Kernel beizubringen die root Partition über die UUID oder alternativ über das Label ausfindig zu machen doch leider funktioniert das nicht und Dr. Google spuckte zwar jede Menge Ergebnisse dazu aus aber wirklich hilfreich war davon auch nichts.
Das merkwürdige und unlogische an der Sache ist folgendes:
root=/dev/sdaX (funktioniert)
root=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX (funktioniert nicht)
root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX (funktioniert nicht)
root=LABEL=gentoo (funktioniert nicht)
Bei der UUID dachte ich noch "Hmm, OK vielleicht stimmt die Ausgabe von blkid nicht oder ich habe mich bei der Eingabe vertippt" aber beim Label bin ich mir sehr sicher das ich es richtig abgetippt habe.
Kann es sein das in der Kernelkonfiguration irgendwo etwas fehlt das er braucht um die root Partition über die UUID oder das Label ausfindig machen zu können?
EDIT: Die Root Partition ist mit ext4 formatiert. _________________ Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW
Last edited by schmidicom on Wed Aug 01, 2012 12:33 pm; edited 2 times in total |
|
Back to top |
|
|
py-ro Veteran
Joined: 24 Sep 2002 Posts: 1734 Location: Velbert
|
Posted: Wed Aug 01, 2012 7:33 am Post subject: |
|
|
Das geht nur mit Initrd, der Kernel selber kann das nicht interpretieren.
Bye
Py |
|
Back to top |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1921 Location: Schweiz
|
Posted: Wed Aug 01, 2012 7:44 am Post subject: |
|
|
py-ro wrote: | Das geht nur mit Initrd, der Kernel selber kann das nicht interpretieren.
Bye
Py |
Echt jetzt...
Toll das in den Anleitungen die ich so im Web gefunden habe nichts davon erwähnt wurde, aber da für mein kleines Projekt ein initrd nicht in Frage kommt (und ich nicht wirklich bock habe ein initrd zu basteln) muss ich wohl damit leben das auf die klassische Art anzugeben.
Oder kennt jemand einen Kernelpatch der das benutzen einer UUID auch ohne initrd ermöglicht? _________________ Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW |
|
Back to top |
|
|
py-ro Veteran
Joined: 24 Sep 2002 Posts: 1734 Location: Velbert
|
Posted: Wed Aug 01, 2012 8:14 am Post subject: |
|
|
Jein, es gibt eine Möglichkeit mir UUID zu arbeiten ohne Initrd, allerdings sind die Rahmenbedingungen ziemlich streng und ich hab es bisher nicht ausporbiert.
Dafür musst du allerdings GPT benutzen und die UUID der Partition und nicht des Dateisystems benutzen, dummerweise finde ich die Doku dazu gerade nicht.
Bye
Py |
|
Back to top |
|
|
Max Steel Advocate
Joined: 12 Feb 2007 Posts: 2229 Location: My own world! I and Gentoo!
|
Posted: Wed Aug 01, 2012 8:18 am Post subject: |
|
|
du könntest höchstens versuchen ob im devtmpfs /dev/disk/by-uuid/ existieren. _________________ mfg
Steel
___________________
Heim-PC: AMD Ryzen 5950X, 64GB RAM, GTX 1080
Laptop: Intel Core i5-4300U, 16GB RAM, Intel Graphic
Arbeit-PC: Intel i5-1145G7, 16GB RAM, Intel Iris Xe Graphic (leider WSL2) |
|
Back to top |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1921 Location: Schweiz
|
Posted: Wed Aug 01, 2012 8:40 am Post subject: |
|
|
Die UUID unter /dev/disk/by-uuid/ und die von blkid sind identisch gewesen und die HD ist mit GPT gemacht was ich aber nicht wusste war das Dateisystem und Partition unterschiedliche UUID's haben.
Ich nehme mal an blkid und /dev/disk/by-uuid/ geben die UUID des Dateisystems aus also muss ich jetzt herausfinden wie die UUID der Partition lautet um "root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" nutzen zu können?
EDIT:
Habe nun mit der EFIShell die UUID der Partition ausfindig gemacht (war tatsächlich eine andere als die von blkid) aber leider funktioniert diese auch nicht, nur über das Device "/dev/sda2" findet der Kernel die root Partition. _________________ Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5165
|
Posted: Wed Aug 01, 2012 11:46 am Post subject: |
|
|
schmidicom wrote: |
EDIT:
Habe nun mit der EFIShell die UUID der Partition ausfindig gemacht (war tatsächlich eine andere als die von blkid) aber leider funktioniert diese auch nicht, nur über das Device "/dev/sda2" findet der Kernel die root Partition. |
Der Parameter für die Angabe der UUID einer Partition für root heißt nicht UUID sondern PARTUUID
http://lkml.org/lkml/2011/6/9/574 _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
Klaus Meier Advocate
Joined: 18 Apr 2005 Posts: 2908 Location: Bozen
|
Posted: Wed Aug 01, 2012 12:01 pm Post subject: |
|
|
Benutzt du grub2? Da gibt es in der /etc/default/grub einen Eintrag: Code: | # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to kernel
#GRUB_DISABLE_LINUX_UUID=true |
Eventuell steht der falsch. |
|
Back to top |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1921 Location: Schweiz
|
Posted: Wed Aug 01, 2012 12:25 pm Post subject: |
|
|
firefly wrote: | schmidicom wrote: |
EDIT:
Habe nun mit der EFIShell die UUID der Partition ausfindig gemacht (war tatsächlich eine andere als die von blkid) aber leider funktioniert diese auch nicht, nur über das Device "/dev/sda2" findet der Kernel die root Partition. |
Der Parameter für die Angabe der UUID einer Partition für root heißt nicht UUID sondern PARTUUID
http://lkml.org/lkml/2011/6/9/574 |
Genau das war es, vielen Dank damit funktioniert nun auch das und mein kleines Abenteuer war erfolgreich.
Klaus Meier wrote: | Benutzt du grub2? Da gibt es in der /etc/default/grub einen Eintrag: Code: | # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to kernel
#GRUB_DISABLE_LINUX_UUID=true |
Eventuell steht der falsch. |
Mit GRUB hab ich schon lange aufgehört da mir dieser inzwischen einfach viel zu "aufgebläht" ist.
Aber jetzt wo ich fertig bin brauche ich auch keinen Bootloader mehr denn nun startet das UEFI von meinem Laptop den Linux-Kernel direkt. _________________ Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW |
|
Back to top |
|
|
Hollowman Guru
Joined: 19 Apr 2007 Posts: 584
|
Posted: Thu Aug 02, 2012 3:49 pm Post subject: |
|
|
Hi
Quote: | Aber jetzt wo ich fertig bin brauche ich auch keinen Bootloader mehr denn nun startet das UEFI von meinem Laptop den Linux-Kernel direkt. |
Kannst du mir dazu mal etwas mehr schreiben? Wie geht das? Kann ich dann den Bootloader komplett weg lassen? Gibts da irgendwo ne Anleitung zu?
Sebastian |
|
Back to top |
|
|
py-ro Veteran
Joined: 24 Sep 2002 Posts: 1734 Location: Velbert
|
Posted: Thu Aug 02, 2012 3:59 pm Post subject: |
|
|
Suchbegriffe: Kernel EFI Stub Loader |
|
Back to top |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1921 Location: Schweiz
|
Posted: Thu Aug 02, 2012 4:21 pm Post subject: |
|
|
Hollowman wrote: | Hi
Quote: | Aber jetzt wo ich fertig bin brauche ich auch keinen Bootloader mehr denn nun startet das UEFI von meinem Laptop den Linux-Kernel direkt. |
Kannst du mir dazu mal etwas mehr schreiben? Wie geht das? Kann ich dann den Bootloader komplett weg lassen? Gibts da irgendwo ne Anleitung zu?
Sebastian |
Ja, ich brauche und habe jetzt auf meinem Laptop keinen Bootloader mehr weil das UEFI meinen Kernel direkt ab der "EFI-Systempartition" laden kann.
Aber eine Schritt für Schritt Anleitung habe ich keine gefunden, das dafür notwendige Wissen habe ich hauptsächlich aus folgenden beiden Seiten:
http://blog.realcomputerguy.com/2012/05/efi-stub-booting-without-bootloader.html
https://help.ubuntu.com/community/UEFIBooting
Das einzige Problem das ich selber lösen musste war ein kleines Henne-Ei-Problem wegen dem Programm "efibootmgr" das benötigt wird um im UEFI einen entsprechenden Booteintrag für den Kernel zu erstellen. Es läuft nämlich nur wenn das Modul "efivars" geladen ist und dieses wiederum lässt sich nur laden wenn der Kernel bereits über EFI gestartet wurde.
Vielleicht schreibe ich irgendwann mal eine Anleitung im passendem Subforum aber heute sicher nicht mehr. _________________ Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW |
|
Back to top |
|
|
Hollowman Guru
Joined: 19 Apr 2007 Posts: 584
|
Posted: Sun Aug 05, 2012 1:08 pm Post subject: |
|
|
Hi
Habs hinbekommen.
http://blog.realcomputerguy.com/2012/05/efi-stub-booting-without-bootloader.html
Die Anleitung reicht völlig.
Das einzige was mich gebremst hat, ist das bei meinem Asus Board die EFI Partition die erste auf der Platte sein muss (sda1, sdb1 etc). Mit sda3 als EFI Partition konnte ich nicht booten.
Der Nvidia Treiber zickt auch ein bisschen wegen des EFI Framebuffer, läuft aber nach einem Stacktrace einwandfrei.
Sebastian
PS: Vielleicht kann das ein Mod trennen. |
|
Back to top |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1921 Location: Schweiz
|
Posted: Sun Aug 05, 2012 2:13 pm Post subject: |
|
|
Hollowman wrote: | Der Nvidia Treiber zickt auch ein bisschen wegen des EFI Framebuffer, läuft aber nach einem Stacktrace einwandfrei. |
Den EFI Framebuffer habe ich weggelassen, beim Laptop ist nur der Intel-KMS und beim HTPC nur der Radeon-KMS eingerichtet. _________________ Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW |
|
Back to top |
|
|
|