Boot von USB, wie kann man das USB device erweitern?

  • Hallo,

    Du schreibst zu viel "Prosa". Statt dessen wären die ausgeführten Kommandos und deren Ausgaben in einem Codeblock aussagekräftiger.

    Was sagt

    sudo fdisk -l /dev/sda

    Was sagt

    df -h

    beides im Codeblock, das ist das </>-Symbol im schwarzen Balken.

    Schönen Gruß, kle

  • Boot von USB, wie kann man das USB device erweitern?? Schau mal ob du hier fündig wirst!

  • Wenn ein Befehl nicht funktioniert, teilt Linux das dem Bediener auch mit.

    Und ob die Partition sich geändert hat, hättest Du aus dem nachfolenden "(parted) print" ablesen sollen.

    "(parted) help resizepart" hatte den Sinn, die das -8 zu erklären (und ob das bei deiner installierten Version verfügbar ist)

    Möglicherweise musst Du trotz Umschalten auf Unit Sectors, bei -8 noch ein s anfügen, also -8s eingeben.

    Die Partitionsnummer von "(parted) resizepart" musst Du so eingeben, wie sie unter "(parted) print" erscheint. Das kann auch 2-, oder 3-stellig, mit führenden 0-en sein.

    Wenn

    (parted) resizepart 02 -8s

    (parted) resizepart 002 -8s

    auch nicht funktioniert (was soviel bedeutet, wie "Partitionsendesektor 8 Sektoren vor Plalttenendesektor")

    dann verwende

    (parted) resizepart 2 122897992 (oder 122897992s)

    bzw. die Optionen, die bei Dir unter "(parted) help resizepart" angezeigt werden.

    Linux ist viel zu mächtig, um nur auf Zuruf aus dem Internet administriert zu werden, dazu sind die Manpages und die Hilfefunktionen primär gedacht.

    Würdest Du alle Optionen der schon mit raspian light installierten Proramme aus dem Internet erfragen, würdest Du bei der letzten Option um ca. 3 Jahre älter sein, als bei der ersten.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Ok, hier die Ausgaben:

  • So, nach der Anleitung hatte ich es noch einmal versucht und die Ausgaben gespeichert.

    (pi) sudo -i

    (root) parted /dev/sda

    (parted) unit s

    (parted) print

    (parted) help

    (parted) help resizepart

    (parted) resizepart 2 -8

    (parted) print

    (parted) quit

    (root) sync

    (root) partx -u /dev/sda2

    (root) resize2fs -p /dev/sda2

    (root) sync

    (root) exit

    (pi) exit

    Die Partition konnte ich zwar erweitern, über den Desktop Dateimanager konnte ich sehen, dass die Partition dann 59GB groß war, jedoch funktioniert nun das Booten nicht mehr.

    Exakt der gleiche Fehler den ich bekomme, wenn ich das über GParted erweitere.

    Hier dann der Fehler wo das System immer hängen bleibt.

  • ...und hier die Ausgaben beim Resizen:

  • habe auf meinem Pi4 2GB RAM eine SD Karte mit Buster Lite Image, hier die config.txt entsprechend verändert, dass von USB gebootet wird.

    Wenn Du alles "entsprechend" richtig gemacht hättest, hättest Du kein Rootpartitions-Remount-Mismatch.

    Und es steht auch da, dass Du mit dem root Passwd den Emergenvy Mode starten sollst. Und wenn Du kein root Passwd vergeben hast, bestätige das leere Passwd mit ENTER. Dann bist Du im Single User Mode und Du holst Dir eine Shell/Console.

    Mit List Blockdevices kannt Du Dir auch PartitionsUID und FilesystemUID anzeigen lassen.

    < lsblk -h >

    < lsblk -o name,partuuid,uuid >

    1. Keine UID darf zweimal vorkommen.

    2. Die UUID von /boot/cmdline.text (der MMC) muss auf die UUID von /dev/sda2 zeigen.

    3. Die "/" UUID von /dev/sda2 in /etc/fstab muss auf sich selbst zeigen.

    4. Die Dateien in (MMC)/boot und /dev/sda1 müssen ident, also von derselben Minor-Verion stammen (von config.txt und cmdline.txt mal abgesehen). Also auf Grösse und Datum mit < ls -al > überprüfen.

    5. Wenn Du von MMC-P2 bootest, kannst Du das EXT4-Root Filesystem mit < e2fsck -pfv /dev/sda2 > überprüfen, /dev/sda2 darf dabei nicht gemountet sein.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • In diesem Zustand komme ich auf keine Konsole mehr, auch nicht wenn ich Enter drücke.

    Deshalb habe ich wieder den USB Stick neu erstellt.

    Also jetzt wieder noch mit kleiner Partition.

    Also bin ich wieder über SSH auf der Konsole.

    Code
    root@raspberrypi:~# lsblk -o name,partuuid,uuid
    NAME        PARTUUID                             UUID
    sda
    ├─sda1      3b18e43a-01                          0C61-73F5
    └─sda2      3b18e43a-02                          43f2d0bb-83be-464f-94d0-9a751f376c64
    mmcblk0
    ├─mmcblk0p1 e9913b7d-01                          F661-303B
    └─mmcblk0p2 e9913b7d-02                          8d008fde-f12a-47f7-8519-197ea707d3d4
    root@raspberrypi:~#


    Die cmdline.txt befindet sich direkt im Rootverzeichnis der SD Karte. Einen Boot Ordner gibt es hier nicht.

    Code
    root@raspberrypi:~# e2fsck -pfv /dev/sda2
    /dev/sda2 is mounted.
    e2fsck: Cannot continue, aborting.

    Also, dev/sda2 ist gemounted. So läuft aber alles, Nur eben ist die Partition noch nicht erweitert.

    Ich verstehe eben nicht weshalb gerade das Erweitern bei mir immer einen Fehler verursacht, so vermute ich dass diese fstab noch verändert werden muss.

    Diese Meldung gab es ja auch beim Resizen.

    Die fstab auf dem Stick ist wie folgt:

    Code
    proc            /proc           proc    defaults          0       0
    PARTUUID=e9913b7d-01  /boot           vfat    defaults          0       2
    PARTUUID=e9913b7d-02  /               ext4    defaults,noatime  0       1
    # a swapfile is not a swap partition, no line here
    #   use  dphys-swapfile swap[on|off]  for that

    3 Mal editiert, zuletzt von hg6806 (12. August 2019 um 21:59)

  • Die fstab auf dem Stick ist wie folgt:

    Code
    proc            /proc           proc    defaults          0       0
    PARTUUID=e9913b7d-01  /boot           vfat    defaults          0       2
    PARTUUID=e9913b7d-02  /               ext4    defaults,noatime  0       1

    Wenn am Stick die fstab root "/" mit der PARTUID=e9913b7d-02 mounted, welches Device mounted er dann.

    mmcblk0p2 e9913b7d-02

    sda2 3b18e43a-02

    Was bedeutet die Ausgabe von Zeile 54 in #25 ?


    Servus !

    RTFM = Read The Factory Manual, oder so

    Einmal editiert, zuletzt von RTFM (12. August 2019 um 23:20)

  • Moin!

    hier die Ausgabe

    Genau, Zeile 54 aus #25. Deshalb meine ich dass die fstab angepasst werden muss.

  • dann zeig doch mal die fstab von sda2 vor.

    Mit lsblk siehst Du die mountpoints, also mit lsblk | grep sda2, dann noch /etc/fstab dranhängen und fertig ist der absolute Pfad für sda2-fstab.

    Die fstab vom letzten Code-block in #29 hat die PARTUIDs für die SD-Karten-Partitionen. Vergleiche sie mit den PARTUIDs des 1. Code-Blocks in #29. Die Partition 2 (root-Partition) in der sda2-fstab, muß die sda2-PARTUID (vom USB-Stick) sein.

    Du mußt den USB-Stick doch sowieso neu machen?

  • Guten Morgen,

    leider bin ich noch immer nicht weiter gekommen.

    1x hatte es geklappt nach meiner Vorgehensweise. Dann das Ganze genau noch einmal wiederholt und schon läuft es nicht mehr.

    Noch einmal von vorne.

    Habe ein nun ein normales Buster Image auf einer SD Karte. Das läuft hoch mit SSH, VNC usw.

    Alles top.

    Dann erstelle ich auf einem SSD Laufwerk über USB3 ein weiteres Buster Image und kopiere noch die leere Datei "SSH" auf die Boot Partition damit ich dann ohne Monitor auf Zugriff darauf habe.

    SSD wird per USB3 angesteckt Pi wird gebootet, bootet von SD. Ich ändere die "cmdline.txt" der SD Karte auf "root=/dev/sda2" und reboote.

    Es wird von der SSD gebootet.

    Alles prima.

    Doch da das Filesystem noch nicht expanded ist nehme ich die SSD wieder vom Pi, schließe diese an meinen PC an und fahre den über eine GParted Boot-CD/DVD hoch um somit die Partition der SSD zu erweitern.

    Das tue ich mit dem Schieberegler. Ich ziehe also die 3,xGB Partition auf etwas über 60GB hoch und klicke Apply.

    Das Ganze dauert dann ein paar Sekunden und gut ist.

    Über Windows und ext2fs schau ich noch ob die Partitionen so ok sind, ich komme auf beide drauf, die eine boot-Partition ist 60GB groß.

    Also kommt die SSD wieder an den Pi dran, doch dieser fährt nicht mehr komplett hoch. Ausgabe #24 hier.

    Von der SSD hatte ich mal die fstab und cmdline.txt Dateien vor und nach dem Expand gezogen und verglichen.

    Diese sind komplett gleich außer dem marginalen Unterschied, dass in der fstab nun zwei Kommentare drin stehen

    Code
     # a swapfile is not a swap partition, no line here
    #   use  dphys-swapfile swap[on|off]  for that

    Aber sind ja nur Kommentare. Aber trotzdem ist hier was geschrieben worden.

    Sorry für nochmal mehr Prosa, aber vielleicht erkennt ja jemand den Fehler.

    Es muss also irgendwie mit dem Partitionieren zusammenhängen. da es ja 1x geklappt hatte. Vielleicht doch irgendwas mit Sektoren?

  • Wenn Du von der SD/MMC Karte auf /dev/sda2 bootest, wurde im Bootprozess die Partition mit der PARTUID=3b18e43a-01 nicht gefunden, sodass kein fschk des FAT-Filesystems (boot-Partition) durchgeführt werden konnte.

    Das passiert z.B., wenn 2 idente Images gleichzeitig betrieben werden (1xSD, 1xSpeicherstick/HD/SSD).

    Wahrscheinlich kommt die PARTUID=3b18e43a-01 zweimal vor.

    Servus !

    RTFM = Read The Factory Manual, oder so

    • Offizieller Beitrag

    Nur welche boot-Partition steht in der fstab und wie? Ich vermute die der SSD, deren PARTUUID sich womöglich geändert haben könnte. (Edit: Unsinn)

    Imho müsste /dev/mmblk0p1 (die boot-Partition der mSD) in der fstab der SSD stehen und natürlich die PARTUUID der root-Partiton der SSD oder eben /dev/sda2. Die vergrößerte boot-Partition der SSD kann man dann immernoch eintragen, wenn das System läuft.

    ... oder denke ich da in die falsche Richtung? :-/

  • Das passiert z.B., wenn 2 idente Images gleichzeitig betrieben werden (1xSD, 1xSpeicherstick/HD/SSD).

    Wahrscheinlich kommt die PARTUID=3b18e43a-01 zweimal vor.

    Dieses Problem hatten wir gerade die Tage. Mit

    Code
    sudo blkid

    kannst Du die aktuellen PARTUUIDs checken. Dann muss in /boot/cmdline.txt und /etc/fstab die PARTUUID der root Partition stehen sowie in /etc/fstab unter /boot die PARTUUID der bootpartition stehen.

    Bei mir sieht es z.B. so aus:

  • Imho müsste /dev/mmblk0p1 (die boot-Partition der mSD) in der fstab der SSD stehen und natürlich die PARTUUID der root-Partiton der SSD oder eben /dev/sda2. Die vergrößerte boot-Partition der SSD kann man dann immernoch eintragen, wenn das System läuft.

    Derzeit ja, solange der Pi4 mit Buster noch nicht direkt von einem USB Blockdevice booten kann.

    MMC-P1(Bootpartition) und sda2(Rootpartition) müssen wechselseitig zusammenbleiben. Die Bootpartition (MMC-1) wird ja nicht nur "fs-ge-checkt und ins root-Filesystem gemountet, sondern für die Kernel- und Modulupdates gebraucht. Sonst landen die im falschen Verzeichnis.

    Ist dann Buster soweit, dass auch von USB gebootet werden kann, wird die MMC-P1 auf USB-HD-P1 (sda1) mit dd übertrgaen, und von USB-HD-P2 (sda2) die fstab auf USB-HD-P1 (sda1) angepasst. Dann kann (besser muss) ohne MMC gebootet/gearbeitet werden.

    Die UUID (des Filesystems wird eigentlich nur geändert, wenn man ein EXT4 (oder anderes) Filesystem neu formatiert). Oder mit einem entsprechenden Tool/Hexeditor. Wohl aber kann man das FilsysemLABEL mit den mitgelieferten Tools ändern. Über das LABEL= kann auch gemountet werden, so wie mit UUID= PARTUUID= und /dev/sdxn. Das letzere Feature ist aber nicht empfehlenswert.


    Die PartUUID wird nur geändert, wenn alle Partitionen gelöscht werden und eine neue Partitionstabelle erstellt wird. Sonst wird nur nur an die Hauptkennung die Partitionsnummer angeghängt. Tools und Hacks sind hier auch möglich.

    Beim Expand Partition (v.GParted) und Expand/Shrink Filesystem wird eigentlich an den Bezeichnern nichts geändert.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Was ist so schlimm daran einfach die Devices zu nehmen...

    ich finde es viel einfacher z.B /dev/sda2 zu nehmen als die "ellenlange" UUID bei der man sich auch noch toll verschreiben kann.

    So weiss ich wo was hingeht,..Backup + Restore wird einfacher !!

    Ich kann z.B. die SD-Karte zum Testen auch in einen anderen Pi stecken...

    Und wenn man nicht dauernd die "Disks" tauscht... bringt UUID doch nichts

    Oder denke ich da falsch?

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!