"/" auf USB-Stick, UUID in /boot/cmdline.txt geht nicht

  • Hallo,


    ich habe das "/"-Dateisystem von "/dev/mmcblk0p2" nach "/dev/sda1" verschoben.

    In der "/boot/cmdline.txt" würde ich nun gerne nicht "/dev/sda1" stehen haben, doch mit 'root=UUID=b8...' geht es nicht, es würde mit 'root=PARTUUID=b8...' funktionieren, doch die UUID ist wohl insgesamt zu lang.

    Aber der USB-Stick hat, laut "blkid" keine PARTUUID.


    Mein Problem ist nun, dass es zu Problemen führen kann, wenn beim Booten der "Root-Stick" nicht als erster erkannt wird.


    Hat jemand eine Idee, was man machen könnte?


    Geht:

    Code
    /boot/cmdline.txt:
    root=PARTUUID=c3072e18-01
    blkid:
    /dev/sda1: UUID="9ea6b25c-25a7-*" TYPE="ext4" PARTUUID="c3072e18-01"


    Geht nicht:

    Code
    /boot/cmdline.txt
    root=UUID=b8fd0886-b480-4224-*
    blkid:
    /dev/sda1: UUID="b8fd0886-b480-*" TYPE="ext4"

    Die Seite im Internet, die sich mit diesem Thema beschäftigen, habe ich gelesen ;-)



    Der PI ist folgender:

    Code
    root@raspberry:~# uname -a
    Linux raspberry 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l GNU/Linux
    root@raspberry:~#

    Selber denken,
    wie kann man nur?

    Edited 4 times, last by Rasp-Berlin ().

  • Aber der USB-Stick hat, laut "blkid" keine PARTUUID.

    Hast Du gdisk benutzt? Welche Seite im Internet hast Du gelesen?

    The most popular websites without IPv6 in Germany.

  • Das steht in meiner /boot/cmdline.txt

    Code
    dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=8dafb191-02 rootfstype=ext4 cgroup_enable=memory elevator=deadline fsck.repair=yes rootwait

    Eine Zeile, sieh es als Beispiel, findet man so heraus:

    Code
    sudo blkid
    /dev/sda1: LABEL="boot" UUID="E5B7-FEA1" TYPE="vfat" PARTUUID="8dafb191-01"
    /dev/sda2: UUID="b4ea8e46-fe87-4ddd-9e94-506c37005ac5" TYPE="ext4" PARTUUID="8dafb191-02"

    Ich hoffe es hilft Dir weiter.


    MfG


    Jürgen
    Edit: Wobei es mich wundert das Deine Konstruktion funktioniert.

  • Eine Zeile, sieh es als Beispiel, findet man so heraus:

    Ja und ... wenn nicht, wie generiert man dann die PARTUUID?

    The most popular websites without IPv6 in Germany.

  • Nochmal: sudo blkid

    Was steht denn da bei Dir?

    Nochmal: "sudo blkid" zeigt u. a. auch die PARTUUID an, wenn vorhanden. Es gibt aber auch Partitionen die (noch) keine PARTUUID haben und dann kann "sudo blkid" diese auch nicht anzeigen.


    Die Frage ist doch die: Wie "generiert" man eine PARTUUID, wenn sie nicht vorhanden ist.


    BTW: Ich habe Partiionen mit und auch welche ohne PARTUUID.

    The most popular websites without IPv6 in Germany.

  • Ich habe hier noch etwas gefunden:

    https://forum.ubuntuusers.de/topic/uuid-aendern/

    https://wiki.ubuntuusers.de/UUID/


    Tante G war großzügig


    MfG


    Jürgen

  • Ich hab nur UUIDs, ...

    Lt. deinem Beitrag #3 hast Du doch auch PARTUUIDs:

    Code
    root=PARTUUID=8dafb191-02


    BTW: Es geht nicht um UUIDs.

    The most popular websites without IPv6 in Germany.

    Edited once, last by rpi444 ().

  • Hallo Rasp-Berlin !


    Wenn Du tatsächlich die ganze Partition verschoben hast, gibt es sie auf der sd (p2) nicht mehr.

    Wenn Du aber nur mit dd die Partition kopiert hast, haben auf beiden Devices die / Partition dieselbe Partitions UUID.


    Daneben gibt es auch eine UUID für das ganze Block-Device. Und jedes Block Device und die darin enthaltenen Partitionen können auch noch eine eigene Bezeichnung (Label) erhalten.


    Mit Ersatzzeichen kannst Du eine UUID nicht ergänzen, noch weniger kannst Du mit einer UUID eine Partition ansprechen, wenn die UUID mehrmals auf verschiedenen Block-Devices vorkommt.



    Servus !

    RTFM = Read The Factory Manual, oder so

    Edited once, last by RTFM ().

  • vielleicht hilft das weiter -> https://gparted.org/display-doc.php%3Fname%3Dhelp-manual

    Unter dem Punkt "Changing a Partition UUID" ...

    ... oder das: https://www.raspberrypi.org/fo…iewtopic.php?f=29&t=44177


    ... denn der TE will ja die PARTUUID nicht ändern, weil es sie noch gar nicht gibt.

    The most popular websites without IPv6 in Germany.

  • Naja ...

    ... denn der TE will ja die PARTUUID nicht ändern, weil es sie noch gar nicht gibt.

    von "leer" nach "Inhalt" ist ja auch ein ändern.

    btw: -> https://gparted.org/display-do…d-changing-partition-uuid

    Quote
    1. Select an unmounted partition. See the section called “Selecting a Partition”.
    2. Choose: Partition → New UUID. The application displays the set a new random UUID operation in the Operations Pending pane.

    cu,

    -ds-

  • Was sagt den ls -l /dev/disk/by-partuuid?

    Das was "sudo blkid" auch schon gesagt hat. Wenn die PARTUUID nicht vorhanden ist, z. B.:

    Code
    ~ $ ls -l /dev/disk/by-partuuid
    ls: cannot access /dev/disk/by-partuuid: No such file or directory

    The most popular websites without IPv6 in Germany.

  • Quote

    denn der TE will ja die PARTUUID nicht ändern, weil es sie noch gar nicht gibt.

    Na ja, wenn man von 'keiner PARTUUID' zu einer kommen will, wäre das schon eine Änderung ;-)


    Der Stick ist 64 GByte groß, da muss man wohl keine GPT drauf anlegen, oder?

    Ich habe ihn, so wie auch auf dem anderen System, auf dem der Stick eine PARTUUID hat, auf der PI-Console mittels 'fdisk' erstellt.


    Der Stick, der funktioniert, ist 32GB groß und auf den gleichen weg partitioniert wie der größere Stick. Es sind aber zwei unterschiedliche Hersteller.


    Der Stick, bei dem es nicht geht:

    Code
    root@raspberry:~# blkid
    /dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="0EF2-CA4B" TYPE="vfat" PARTUUID="60ee494f-01"
    /dev/mmcblk0p2: UUID="e093a5bb-b180-4f87-9d60-467b3e79811d" TYPE="ext4" PARTUUID="60ee494f-02"
    /dev/sda1: UUID="b8fd0886-b480-4224-*" TYPE="ext4"/dev/mmcblk0: PTUUID="60ee494f" PTTYPE="dos"
    root@raspberry:~#


    Der Stick/PI, auf dem es geht:

    Code
    root@tel-ansage:~# blkid
    /dev/mmcblk0p1: LABEL="boot" UUID="3AFB-2896" TYPE="vfat" PARTUUID="f28f709e-01"
    /dev/mmcblk0p2: UUID="62ca0b6d-6291-4c40-b1fd-11bc291e4a38" TYPE="ext4" PARTUUID="f28f709e-02"
    /dev/sda1: UUID="9ea6b25c-25a7-4e68-*" TYPE="ext4" PARTUUID="c3072e18-01"
    /dev/mmcblk0: PTUUID="f28f709e" PTTYPE="dos"
    root@tel-ansage:~#


    Quote

    Wobei es mich wundert das Deine Konstruktion funktioniert.

    Sie funktioniert, bis man beim Booten einen weiteren Datenträger am USB-Port hängen hat, und der gewünschte Stick eben nicht mehr /dev/sda ist.


    Quote

    Wenn Du tatsächlich die ganze Partition verschoben hast, gibt es sie auf der sd (p2) nicht mehr.


    Ich habe die Partition nicht verschoben, und auch nicht mit "dd" kopiert, sondern auf dem Stick erst eine neue Partition erstellt, und dann die SD und den Stick in einen anderen Rechner gesteckt, und mittels "tar"die Daten von der "/"-Partition der SD auf den Stick kopiert.

    Sobald man in der /boot/cmdline.txt den Eintrag für "root" ändert, und in der "fstab" ebenfalls "/" anders einbindet, bootet der PI auch vom USB-Stick. Auf jeden Fall mit einem Stretch und einem älteren B

    Denn die /boot bleibt ja auf der SD.


    Quote

    Mit Ersatzzeichen kannst Du eine UUID nicht ergänzen, noch weniger kannst Du mit einer UUID eine Partition ansprechen, wenn die UUID mehrmals auf verschiedenen Block-Devices vorkommt.

    Das ist mir klar. Doch die UUID muss ja nicht jeder sehen. Der * ist nur für das Posten ;-)

    Ich würde den Stick nur ungern neu partitionieren, denn dann müsste ich alles sichern, um es anschließend zurück zu spielen, ohne alles neu zu konfigurieren.


    Ach ja:

    Selber denken,
    wie kann man nur?

    Edited 2 times, last by Rasp-Berlin ().

  • Na ja, wenn man von 'keiner PARTUUID' zu einer kommen will, wäre das schon eine Änderung ;-)

    Ja, für dich wäre das eine Änderung, aber nicht für die PARTUUID, denn was nicht existiert kann m. E. auch nicht geändert werden. ;-)

    The most popular websites without IPv6 in Germany.

  • root@raspberry:~# lsblk -o UUID,NAME


    Die derzeit neben /dev/sda1 ersichtliche UUID trägst Du als Rootpartition (UUID=) ein und löscht den /dev/sda1 Descriptor.

    Sonst würde nur dann vom UUID Filesystem gebootet werden, wenn das auch auf /dev/sda1 liegt - und umgekehrt.



    Servus !

    RTFM = Read The Factory Manual, oder so

  • Quote

    Die derzeit neben /dev/sda1 ersichtliche UUID trägst Du als Rootpartition (UUID=) ein und löscht den /dev/sda1 Descriptor.


    Ähmmm, ich hatte doch geschrieben:

    Quote

    In der "/boot/cmdline.txt" würde ich nun gerne nicht "/dev/sda1" stehen haben, doch mit 'root=UUID=b8...' geht es nicht, es würde mit 'root=PARTUUID=b8...' funktionieren, doch die UUID ist wohl insgesamt zu lang


    Meine Frage kommt ja, weil es mit der UUID nicht funktioniert.

    Selber denken,
    wie kann man nur?