[Tutorial] Eine vollständige Gladys-Installation auf ein USB-Laufwerk übertragen

Hallo!
Ich habe gerade den Transfer meiner gesamten Gladys-Installation von einer SD-Karte auf eine externe USB-Festplatte (als SSD) durchgeführt, und da ich bei meiner « nicht einfachen » Konfiguration einiges durchmachen musste, schlage ich Ihnen ein kleines, vollständiges Tutorial vor…

  1. Vorwort

Ich verwende einen Raspberry Pi 4. Es kann Unterschiede bei anderen Versionen geben!
Ich hatte Probleme wegen der zu schwachen Stromversorgung der USB-Ports. Ein USB-Hub mit externer Stromversorgung wird dringend empfohlen!

Es gibt zwei Szenarien:

  • Sie haben nur Gladys zu übertragen: Folgen Sie den ersten 4 Schritten
  • Ihre Installation umfasst andere Dinge (Kodi, Samba, Kameras…): Das ist die Lösung, die hier entwickelt wird. Wir werden:
    a. Die Boot-Sequenz auf dem Pi konfigurieren;
    b. rpi-clone installieren;
    c. Eine erste Kopie der SD-Karte erstellen (um die notwendigen Partitionen zu erstellen);
    d. Die Größe der Partitionen ändern, um eine « Data »-Partition auf der USB-Festplatte hinzuzufügen.
  1. Konfigurieren der Boot-Sequenz auf dem Pi

Dazu müssen Sie sich per SSH mit dem Raspberry verbinden (siehe hier wenn Sie das nicht wissen).
Zuerst aktualisieren wir den Pi. Geben Sie den Befehl ein:

sudo apt update && sudo apt upgrade -y 

Starten Sie dann das Tool « raspi-config » über den Befehl:

sudo raspi-config 

Navigieren Sie mit den Pfeiltasten zu « 6 Advanced Options » → « A7 Bootloader version » → « E1 Latest… »
Wenn das Tool Sie fragt, ob Sie die Konfiguration zurücksetzen möchten, sagen Sie « nein » und auch nicht für den Neustart, da wir die Gelegenheit nutzen werden, um die Boot-Sequenz des Pi zu ändern. Navigieren Sie also zu « 6 Advanced Options » → « A6 Boot Order », um « B2 USB Boot » auszuwählen.

  1. Installieren von rpi-clone

Immer noch per SSH, werden wir das Skript « rpi-clone » installieren. Dazu führen Sie die folgenden vier Befehle nacheinander aus:

sudo apt install git
git clone https://github.com/billw2/rpi-clone.git
cd rpi-clone
sudo cp rpi-clone rpi-clone-setup /usr/local/sbin

Falls noch nicht geschehen, verbinden Sie Ihre externe Festplatte mit Ihrem Raspberry.

  1. Erstellen einer ersten Kopie der SD-Karte (um die notwendigen Partitionen zu erstellen)
    Wir stoppen die laufenden Dienste:
sudo service mysql stop
sudo service cron stop
sudo service apache2 stop
sudo service docker stop
sudo service kodi stop //falls kodi installiert ist

Und alle anderen, die Sie hinzugefügt haben könnten…
Anschließend gibt es zwei Szenarien:

  • Der häufigste Fall: Sie haben nur eine externe Festplatte an Ihren Raspberry angeschlossen.
    Immer noch per SSH, geben Sie den Befehl ein:
sudo rpi-clone sda -f
  • Sie haben mehrere externe Festplatten an Ihren Raspberry angeschlossen.
    In diesem Fall müssen Sie zunächst die Festplatte identifizieren, auf der Sie booten können. Dazu geben Sie den folgenden Befehl ein und sammeln die notwendige Information, d.h. « sda », « sdb », « sdc » usw. Diese Information integrieren Sie in den im vorherigen Punkt vorgeschlagenen Befehl…
sudo lsblk -o UUID,NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,MODEL

Das war’s (außer wenn Sie die Partitionen neu dimensionieren möchten, in diesem Fall gehen Sie zum nächsten Schritt), Gladys ist jetzt vollständig auf Ihre externe Festplatte migriert! Keine beschädigten SD-Karten mehr! Sie können den Pi jetzt neu starten (Sie können die SD-Karte entfernen oder sie drin lassen, sie wird nicht mehr gebraucht, außer wenn Sie gelegentlich ein Backup machen wollen…) indem Sie eingeben:

sudo reboot 

Achtung! Für den nächsten Schritt muss der Pi nicht neu gestartet worden sein oder von der SD-Karte gestartet worden sein!
5. Ändern der Partitionengrößen, um eine « Data »-Partition auf der USB-Festplatte hinzuzufügen.

Normalerweise haben externe Festplatten eine viel größere Kapazität als SD-Karten, die wir nutzen können. Wenn aus irgendeinem Grund ein Problem mit einer der Systempartitionen auftritt, können alle Daten beschädigt werden und eine vollständige Neuinstallation kann notwendig werden.
Ich schlage Ihnen daher vor:

  • Die von rpi-clone erstellte Systempartition neu zu dimensionieren
  • Eine neue « Data »-Partition zu erstellen, die für zusätzliche Datenspeicherung, Freigaben, Backups usw. verwendet wird.

Achtung! Dies erfordert Manipulationen, die die Daten beschädigen können. Führen Sie diese mit Vorsicht durch!
a. Führen Sie den Befehl aus (wobei sda der Pfad zu Ihrem USB-Laufwerk ist)

sudo cfdisk /dev/sda

Wählen Sie dann die Zeile /dev/sda2 und wählen Sie die Option « Resize »

Geben Sie die gewünschte neue Größe ein (etwa 20 Gigabyte sind mehr als ausreichend (6G Mindest!))
Gehen Sie dann zur letzten Zeile (Free space) und wählen Sie die Option « New ». Geben Sie die gewünschte Größe ein (standardmäßig schlägt es vor, alles zu setzen).
Schließlich klicken Sie auf « Write » und geben Sie « yes » ein (ganz, ja!)
Das ist noch nicht alles!
Jetzt müssen Sie das alles formatieren…
Geben Sie den Befehl ein

sudo mkfs.ext4 /dev/sda2
sudo mkfs.ntfs -f /dev/sda3

(ich habe ntfs für meine Freigabepartition gewählt, um darauf von einem anderen Gerät aus zugreifen zu können, falls nötig)
Zum Abschluss…
Da wir gerade die Partition formatiert haben, die wir von der SD-Karte kopiert haben, müssen wir eine Kopie davon mit rpi-clone erneut erstellen:

sudo rpi-clone sda

Sie werden feststellen, dass diesmal kein Argument -f vorhanden ist, das die Erstellung der Partitionen erzwingt, was wir nicht mehr wollen!
Das war’s!

sudo reboot

Nach dem Neustart müssen Sie nur noch die neue Partition in einem Ordner mounten, den Sie erstellt haben (bei mir ist es « Musik »)

sudo mkdir /media/Musik
sudo mount /dev/sda3 /media/Musik

Und wenn Sie möchten, dass dies beim Starten des Pi automatisch geschieht, müssen Sie zunächst die UUID der Partition abrufen. Dazu geben Sie den folgenden Befehl ein und kopieren die entsprechende Nummer:

sudo lsblk -o UUID,NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,MODEL

Dann bearbeiten Sie die Datei « fstab » und fügen Sie die Nummer ein, die Sie mit den notwendigen Informationen (Mount-Punkt und Dateisystemtyp) abgerufen haben

sudo nano /etc/fstab

UUID=28C537D72EC5ADAD /media/Musik ntfs defaults,auto,users,rw,nofail,umask=000,x-systemd.device-timeout=30 0 0 
  1. Bonus: Verwenden der SD-Karte als Backup
    Ich weiß, es ist absurd, aber da sie da ist und nicht mehr gebraucht wird, schlage ich vor, sie für Backup-Zwecke Ihres Systems zu verwenden, denn das ist sehr einfach!
    Es reicht, per SSH den folgenden Befehl einzugeben, NACHDEM die Dienste gestoppt wurden
sudo rpi-clone mmcblk0 -f2

Und das war’s! Sie haben eine bootfähige Kopie Ihres Systems (zum Verleihen an Freunde, damit sie Gladys entdecken können! :wink: )
Vergewissern Sie sich, dass Sie Ihren Pi neu starten, denn… Sie haben gerade Dienste wie Docker gestoppt, die Gladys laufen lassen! :smiling_imp:

Danke, dass du deine Erfahrung teilst, ich bin sicher, das wird anderen helfen! :slightly_smiling_face:

Ich habe gerade Gladys auf eine PNY CS900 SSD auf einem Raspberry Pi 3B+ migriert
Die Unterschiede zum Raspberry Pi 4:
Der Abschnitt « 2. Bootsequenz auf dem Pi konfigurieren » wird durch den folgenden ersetzt:

Raspbian aktualisieren:
Man führt kein sudo apt-get update aus, sondern den folgenden Befehl, da sich der Wert von ‹ Suite › im Repository geändert hat

sudo apt-get update --allow-releaseinfo-change
sudo apt upgrade -y

Ändern des Startlaufwerks:
Beim Pi 3 gibt es im raspi-config kein Menü Advanced Options
Man bearbeitet also die Datei config.txt, um am Ende die Zeile « program_usb_boot_mode=1 » hinzuzufügen:

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
Man erhält die Bestätigung in der nächsten Zeile…
image

Man kann auch den Befehl verwenden:

sudo nano /boot/config.txt

Es ist permanent, aber es ist möglich, den Raspberry Pi weiterhin von einer SD-Karte starten zu lassen, indem man diese Zeile löscht und darauf achtet, dass keine leere Zeile am Ende der Datei steht.

Um zu überprüfen, dass alles in Ordnung ist, kann man das Register 17 des OTP (One-Time Programmable, das den Nur-Lese-Speicher bezeichnet, der nur einmal programmiert werden kann) anzeigen. Dazu verwendet man den folgenden Befehl:

vcgencmd otp_dump | grep 17:
Er sollte den Wert 17:3020000a zurückgeben, was anzeigt, dass alles gut gegangen ist

Danach geht es mit Abschnitt 3 weiter.

Hallo!
Ich kann mich nicht erinnern, dass ich zwischen diesen beiden Optionen wählen musste.
Was meinst du mit ‹ Ich kann die Installation nicht abschließen ›? Was passiert? Gibt es eine Fehlermeldung?

Hallo, GBoulvin
Nach stundenlangem Herumgebastel habe ich es geschafft, bis zum Ende zu kommen; aber ich kann nicht vom SSD booten, wenn ich die SD-Karte entferne. Wenn ich die SD-Karte mit dem SSD belasse, läuft Gladys extrem langsam.
Hier sind die erstellten Partitionen


Übrigens habe ich einen Rpi3B+. Ist es normal, dass es keine „boot“-Kennzeichnung auf „sda1“ gibt?

Hallo,
Für diejenigen, die kein Raspberry haben, aber einen alten 64-Bit-PC oder Laptop besitzen, ist OpenMediaVault ideal, um GLadys Docker in einer Stunde zu installieren und zu testen. Eine 16-GB-SD-Karte oder SSD reicht aus (OMV Bootable + Docker Gladys + andere…)
OMV: Debian 10-Basis, NAS mit Docker-Verwaltung, viele Tutorials und eine gute Community im Internet, einfache System-Sicherung mit Snapshot64 oder Acronis True Image.

https://sourceforge.net/projects/openmediavault/files/5.6.13/openmediavault_5.6.13-amd64.iso

Für einen RPi 3, schau dir die Nachricht von @gaetanb76 oben an, dort ist der Vorgang detailliert beschrieben :wink:

Du hast alles auf der SD-Karte da

Ansonsten ist das YouTube-Tutorial von @pierre-gilles ultra einfach

Guten Abend, vielen Dank für eure Antworten
GBoulvin
ich glaube, ich habe das Problem eingekreist, es liegt an meiner SSD, denn ich boote gut von einem USB-Stick, und ich habe einen USB-Hub mit der Festplatte oder mit dem Stick angeschlossen, aber jetzt funktioniert es nicht mehr, ich denke, man muss die SSD mit dem Pfad des Hubs ansprechen (ich bin mir nicht sicher :thinking:).
VonOx
ich habe das Verfahren getestet, aber es hat nicht funktioniert (ist das nicht nur für den RPI4, ich habe einen 3B+, und in der read.me wird nur vom PI4 gesprochen
vielen Dank euch

Link zum Tutorial von @pierre-gilles