Letzte Änderung: 12.02.2022 Letztes Update in Fett und Rot
Dieses Tutorial ist noch nicht ganz fertig, ich muss noch ein paar Kapitel nachtragen.
Ein weiterer Anlaufpunkt sind die Seiten von James A. Chambers:
https://jamesachambers.com/raspberry-pi-4…d-flash-drives/
https://jamesachambers.com/new-raspberry-…ork-boot-guide/
Noch ein Hinweis: Bitte kein sudo rpi-update ausführen.
Damit wird ein Entwicklerkernel installiert, der ziemlich merkwürdige Effekte haben kann,
man sucht sich manchmal einen Wolf bei der Fehlersuche.
Es fehlt noch das Resize auf volle Plattengröße, das Recovery und warscheinlich noch einiges mehr.
Also ein erster Entwurf.
1. Kapitel Vorbereitung
2. Kapitel Updaten übers Betriebssystem
3. Kapitel Updaten über die SD-Karte
4. Kapitel Von der SD-Karte auf die SSD
5. Kapitel Bootloader Konfiguration ändern
6. Kapitel Fehlerhinweise und Recoveryguide
7. Das Geheimnis der leeren MicroSD-Karte
8. Wenn die Partition /boot leer ist
9. Die Installation eines OS mit leerer SD-Karte
Nachdem es sehr viele Schwierigkeiten mit dem USB-Boot des RaspberryPi 4B gibt
habe ich mal zusammengefasst was man tun kann, um den Start von SSD hinzubekommen.
1. Vorbereitung
Zuerst benötigt man Buster auf eine SD-Karte.
Auf der Seite: https://downloads.raspberrypi.org/ findet man die Ordner
für 32Bit:
raspios_lite_armhf/images/
raspios_armhf/images/
raspios_lite_armhf/images/
und für 64Bit (beta):
raspios_lite_arm64/images/
raspios_arm64/images/
Ein Image davon auf die SD-Karte flashen und ohne SSD erstmal booten.
Ein kleines bißchen einrichten (Sprache und Tastatur) und dann erstmal ein:
sudo apt update && sudo apt full-upgrade
Warscheinlich ist dann erstmal ein reboot fällig.
2. Updaten übers Betriebssystem
Dann überprüft ihr ob der Bootloader aktuell ist:
$ sudo rpi-eeprom-update
BCM2711 detected
Dedicated VL805 EEPROM detected
BOOTLOADER: up-to-date
CURRENT: Do 16. Apr 17:11:26 UTC 2020 (1587057086)
LATEST: Do 16. Apr 17:11:26 UTC 2020 (1587057086)
FW DIR: /lib/firmware/raspberrypi/bootloader/critical
VL805: up-to-date
CURRENT: 000137ad
LATEST: 000137ad
Dieser ist es nicht, er sollte auf "stable" (hier "critical") stehen, also müsst ihr ihn aktualisieren.
Dazu muss der Eintrag in einer Datei geändert werden:
sudo nano /etc/default/rpi-eeprom-update
Dort ändert ihr die Zeile von:
FIRMWARE_RELEASE_STATUS="critical"
in
FIRMWARE_RELEASE_STATUS="stable"
und abspeichern.
Der Bootloader wird aktualisiert, wenn ihr folgenden Befehl ausführt:
sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/stable/pieeprom-2020-07-31.bin
oder
sudo rpi-eeprom-update -a
Anmerkung: Der Name des Bootloaders "pieeprom-2020-07-31.bin" könnte sich nach diversen Upgrades geändert haben.
Jetzt wäre ein weiteres reboot angebracht und danach solltet ihr das Ergebnis überprüfen:
$ sudo rpi-eeprom-update
BCM2711 detected
Dedicated VL805 EEPROM detected
BOOTLOADER: up-to-date
CURRENT: Fr 31. Jul 13:43:39 UTC 2020 (1596203019)
LATEST: Fr 31. Jul 13:43:39 UTC 2020 (1596203019)
FW DIR: /lib/firmware/raspberrypi/bootloader/stable
VL805: up-to-date
CURRENT: 000138a1
LATEST: 000138a1
Wie man sieht, ist jetzt der Bootloader "up-to-date" und steht auf "stable".
Jetzt kommt noch ein Check ob die Bootkonfiguration richtig ist:
vcgencmd bootloader_config
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
DHCP_TIMEOUT=45000
DHCP_REQ_TIMEOUT=4000
TFTP_FILE_TIMEOUT=30000
ENABLE_SELF_UPDATE=1
DISABLE_HDMI=0
BOOT_ORDER=0xf41
Display More
Die Boot-Order findet man hier: https://www.raspberrypi.org/documentation/…oader_config.md
Ab jetzt ist der Raspberry für den USB-Boot vorbereitet.
Nun kommt der nächste Schritt:
Flasht dasselbe Image auf die SSD, entfernt die SD-Karte und versucht von SSD zu booten.
Sollte das klappen, müßt ihr Buster neu einrichten und ganz wichtig:
Wichtig: Den Eintrag: /etc/default/rpi-eeprom-update auf "stable" auf der SSD überprüfen.
3. Updaten über die SD-Karte
Es geht auch einfacher wie von PcDoc78 in diesem Beitrag vorgeschlagen.
Alle Releases findet man hier: https://github.com/raspberrypi/rpi-eeprom/releases
Dazu muss man lediglich den Inhalt der Zip-Datei auf eine VFAT-formatierte SD-Karte schreiben.
Den Raspberry herunterfahren, ausschalten und die SD-Karte mit dem Betriebssystem (BS) entnehmen.
Dann die VFAT SD-Karte einsetzen und den Raspberry wieder einschalten.
Die grüne LED fängt kurz darauf an zu leuchten und wenn alles geklappt hat schnell zu blinken.
Jetzt kann man den Raspberry wieder ausschalten und die BS SD-Karte wieder einsetzen.
Wenn man dann den Eintrag /etc/default/rpi-eeprom-update auf "stable" ändert,
kann man sich dann über die Meldung: BOOTLOADER: up-to-date freuen.
4. Von der SD-Karte auf die SSD
Ich habe gerade einen weiteren Weg probiert um das Betriebssystem von der SD-Karte auf die SSD zu bekommen.
Zuerst das Updaten des Bootloaders (Kapitel 2)
Dann nehme man einfach den SD Card Copier des Betriebssystems.
Von Gerät kopieren: Hier die SD-Karte auswählen
Auf Gerät kopieren: Hier die SSD oder USB-Stick auswählen
New Partition UUID ankreuzen
Und dann auf Start klicken.
Das wars, das Programm kopiert die SD-Karte auf die SSD, passt nebenbei die /boot/cmdline und die /etc/fstab
auf die neue PARTUUID an und resized die root-Partition.
Wesentlich schneller und einfacher als meine bisherige "Krücke".
Das klappte sogar aus dem laufenden Betriebssystem (Buster64, light mit Mate-Desktop) heraus.
Und bootete sofort von SSD. Ich würde sagen, DAU-Geeignet, einfacher geht es kaum.
Eine weitere Beschreibung findet sich hier: RE: Raspberry Pi4 4GB SSD Boot
5. Bootloader Konfiguration ändern
In einigen Fällen ist es nötig die Konfiguration zu ändern.
Wie sie aussieht bekommt man mit vcgencmd bootloader_config heraus:
sudo vcgencmd bootloader_config
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
DHCP_TIMEOUT=45000
DHCP_REQ_TIMEOUT=4000
TFTP_FILE_TIMEOUT=30000
TFTP_IP=
TFTP_PREFIX=0
BOOT_ORDER=0x1
SD_BOOT_MAX_RETRIES=3
NET_BOOT_MAX_RETRIES=5
[none]
FREEZE_VERSION=0
Display More
Dieser Raspberry wird beharrlich auf seiner SD-Karte bestehen, warum steht in der Zeile BOOT_ORDER=0x1
Wenn man die Dokumentation von Raspberry.org genauer durchliest, findet man eine Beschreibung der BOOT_ORDER:
Wert Mode Beschreibung
0x1 SD CARD Booten von der SD-Karte (oder eMMC des Compute Modul 4)
0x2 Network Booten übers Netzwerk
0x3 USB DEV USB device boot - Doku dazu auf Github (https://github.com/raspberrypi/usbboot)
0x4 USB MSD USB mass Storage - Booten von einer USB-SSD/HDD
0xe STOP Stop und Fehleranzeige
0xf RESTART Starte mit dem ersten Eintrag im BOOT_ORDER
(bei Fehlern möge man mich korrigieren)
Für das Booten von SSD/HDD ist für die BOOT_ORDER=0x4 wichtig,
und dafür gibt es inzwischen einen einfacheren Weg das zu ändern:
sudo -E rpi-eeprom-config -e
Bei dem Aufruf wird der Editor nano mit etwa folgenden Inhalt aufgerufen:
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
DHCP_TIMEOUT=45000
DHCP_REQ_TIMEOUT=4000
TFTP_FILE_TIMEOUT=30000
TFTP_IP=
TFTP_PREFIX=0
BOOT_ORDER=0x1
SD_BOOT_MAX_RETRIES=3
NET_BOOT_MAX_RETRIES=5
[none]
FREEZE_VERSION=0
Display More
Nun kann den Eintrag auf 0x4 (Booten von USB) oder 0xf41 (erst von SSD, dann von SD) ändern.
Nano mit Strg + X und j beenden, den Adapter mit SSD/HDD in die USB3-Buchse einstecken und neu booten.
Das kann man mit sudo rpi-eeprom-update -r wieder rückgängig machen.
Mittlerweile läßt sich der Bootloader auch über den Raspberry Pi Imager wiederherstellen,
Unter Misc utility images befindet sich ein Eintrag: Raspberry Pi 4 EEPROM boot recovery
Getestet habe ich ihn aber nicht.
Auf der Seite von James A. Chambers findet sich noch mehr zu dem Thema, allerdings in Englisch.
6. Fehlerhinweise und Recoveryguide
Erstmal nur in Englisch:
https://jamesachambers.com/raspberry-pi-4…recovery-guide/
7. Das Geheimnis der leeren SD-Karte
kann ich zwar auch nicht lösen, aber der Effekt ist deutlich sichtbar:
Legende:
(100% = Load 1.0)
Einfach die kleinste MicroSD-Karte mit (Gparted) fat32 formatieren und in den Kartenslot stecken.
Wirkt sogar beim RPi3B(+)
8. Wenn die Partition /boot leer ist
Man kann erstmal unter Windows nachsehen, ob die Dateien noch vorhanden sind.
Das /boot-Laufwerk ist auch unter Windows sichtbar.
Wenn die Partition leer ist (Bis auf 5-6 Dateien), kann man die Dateien einfach wieder draufkopieren,
von einem gleichartig installierten Raspberry. Das funktioniert sowohl auf SD als auch auf SSD.
Das sind die Dateien von /boot, und die sind auch unter Windows sicht- und kopierbar.
- Hole Dir das aktuelle Image,
- kopiere das auf eine SD-Karte (Windiskimager/ Raspberry Pi Imager/...)
- Leg diese SD-Karte ein, boote davon und schließe dann die "defekte" SSD an Deinen PC an
- kopiere den Inhalt von /boot (SD) nach /media/pi/boot (SSD) (defekt)
- Wenn die /boot/cmdline.txt und die /boot/config.txt noch drauf sind, möglichst nicht überschreiben.
Den Teil kannst Du überspringen, wenn die /boot/cmdline.txt noch vorhanden ist
- boote den Raspberry von SD, schließe die SSD an den Raspberry an (Die SSD sollte dann unter /media/pi/ zu finden sein)
- ermittel die PARTUUID der SSD mit sudo blkid (warscheinlich /dev/sda*)
- passe die SSD in der /boot/cmdline.txt an (Die PARTUUID von /dev/sda2)
Unter Windows sieht man nur die Boot-Partitionen. Man kann alle Dateien von einer funktionierenden SD
auf die leere Boot-Partition von SD/SSD kopieren. Möglichst nicht die Dateien cmdline.txt und config.txt
überschreiben.
Und dann geht es hier weiter
- RPI herunterfahren, stromlos machen, SD-Karte raus und dann probieren
Hier mal eine komplette Zeile als Beispiel (Eine Zeile) und nicht übernehmen:
console=serial0,115200 console=tty1 root=PARTUUID=ea7d04d7-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles logo.nologo
9. Installation eines OS mit leerer SD-Karte
Diese Ehre gebührt Franjo G
RE: Einplatinencomputer: Neuer Bootloader für den Raspberry Pi 4 und 400 (2. Update)
Raspberry Pi 4B 8GB
Angeschlossen:
Tastatur
Maus
Lan-Kabel (unbedingt erforderlich Es werden keine Wlan-Zugangsdaten abgefragt)
Display 7" HDMI
Bootloader (BETA) auf SD geflasht.
SD in den Pi gesteckt und eingeschaltet.
Wenn der Bildschirm von Display grün wird, und die grüne LED gleichmäßig blinkt, ist der Flashvorgang erfolgreich abgeschlossen.
forum-raspberrypi.de/attachment/33863/
Den Pi vom Strom getrennt, eine leere…
MfG
Jürgen
P.S.: Kritik ist erwünscht