sbcs:raspberry_pi:bootdatentraeger_klonen_pi_4_5
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| sbcs:raspberry_pi:bootdatentraeger_klonen_pi_4_5 [2024/01/24 23:02] – removed - external edit (Unknown date) 127.0.0.1 | sbcs:raspberry_pi:bootdatentraeger_klonen_pi_4_5 [2024/01/24 23:11] (current) – [YouTube Video #84] dominik | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Bootdatenträger klonen (Pi 4/5) ====== | ||
| + | Diese Anleitung sollte es ermöglichen, | ||
| + | > **Hinweis** \\ 1) Die Anleitung ist auf dem Pi 4 noch ungetestet. Ebenso auf dem Pi 5 mit NVMe's > 512GB. \\ 2) Die Anleitung funktioniert (zumindest beim Pi 5) auch mit einem Kloning von SD-Karte zu USB-Stick. Theoretisch sollte man in alle Richtungen klonen können (SD > USB, SD > NVMe, USB > SD, USB > NVMe, NVMe > SD, NVMe > USB). \\ 3) Aufpassen bei dem Quell- und Ziellaufwerk. Man kann sich ganz schnell das bestehende System zerschießen :-) (Leidvolle Eigenerfahrung ...) | ||
| + | |||
| + | ===== YouTube Video #84 ===== | ||
| + | {{youtube> | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ===== NVMe SSD's > 2 TB ===== | ||
| + | Wenn ihr eine NVMe SSD verwendet, die mehr als 2 TB an Speicher hat, dann funktioniert das Tool '' | ||
| + | |||
| + | Wenn ihr das '' | ||
| + | |||
| + | Das Klonen ist in dem Fall auch nicht erfolgreich! | ||
| + | |||
| + | ===== System vorbereiten ===== | ||
| + | * Es muss der aktuelle Bootloader auf dem Pi 5 installiert sein! Siehe dazu [[http:// | ||
| + | * Check mittels '' | ||
| + | * Evtl. muss auch die Bootreihenfolge (Pi 5) angepasst werden. Siehe dazu [[http:// | ||
| + | * ein paar Tools installieren auf dem zu klonenden System \\ '' | ||
| + | * Dienste stoppen die ggf. eine größeren IO Traffic auf einem Massenspeicher generieren könnten \\ Hier in paar Beispiele: \\ | ||
| + | * Klipper '' | ||
| + | * Datenbanken MySQL '' | ||
| + | * Webserver Apache '' | ||
| + | * Samba Service '' | ||
| + | * Nicht vergessen auf dem Klon später die Dienste wieder zu starten ;-) | ||
| + | * Prüfen was ggf. hohe IO Last erzeugt geht mittels '' | ||
| + | |||
| + | ===== neues Medium vorbereiten ===== | ||
| + | > **ACHTUNG** \\ <color # | ||
| + | |||
| + | > **Hinweis** \\ In diesem Beispiel wird auf einem Pi 5 von einem USB-Stick (Bootmedium) auf eine SD-Karte geklont! | ||
| + | |||
| + | * den Pi booten und das neue Laufwerk mit anschließen | ||
| + | * aktuelles Bootmedium (also das Laufwerk, was wir auf das neue Medium klonen wollen) ermitteln \\ '' | ||
| + | pi@Pi5Test: | ||
| + | NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS | ||
| + | sda | ||
| + | ├─sda1 | ||
| + | └─sda2 | ||
| + | mmcblk0 | ||
| + | ├─mmcblk0p1 179:1 0 512M 0 part / | ||
| + | └─mmcblk0p2 179:2 0 58.4G 0 part / | ||
| + | </ | ||
| + | * Das Bootmedium ist immer das mit dem " | ||
| + | * Das Medium, auf das wir klonen wollen, können wir ebenfalls in der '' | ||
| + | * Ergebnis bis hier: | ||
| + | * **Quelllaufwerk : sda** | ||
| + | * **Ziellaufwerk : mmcblk0** | ||
| + | * Ziellaufwerk enthält Partitionen -> Partitionen aushängen | ||
| + | * Unmount der Partitionen auf dem Ziellaufwerk | ||
| + | * '' | ||
| + | * '' | ||
| + | * Neue Partitionen anlegen (inkl. Umstieg auf GPT als Partitionsschema) | ||
| + | * '' | ||
| + | * Es können 1-2 Meldung kommen wie z.B.: \\ '' | ||
| + | convert to GPT form or repair damage to GPT data structures, but may not | ||
| + | succeed. Use gdisk or another disk repair tool if you have a damaged GPT | ||
| + | disk.'' | ||
| + | * Jetzt in der Oberfläche die Partitionen anwählen und durch '' | ||
| + | * Nun 2 neue Partitionen anlegen jeweils über '' | ||
| + | * **Partition 1** \\ First sector -> Enter \\ Size in sectors or {KMGTP} -> 512M \\ Hex code or GUID -> 0700 \\ Enter new partition name -> bootfs | ||
| + | * Jetzt mit dem Cursor **unten auf free space** navigieren! | ||
| + | * **Partition 2** \\ First sector -> Enter \\ Size in sectors or {KMGTP} -> Enter \\ Hex code or GUID -> Enter \\ Enter new partition name -> rootfs | ||
| + | * Das sollte dann in etwa so aussehen: \\ < | ||
| + | Part. # | ||
| + | ---------------------------------------------------------------- | ||
| + | 1007.0 KiB free space | ||
| + | | ||
| + | | ||
| + | 1007.5 KiB free space | ||
| + | </ | ||
| + | * Jetzt auf '' | ||
| + | * Über '' | ||
| + | * Prüfen kann man das Ziellaufwerk jetzt nochmal mit '' | ||
| + | * Jetzt müssen die Partitionen noch formatiert werden ... | ||
| + | * '' | ||
| + | * '' | ||
| + | * **Hinweis: | ||
| + | |||
| + | Prüfen ob das neue Medium mit einem GPT Partitionsschema arbeitet. (Wichtig für Medien > 2TB Speicherkapazität): | ||
| + | * '' | ||
| + | pi@Pi5Test: | ||
| + | Disk model: GIGABYTE GP-GSM2NE3256GNTD | ||
| + | Units: sectors of 1 * 512 = 512 bytes | ||
| + | Sector size (logical/ | ||
| + | I/O size (minimum/ | ||
| + | Disklabel type: gpt | ||
| + | Disk identifier: ADB4BD3E-02B3-4BCF-81E4-B00633730E50 | ||
| + | </ | ||
| + | |||
| + | ===== gparted (grafisch) ===== | ||
| + | Wer das Partitionieren grafisch erledigen möchte kann das mit MobaXTerm so machen: | ||
| + | * '' | ||
| + | * '' | ||
| + | * Neues Medium oben rechts auswählen | ||
| + | * alle bestehenden Partitionen löschen | ||
| + | * mit dem grünen Haken übernehmen | ||
| + | * umstellen auf GPT Partitionsschema | ||
| + | * Device -> Create Partition Table ... -> gpt | ||
| + | * neue FAT32 Partition anlegen mit 512MB (Label bootfs) | ||
| + | * neue ext4 Partition anlegen mit dem Restspeicherplatz (Label rootfs) | ||
| + | * mit dem grünen Haken übernehmen | ||
| + | * fertig | ||
| + | |||
| + | ===== Mounting ===== | ||
| + | Für den Klonvorgang müssen die neuen Partionen gemountet werden: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ===== Klonen ===== | ||
| + | In diesem Schritt werden die Daten dateibasiert auf den Klon übertragen... | ||
| + | * Boot Partition klonen \\ **BookWorm Image** \\ '' | ||
| + | * System Partition klonen \\ '' | ||
| + | |||
| + | Man kann jetzt '' | ||
| + | pi@Pi5Test: | ||
| + | Filesystem | ||
| + | udev 1.9G | ||
| + | tmpfs | ||
| + | / | ||
| + | tmpfs | ||
| + | tmpfs | ||
| + | / | ||
| + | tmpfs | ||
| + | / | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | > **Hinweis** \\ Beim BullsEye ist /boot eine eigene FAT32 Partition. Bei BookWorm ist /boot aber mit im Root Filesystem. Dort wird dann / | ||
| + | |||
| + | ===== fstab abpassen ===== | ||
| + | Jetzt muss auf dem Klon Laufwerk noch die Datei '' | ||
| + | |||
| + | * Neue PARTUUID' | ||
| + | pi@Pi5Test: | ||
| + | NAME FSTYPE | ||
| + | sda 28.6G | ||
| + | ├─sda1 | ||
| + | └─sda2 | ||
| + | mmcblk0 | ||
| + | ├─mmcblk0p1 vfat 512M / | ||
| + | └─mmcblk0p2 ext4 58.4G / | ||
| + | </ | ||
| + | * Wichtig sind die PARTUUID' | ||
| + | * '' | ||
| + | * neue PARTUUID s eintragen für beide Partitionen | ||
| + | * Alt \\ < | ||
| + | proc /proc | ||
| + | PARTUUID=9c1b969d-01 | ||
| + | PARTUUID=9c1b969d-02 | ||
| + | # a swapfile is not a swap partition, no line here | ||
| + | # | ||
| + | </ | ||
| + | * Neu \\ < | ||
| + | proc /proc | ||
| + | PARTUUID=4c5ca341-4453-47a6-8635-b20e4380b4e7 | ||
| + | PARTUUID=78f45d12-57af-496f-9288-066e8694eee8 | ||
| + | # a swapfile is not a swap partition, no line here | ||
| + | # | ||
| + | </ | ||
| + | * Editor beenden mit '' | ||
| + | |||
| + | ===== cmdline.txt abpassen ===== | ||
| + | Die Datei '' | ||
| + | |||
| + | * '' | ||
| + | * Alt \\ '' | ||
| + | * Neu \\ '' | ||
| + | * Editor beenden mit '' | ||
| + | |||
| + | ===== Finalisierung ===== | ||
| + | * '' | ||
| + | * '' | ||
| + | * Das alte Bootmedium entfernen (in diesem Beispiel der USB-Stick) | ||
| + | * Raspberry Pi booten und hoffen das er läuft 8-) | ||
| + | |||
| + | ===== Kontrolle ===== | ||
| + | Wer Langeweile hat kann auch noch die Differenzen analysieren :-P \\ '' | ||
| + | |||
| + | ===== Probleme ===== | ||
| + | |||
| + | ==== NVMe gebootet ==== | ||
| + | Wenn die Bootreihenfolge auf NVMe, USB, SD eingestellt ist und von der NVMe gebootet wurde ... | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== cmdline.txt ==== | ||
| + | * cmdline.txt nicht angepasst \\ {{: | ||
| + | |||
| + | ==== Host SSH Keys ==== | ||
| + | * Gleicher Host SSH Keys \\ Zum Erneuern der ssh-Host-Keys löscht man auf dem Server zunächst die bestehenden Host-Keys und generiert einen Satz neue Keys | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
