Festplatten partitionieren und über externen Datenspeicher booten mit RPi4 und Buster

  • das tutorial kann man hier runterladen. viel glück und ich hoffe, es bringt euch ein stück weiter ...

    RASPBERRY PI ÜBER USB BOOTEN

    Jeder, der sich zum ersten Mal mit dem Raspberry Pi beschäftigt und sich diesen zulegt, benutzt SD-Karten zur Speicherung des Betriebssystems und der Daten. Nach einer gewissen Zeit möchte man dann möglicherweise einen schnelleren und/oder größeren Datenspeicher benutzen. Leider kann man den Raspberry Pi 4B jedoch noch nicht ohne SD-Karte betreiben. Eigentlich allerdings ist sie nur zum Booten notwendig, das heißt es wird dementsprechend nur die Boot-Partition der SD-Karte benötigt. Sämtliche andere Betriebssystemdaten wie beispielsweise die Benutzerdaten und die root-Partition, können auch auf einer beliebigen Partition liegen, so natürlich auch auf einem externen Datenspeicher (SSD- oder HDD-Festplatte; jeweils in einem eigenen USB-Gehäuse). Das folgende Tutorial beschreibt, wie man das Betriebssystem auf eine externe Festplatte auslagern kann.

    EXTERNE FESTPLATTE FORMATIEREN

    Zuerst sollte Raspbian Buster-Full auf den neuesten Stand gebracht werden. Dazu muss folgender Befehl abgesetzt werden :

    sudo apt update && sudo apt full-upgrade

    Danach muss der Raspberry Pi neu gestartet werden. Dazu folgenden Befehl absetzen :

    sudo shutdown -r now

    Ist der Raspberry Pi neu gestartet, muss das Programm gparted installiert werden, mit dem man Festplatten partitionieren, also in Bereiche unterteilen kann. Dies geschieht mit folgendem Befehl :

    sudo apt install gparted

    Nun startet man das Programm VNC Viewer von RealVNC, und startet gparted mit der grafischen Oberfläche. Dazu im Startmenü unter System Tools das Programm mittels Kick auf gparted starten. Ist gparted gestartet, dann im Auswahlfenster oben rechts die zu partitionierende Festplatte auswählen. In meinem Fall ist dies /dev/sda, da ich nur einen externen Datenspeicher mit dem Raspberry Pi über den USB-Port verbunden habe :

    Bild: in gparted Festplatte auswählen


    Nun in der Menüleiste auf device > Create Partition Table… (2) > new klicken, um eine neue Partitionstabelle zu erstellen.

    Bild: Partitionstabelle mittels gparted erzeugen


    Im Fenster Create partition table on /dev/sda als Partitionstyp gpt auswählen und mittels Klick auf die Schaltfläche Apply die neue Partitionstabelle nun erstellen. Ist dies geschehen, dann in der Menüleiste auf Partition > new (3) klicken, um eine neue Partition zu erstellen. Dazu sind folgende Einstellungen durchzuführen :

    Bild: erste Partition erstellen

    • Partitionstyp : Primäre Partition (1)

    • Größe : 600MiB (2)

    • Name : boot

    • Dateisystem : fat32

    • Label : boot

    Diese Einstellungen mit Klick auf die Schaltfläche Add in der Partitionstabelle speichern. Die Einstellungen der zweiten Partition können dem Bild entnommen werden :


    Bild: Einstellungen der zweiten Partition


    Analog dazu die Einstellungen der dritten Partition :

    Bild: Einstellungen der dritten Partition


    Um die Festplatte endgültig zu partitionieren, einfach auf den grünen Haken klicken. Dadurch werden die einzelnen Aktionen durchgeführt :

    Bild: Partitionen endgültig anlegen


    Zuvor wird nochmals gemahnt, dass dadurch sämtliche auf der Festplatte Daten verloren gehen. Da diese leer ist, braucht man sich deswegen keine Sorgen machen.


    Bild: Abfrage, ob Aktionen durchgeführt werden sollen


    Ein Klick auf die Schaltfläche Apply führt die Aktionen nun endgültig aus. Sind die Aktionen durchgeführt, erscheint die Übersicht der

    Festplatte :


    Bild: Übersicht der Festplatte


    So, die Festplatte ist nun partitioniert und kann nun mit den Daten der SD-Karte beschrieben werden. Zuvor kann gparted geschlossen werden.


    DATEN VON SD-KARTE AUF EXTERNEN DATENSPEICHER KOPIEREN

    Dazu muss man die sogenannte root-Partition auf einen externen Datenspeicher kopieren. Dabei sind relativ wenige Schritte notwendig, um die existierende root-Partition der SD-Karte auf eine andere Partition zu kopieren, und die Daten der SD-Karte so zu ändern, dass danach nur noch die externe root-Partition benutzt wird. Dieses kann auch die Partition eines USB-Sticks sein.

    Nach dieser Umstellung wird die existierende root-Partition auf der SD-Karte nicht mehr genutzt werden. Wichtig ist, dass zum Zeitpunkt dieser Umstellung nur ein externes Speichermedium (Festplatte mit USB-Gehäuse oder USB-Stick) an dem Raspberry Pi angeschlossen ist. Ansonsten kann es vorkommen, dass sich die ursprüngliche Partitionstabelle (nach dem Kopieren) von der aktuellen Partitionstabelle (nach dem Neustart) unterscheiden wird. Der Raspberry Pi würde demzufolge nicht die richtige Datenpartition finden und somit nicht die root-Partition booten können.

    Sollte mehr als ein externer Datenspeicher dauerhaft mit dem Raspberry Pi verbunden sein, muss die sogenannte PartitionsUUID als Kennung sowohl in der fstab-Datei als auch in der cmdline.txt-Datei benutzt werden - wie man diese PartitionsUUID-Kennung ermittelt, wird später erklärt. Die Zielplatte muss dann notwendigerweise eine GPT (GUID-Partitionstabelle) als Partitionstabelle benutzen. Ich persönlich ziehe eine PartitionsUUID-Kennung des externen Datenspeichers vor und werde hier deswegen diese Vorgehensweise ausführlich beschreiben :

    Man sollte also nun eine SD-Karte mit vorinstalliertem und lauffähigem Betriebssystem zur Hand haben. Die nun folgenden Schritte sind notwendig, um also das Betriebssystem (root-Partition), welche sich auf der SD-Karte befindet, auf einen externen Datenspeicher auszulagern. Diese Schritte können entweder direkt auf dem Raspberry Pi oder mittels SSH-Verbindung (Terminal-Fenster) auf dem Hauptrechner durchgeführt werden :

    Als Beispiel in den Befehlen wird die Beispielplatte /dev/sda und die Partition /dev/sda1 genommen und auf dem Raspberry Pi mit angeschlossenem weiteren USB-Platte die Befehle ausgeführt werden. Dazu meldet man sich entweder direkt am Raspberry Pi mit Tastatur und Bildschirm an oder verbindet sich per SSH von einem anderen Rechner im lokalen Netz.

    Wichtig :

    Zu achten ist auf die Partitionsbezeichnung (sda1, sda2, etc.), je nachdem, wie viele Partitionen angelegt wurden. Ich beschreibe hier den Vorgang mit der Festplatte aus Bild Übersicht der Festplatte.

    1. Zur Sicherheit erstellt man mittels Win32Diskimager ein Backup der SD-Karte. Wer sich mit Linux auskennt und die originale cmdline.txt. wie unten beschrieben, sichert, kann immer wieder schnell zur alten Einstellung zurückkehren, wodurch die root-Partition auf der SD-Karte samt des darauf befindlichen Betriebssystems gebootet wird.

    2. Erstellen einer Partition auf dem externen Datenspeicher (USB-Stick oder externe Festplatte in einem USB-Gehäuse) :

      sudo gdisk /dev/sda

    3. Formatieren der neuen Partition auf dem externen Datenspeicher mit dem Dateisystem ext4 :

      sudo umount /dev/sda2

      sudo umount /dev/sda2

      sudo mkfs.ext4 -m0 /dev/sda2

      sudo partprobe

    4. Kopieren der root-Partition der SD-Karte auf den externen Datenspeicher :

      sudo mount /dev/sda2 /mnt

    sudo rsync -aHAXx / /mnt

    1. Ermittlung der PartitionsUUID-Kennung des externen Datenspeichers :

      sudo blkid |grep "sda2" |grep -o PARTUUID=".*"

      PARTUUID=“a315cd20-87d1-415c-9dcf-631feabbb916“

    2. Ändern der /mnt/etc/fstab auf dem externen Datenspeicher mittels nano, wobei anstelle von [UUID-Kennung] die in Schritt 5 ermittelte Kennungszahl (z.B: a315cd20-87d1-415c-9dcf-631feabbb916) verwendet werden muss :

      sudo nano /mnt/etc/fstab

      ändern von :

      /PARTUUID=97709164-01

      /boot

      vfat

      defaults

      0

      2

      /PARTUUID=97709164-02

      /

      ext4

      defaults, noatime

      0

      1

      nach :

      /PARTUUID=97709164-01

      /boot

      vfat

      defaults

      0

      2

      /PARTUUID=[UUID-Kennung]

      /

      ext4

      defaults, noatime

      0

      1

    3. Anlegen einer Sicherung der originalen /boot/cmdline.txt

      sudo cp /boot/cmdline.txt /boot/cmdline.txt.sd

      Damit kann man jederzeit wieder die root-Partition der SD-Karte benutzen, indem man die neue /boot/cmdline.txt durch die gesicherte /boot/cmdline.txt.sd-Originaldatei ersetzt :

      sudo cp /boot/cmdline.txt.sd /boot/cmdline.txt

    4. Ändern der Datei /boot/cmdline.txt mittels nano, wobei auch hier wiederum anstelle von [UUID-Kennung] die in Schritt 5 ermittelte Kennungszahl (z.B: a315cd20-87d1-415c-9dcf-631feabbb916) verwendet werden muss :

      von :

      console=serial0,115200 console=tty1 root=PARTUUID=97709164-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignor$.ignore-serial-consoles

      nach :

      console=serial0,115200 console=tty1 root=PARTUUID=[UUID-Kennung] rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignor$.ignore-serial-consoles

    5. Anlegen einer Sicherung der geänderten /boot/cmdline.txt

      sudo cp /boot/cmdline.txt /boot/cmdline.txt.sda

      Somit hat man nun beide Versionen gesichert (ohne und mit externem Datenspeicher), und kann schnell mal hin- und herschalten ohne dafür die gerade aktuelle cmdline.txt sichern zu müssen (!) :

      sudo cp /boot/cmdline.txt /boot/cmdline.txt.sda

    6. Nun den Raspberry Pi booten, mittels folgendem Befehl :

      sudo shutdown -r now

  • Perfektes Tutorial :thumbup:Ich werde von meiner Webseite hierauf verlinken.

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect." Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert :shy: Bei mir tut das automatisch raspiBackup ;)

  • Hi,

    bin was Linux angeht absoluter Anfänger. Habe diese Anleitung mit einem Bananapi a20 und Debian Buster light versucht. Scheitere an Geparted. Liegt das vielleicht an meiner light Version?

    Debian ist drauf und auf dem neusten Stand. Wollte jetzt den Inhalt von Sd card auf meine externe sata Platte schieben. Also Booten von sd rest von Sata Platte.

    Gruß

    alero63

    Edited once, last by alero63 ().

  • denke ich nicht. wie hast du versucht, gparted zu installieren ?

    du kannst auch mal folgendes versuchen :

    Code
    sudo apt-get install gparted

    und, bitte, gehe GENAU nach dem Tut vor (lese dir bitte nochmals alles durch), sonst ist es äußerst mühsam und nervig, eine lösung zu finden ...

    Scheitere an Geparted

    jetzt mal ehrlich :

    was soll ich damit anfangen ?

    du solltest dann auch gegebenenfalls die entsprechenden fehlermeldungen hier posten (bitte diese in codetags setzen [schaltfläche </> - dritte von rechts - in der schwarzen editorleiste]). bekommst du es nicht installiert, nicht geöffnet, oder kannst du damit nicht umgehen ?


    viel glück !

    --- wer lesen kann, ist klar im Vorteil ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---


  • hi,

    ich habe das einegegeben was in deiner Anleitung steht.

    sudo apt install gparted. darauf wird es installiert.

    ich weiss nicht wo und wie ich dann den vnc viewer aufrufen soll. Habe mich wohl falsch ausgedrückt. sorry


    Die FM ist das Geparted nicht gestartet wird. es gibt keine FM .Es passiert nix.

    Habe jetzt mal die Full Version aufgespielt und werde dein script durcharbeiten.

    Danke für die schnelle Antwort.

    Werde mich ggf melden wenn ich nicht weiter kommen sollte.

    Gruß

    Alero63

    Edited once, last by alero63 ().

  • der VNC Viewer von realVNC wird auf deinem hauptrechner installiert, entsprechend konfiguriert und ausgeführt. Somit hast du einen grafischen zugriff auf deine banane, d.h. du siehst auf dem monitor deines hauptrechners die desktop-gui der banane, so, als wenn du einen monitor an die banane angeschlossen hättest. die banane sollte natürlich dann auch im desktop-modus starten - dies kann in der raspi-config eingestellt werden. ob dies (desktop-gui) mit der lite-version funktioniert, weiß ich jetzt nicht (ich glaube jedoch nicht), da ich diese nicht benutze. das können dir hier die profis mitteilen.

    die full-version zu installieren ist diesbezüglich mit sicherheit kein fehler ...

    viel glück !

    --- wer lesen kann, ist klar im Vorteil ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---


  • hi,

    danke für die Info.

    habe jetzt die full Version drauf und die 3 Patitionen(Boot, System und Backup) eingerichtet. Stehe jetzt vor dem Befehl:

    Punkt 2 sudo gdisk /dev/sda Partition einrichten. Das habe ich doch schon mit Gparted gemacht, oder? Und wiesoo muss ich 2x sda2 unmounten?



    P.S. soll ich nicht lieber einen eigenen Call aufmachen?

    Gruß

    Alero63

  • ja, eigener call/thread wäre sehr gut, UND siehe #3 => mach doch bitte GENAU das und in dieser reihenfolge, wie's im Tut steht ...

    viel glück !

    --- wer lesen kann, ist klar im Vorteil ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---


  • hi, habs mal unter

    USB Geräte & zusätzliche Hardware, Anbinden und booten von einer Sata Platte

    neu eröffnet

  • Ne frage... wenn ich gparted über die konsole mit sudo install gparted anschiebe und es fertig ist, mit welchem befehl führe ich es dann aus in linux?


    Was meint perlchamp mit vom Startmenü aus starten??

    Danke und Gruss

  • Was meint perlchamp mit vom Startmenü aus starten??

    Gparted kannst du nur mit Grafischer Oberfläche nutzen.

    Entweder mit angeschlossenem Monitor oder VNC-Player

  • Hallo,


    ich versuche einen Raspberry PI 3+ von einer SSD-Platte, 512 GB zu booten und habe nach dem Script " Raspberry PI OS von SD-Karte aus USB-Stick übertragen und booten" gearbeitet. Aber der Raspberry bootet nicht von der SSD-Platte. Also ich weiß nicht mehr was ich machen soll! Auch die SD-Karte bootet micht mehr, was ja nicht so schlimm ist.

    Hat jemand soetwas schon gehabt? Werde noch daran arbeiten.


    Grüße,

    Reinhold Kwauka

  • Tipp von mir....ich habe hier schon einen Thread mit über 120 posts gestartet.....am Ende ist es der SSD->USB Adapter!! Meistens ist es so das dieser nicht mit dem Pi kompatibel ist.

    Probieren geht über studieren