USB Boot 3 Partitionen

  • Nabend!

    Ich stehe vor folgendem Problem. Ich stelle gerade meinen Pi 4 auf USB Boot um. Das ganze funktioniert auch. Beim Partitionieren jedoch stoße ich auf Schwierigkeiten. Nach dem Flashen der SD Karte auf meinen Stick bzw. auf meine SSD möchte ich zum einen den gesamten Speicherplatz der USB-Speichers freigeben und 3 Partitionen erstellen. Das ganze über fdisk im Terminal per SSH.

    Code
    sudo fdisk /dev/sda

    hier lösche ich zunächst die Partition 2

    Code
    d
    2

    danach erstelle ich eine neue primäre

    Code
    n
    p
    2

    Startsektor eingeben

    Endsektor mit Enter quittieren. Bis hierhin funktioniert alles wie gewollt. Wenn ich jedoch jetzt noch eine 3 Partition erstellen möchte, wird es kritisch.

    Wenn 3. Partition dann sinnvoll aufteilen und Endsektor Partition 2 im vorherigen Schritt natürlich anpassen.

    n

    p (hier bin ich nicht sicher ob primär oder extendet)

    3

    Startsektor angeben = Endsektor +1 von Partition 2

    Endsektor mit Enter quittieren.

    Code
    p
    w
    Code
    sudo resize2fs /dev/sda2
    sudo resize2fs /dev/sda3

    auch hier funktioniert alles gut. Außer die Fehlermeldung

    "on-line shrinking not supported"

    Ich kann jetzt auf sda 1 bis 3 zugreifen.

    Nach dem nächsten Reboot bootet der Pi allerdings nicht mehr.

    Hat jemand eine Lösung für mich?

    Vielen Dank für Eure Hilfe!

  • Zur hilfreichsten Antwort springen
  • Du hättest zuerst das EXT4 Filesystem (ungemountet) verkleinern (=shrinken) sollen, und dann erst die Partition 2 mit dem neuen Endesektor versehen dürfen. Danach die Partition 3 erstellen und dann ein Filesystem in der Partition 3 erstellen.

    In < man resize2fs > steht aber schon im 2. Satz, dass das Filesystem beim Verkleinern nicht gemountet sein darf.

    Servus !

    RTFM = Read The Factory Manual, oder so

  • Wenn man unbrauchbare Software verwendet, passiert das eben.

    Wenn man auf USB-Boot (also keine SD-Boot-Funktion mehr braucht) umstellen will, dann partitioniert man das an den USB-Port angeschlossene Geräte so, wie man es haben will.

    1 FAT32-Partition für das /boot-Device

    eine oder mehrere weitere Partitionen für den Rest.

    Man steckt die SD-Karte, dies Systems, das man umstellen will, als weiteres Device an einen anderen Linux-Rechner, weiterhin steckt man das neue Boot-Device an diesen Rechner.

    An diesem 'Kopierrechner' wird man erst einmal 'root' => 'sudo su -' und mountet nun die /boot-Partition der SD und die als /boot-Partition des USB-Gerätes vorgesehene Partition nach /mnt/alt und /mnt/neu

    Dann wechselt man in das Verzeichnis /mnt/alt und gibt

    Code
    tar cf - . | (cd /mnt/neu; tar xvf -)

    ein.

    Hier wartet man, bis alles durchgelaufen ist. Nun sieht man sich die Namen der Blockdevies des neuen Boot-Devies an und trägt in der /mnt/neu/cmdline.txt die die PART-UUID der neuen /-Partition ein.

    Man Wechselt mit "cd" in Home von Root und entmountet beide Devices.

    Jetzt mountet man nach /mnt/alt das alte Root-Device sowie nach /mnt/neu das neue Root-Device.

    nach einem "cd -" wiederholt man den obigen Befehl.

    Ist das ganze fertig, ermittelt man die UUID des neuen /-Devices udn wechselt nach /mnt/neu/etc, um hier in fstab die beiden UUIDS für /boot und / an die neuen Daten anzupassen.

    Will man ein Verzeichnis auf eine weitere Partition 'verschieben', kann man diese auch mit dem obigen Befehl übertragen. Dabei muss man nur das Quellverzeichnis (im Befehl der 'Punkt') und das Zielverzeichnis (diesmal /mnt/neu) anpassen.

    Hat man ein Verzeichnis in die neue Partition 'umgezogen', ist es am Einfachsten, man löscht das komplette Verzeichnis auf dem neuen Datenträger, mit allen, was dort enthalten ist, und legt dieses Verzeichnis neu an.

    Jetzt noch einen Eintrag in der /mnt/neu/etc/fstab, um die neue Partition auch an der richtigen Stelle zu mounten (UUID verwenden), dann kann man die Datenträger entmounten und das neue Boot-Device an den PI anschließen.

    Hat alle geklappt, bootet er.

    Vorteil:

    Man kann die Partitionen so anlegen, wie man es will, man muss kein 'resize' eines Dateisystems machen, die Dateien wurden auf eine Art kopiert, die garantiert keine Hardware-Fehler des Quell-Datenträgers kopiert und auch nicht auf 'defekte' Bereiche des neues Datenträger kopiert (OK, bei SSDs ist das schon sehr ungewöhnlich)

    Nachteil:

    Man kann keine Programme verwenden, von denen man nicht wirklich versteht, was sie machen.

    Doppelter Vorteil:

    Man lernt mehr über Linux.

    Computer ..... grrrrrr

  • Danke für Eure Antworten!

    Meine Linux Kenntnisse belaufen sich eher im mageren Bereich.

    Ich greife mal zuerst den Vorschlag von RTFM auf.

    RTFM

    Ich habe jetzt einfach nochmal die SD Karte auf den USB Stick geflasht. Die gesamte Größe ist also noch nicht ausgerollt.

    Wie würdest du denn jetzt ab hier fortfahren? Ist mein Vorhaben über fdisk überhaupt möglich?

    Danke Euch!

    2 Mal editiert, zuletzt von Karel (24. April 2021 um 22:38)

  • Rasp-Berlin

    Deine Hinweise klingen sehr interessant. Und du hast völlig Recht, dadurch lernt man Linux besser kennen. Allerdings stehe ich eher am Anfang und würde eine zunächst einfachere Lösung bevorzugen.

    Du sprichst von "unbrauchbarer Software". Ist das Vorhaben deiner Meinung nach über fdisk nicht möglich?

    • Offizieller Beitrag

    Karel

    Btw. Wenn Du PuTTY verwendest, wonach es aussieht, dann kannst Du das gewünschte zu Kopierende einfach mit der Maus markieren und schon ist es in der Zwischenablage.

    Hier im Foreneditor klickst Du dann auf den Button für Code () und fügst das Kopierte einfach ein. Das ist wesentlich übersichtlicher als Screenshots. ;)

    • Hilfreichste Antwort

    Wie würdest du denn jetzt ab hier fortfahren? I

    /dev/sda ist 122544516 Sektoren (zu 512 Bytes ) gross.

    /dev/sda1 (boot), 256 MB, passt

    /dev/sda2 (root) ist 14,6 GB gross, beginnt bei Sektor 532480 und endet bei Sektor 31116287

    ich sehe keinen Grund das zu ändern.

    Jetzt legst Du eine neue primäre Partition Nr.3 an: Von Sektor 31116288 bis Ende 122544515

    abspeichern

    sync

    runterfahren

    sd raus

    booten

    einrichten und dann

    in /dev/sda3 mit mkfs.ext4 (oder mke2fs) ein EXT4 Filesystem erstellen.

    Servus !


    PS: Wenn Du *mich* fragst, würde ich auch eine 8 GB grosse Linux Swap Partition erstellen, das wird aber hier nicht gerne gesehen und hat hier am Pi keine allgemeine Zustimmung.

    RTFM = Read The Factory Manual, oder so

    • Offizieller Beitrag

    Wenn Du *mich* fragst, würde ich auch eine 8 GB grosse Linux Swap Partition erstellen, das wird aber hier nicht gerne gesehen und hat hier am Pi keine allgemeine Zustimmung.

    Doch das kann man bei einer SSD oder HDD schon machen. Es wird hier wegen höherer Anzahl der Schreibzugriffe und deshalb schnelleren Sterben nur bei einer SD-Karte nicht gerne gesehen.

  • Ich würde auf SSD, HD, oder anderem Datenträger auch keine SWAP Partition anlegen/nutzen. SWAP soll doch nur den Mangel an Speicher (RAM) kompensieren indem Daten ausgelagert werden. Das ist langsam und verusacht unnötige Schreibvorgänge. Beim RPi mit SD Karte ist das sogar doppelt kontraproduktiv. Die Standard 100MB Swapdatei bei 1GB RAM ist eh viel zu klein.

    Da setze ich lieber auf "eigenes" Speichermanagement. Wobei das eigentlich die Aufgabe des OS und der Programme ist. Wenn Das System/OS SWAP braucht, ist das meiner Meinung nach broken by design. Bzw. nicht besonders klug. Auch nicht viel besser, aber doch eine bessere Alternative ist (aus meiner Sicht) zRam.

Jetzt mitmachen!

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