Raspi bootet nicht mehr von PCIe SSD

  • Hallo,

    ich habe mein System „kaputtgemacht“, obwohl ich – soweit ich es verstehe – nichts geändert habe. Das System bootet im Moment nicht mehr.

    Ich hatte einen RasPi 5 mit einem laufenden RaspPi OS Lite auf einer PCIe HatDrive SSD. Alles hat einwandfrei funktioniert, aber jetzt bootet er nicht mehr.

    Info:

    • Boot-Reihenfolge ist f416:
      1. PCIe
      2. SD-Karte
      3. USB
    • Angeschlossene Hardware:
      • PCIe SSD (RasPi OS Lite) -> bootet nicht mehr
      • SD-Karte (RasPi OS Desktop -> wurde genutzt um OS auf externe USB-SSD zu imagen
      • Externe USB-SSD -> sollte als backup der PCIe SSD dienen, falls diese Probleme macht

    Ich wollte ein vollständiges Backup des Systems mit allen Daten auf der externen USB-SSD machen. Am Ende sollte es auch möglich sein, von dieser externen SSD zu booten, weshalb der erste logische Schritt für mich war, das gleiche OS auf die externe USB-SSD zu bringen.

    Folgende Schritte habe ich im Allgemeinen durchgeführt:

    1. Raspi heruntergefahren (OS lief von der PCIe-SSD)
    2. PCIe-SSD hardwareseitig ausgebaut
    3. Raspi wieder gestartet, der jetzt von der SD-Karte mit einem RasPi OS Desktop gebootet hat
    4. Mit dem Raspberry Imager das Raspberry Lite OS auf die externe USB-SSD geschrieben
    5. Raspi heruntergefahren
    6. SD-Karte hardwareseitig entfernt
    7. Raspi neu gestartet, jetzt von der externen USB-SSD gebootet
    8. Über Putty den Befehl sudo apt update && sudo apt upgrade -y ausgeführt um das OS auf den aktuellsten Stand zu bringen
    9. Raspi mit der externen USB-SSD neu gestartet
    10. Raspi ausgeschaltet
    11. Die PCIe-SSD hardwareseitig wieder eingebaut
    12. Raspi eingeschaltet

    → Jetzt bootet er nicht mehr. Er sollte von der PCIe SSD booten.

    Wenn ich die Boot-Reihenfolge auf f461 ändere und die SD-Karte wieder einsetze, wird die PCIe-SSD als externes Laufwerk angezeigt – es liegt also kein Hardwareproblem mit der PCIe-SSD vor.

    Soweit ich weiß, verändert der Befehl sudo apt update && sudo apt upgrade -y nur das Betriebssystem auf dem jeweiligen Medium, von dem gebootet wurde – in meinem Fall die externe USB-SSD. Er sollte nichts am EEPROM des Raspi verändern. Deshalb gehe ich davon aus, dass sich durch das Einrichten der externen SSD nichts an der PCIe-SSD oder dem EEPROM des Raspi geändert hat.

    Kann mir jemand sagen, was das Problem sein könnte? Ich bin etwas gestresst, da auf der PCIe-SSD meine Nextcloud läuft.

    Vielen Dank im Voraus!

    Chris

  • Go to Best Answer
  • Wow, das ist ziemlich umständlich. Wenn die Reihenfolge f641 gewesen wäre, dann hättest Du (ohne abklemmen der PCIe-SSD) die jeweiligen Datenträger nach dem Booten einstecken können, also ohne davon zu booten.

    Was ist die aktuelle Reihenfolge und was ist außer der PCIe-SSD noch angeschlossen?

    //Edit

    Fast übersehen... Willkommen im Forum! :green_smile:

  • Wenn dasselbe Image sich auf der PCIe-NVME, USB-SSD, SD befindet, hast Du drei idente UUIDs, PARTUUIDs (und LABELs), sodass das "unique" (einmalig) nicht erfüllt ist und das System nicht weiß, von welcher Partition es starten soll.

    Wenn Du von der SD startest und danach die USB-SSD anstecktst, kannst Du die Eimaligkeit an "lsblk -o name,label,uuid,partuuid" ablesen.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Danke für die schnellen Antworten!

    hyle,

    Ja, das ist wohl wahr :S. Hintergrund war, dass ich an dem ursprünglichen System (funktionierende PCIe SSD) möglichst nichts ändern wollte weshalb ich lieber die PCIe SSD ausgebaut hab (auch um nicht ausversehen auf dieser etwas zu ändern...hab da schlechte Erfahrungen).

    Aktuell ist f416 mit PCIe SSD angeschlossen und SD Karte gesteckt. Externe USB SSD ist nicht angeschlossen. Er bootet nicht (hängt wohl beim Versuch von der PCIe SSD zu booten und kommt gar nicht zum Versuch von der SD Karte zu booten). Aber auch ohne gesteckter SD Karte bootet er nicht.


    RTFM ich denke das dürfte nur auftreten, wenn ich auch zwei identische Geräte gesteckt habe. Also im Fall, dass ich f416 und nur die PCIe SSD gesteckt ist dürfte das Problem nicht auftreten, oder?

    Viele Grüße

  • Folgende Ausgaben:

    Bei f416 und nicht gesteckter PCIe SSD, boot von SD Karte und wenn gebootet ist die USB-SSD gesteckt:


    Bei f461, gesteckter PCIe SSD, gesteckter SD Karte und gesteckter USB-SSD:

  • Folgende Ausgabe:


    Was meint ihr denn zu der Annahme, dass das OS Update sudo apt update && sudo apt upgrade -y doch irgendwas direkt am EEPROM verändert hat und nicht nur auf der externen USB-SSD von der damals gebootet wurde?

  • Es wäre schon möglich, dass ein rpi-eeprom-config-Update mitgekommen ist, aber das ändert ja nichts an der Bootreihenfolge.

    Was ist denn bei Dir die Ausgabe von rpi-eeprom-config?

    BTW: Hast Du immer den Netzstecker gezogen, bevor die PCIe-SSD abgeklemmt oder wieder angeschlossen wurde?

  • Du hast zwar verschiedene UUIDs und PARTUUIDs, aber drei je gleichlautende LABELs.

    D.h., dass bei einem Mount einer Partition (die im Grafiksystem im Automount über LABEL primär funktioniert) Du nur über die PARTUUID, oder die UUID durch einen Eintrag in die jeweilige /etc/fstab "automounten" kannst. Das Light-OS auf Deiner NVME braucht jedenfalls die Einträge in /etc/fstab, da es ja kein Grafiksystem besitzt. Das Automount im Grafiksystem kannst Du im Filebrowser über Einstellungen - Datenträgerverwaltung abschalten.

    Dazu kommt, dass Du eine PCIe-NVME nur dann betreiben kannst, wenn auch das passende Modul dazu mit einem "dtoverlay= " in die config.txt aufgenommen wird, falls die automatische Initialisierung (mangels angeschlossener NVME ) versagt.

    Es hilft ungemein in die Originaldokumentation reinzuschauen.

    Raspberry Pi Documentation
    The official documentation for Raspberry Pi computers and microcontrollers
    www.raspberrypi.com


    Servus !

    RTFM = Read The Factory Manual, oder so

    Edited once, last by RTFM (May 25, 2025 at 7:14 PM).

  • Erneut danke für eure Rückmeldungen!


    hyle Im Moment folgende Ausgabe, da ich von der SD Karte booten will.

    Code
    XXX@raspberrypi:~ $ rpi-eeprom-config
    
    [all]
    BOOT_UART=1
    BOOT_ORDER=0xf461
    NET_INSTALL_AT_POWER_ON=1

    Wenn ich von der PCIe SSD booten will (und auch die SD Karte entferne) folgende Ausgabe:

    Code
    XXX@raspberrypi:~ $ rpi-eeprom-config
    [all]
    BOOT_UART=1
    BOOT_ORDER=0xf416
    NET_INSTALL_AT_POWER_ON=1

    Was ich gemacht habe, bevor ich das System auf der PCIe SSD in Betrieb genommen hatte (also lange bevor das jetzige Problem aufgetreten ist und danach hat es ja erstmal alles funktioniert) war noch ein EEPROM-Update mittels sudo rpi-eeprom-update -a. Aber das muss ich ja jetzt eigentlich nicht nochmals machen, da die Konfiguration mit PCIe SSD und dem jetzigen EEPROM Stand bereits lief, oder?

    Ja, ich habe immer die 230V über eine schaltbare Steckdose komplett weggenommen, bevor ich die PCIe SSD gesteckt oder rausgezogen habe.


    RTFM

    Ich versuche deine Ideen mal für mich zusammenzufassen und zu hinterfragen. Ich verstehe es noch nicht so richtig und bitte nicht falsch verstehen, ich bin froh um jede Hilfe:

    1. Gleichlautende LABELs

    Du hast zwar verschiedene UUIDs und PARTUUIDs, aber drei je gleichlautende LABELs.

    Ja, ich habe in der Ausgabe in meinem Post oben gleiche LABELs bei allen drei Speichermedien. Aber wenn ich doch nur die PCIe SSD gesteckt habe (und die SD Karte und die externe USB-SSD nicht), dann dürfte doch dieser Konflikt nicht auftreten, oder?

    D.h., dass bei einem Mount einer Partition (die im Grafiksystem im Automount über LABEL primär funktioniert) Du nur über die PARTUUID, oder die UUID durch einen Eintrag in die jeweilige /etc/fstab "automounten" kannst.

    Wenn es bei dem RasPi OS Desktop auf der SD-Karte nicht funktionieren würde, verstehe ich die Aussage. Da das Problem auf der PCIe SSD mit RasPi OS Lite auftritt, verstehe ich es aber nicht ganz. Deshalb verstehe ich es so, dass es bei meinem Fall (nur PCIe gesteckt und f416) keinen Unterschied machen dürfte, was ich auf meinem OS auf der SD Karte einstelle, oder verstehe ich etwas ganz falsch?

    Das Light-OS auf Deiner NVME braucht jedenfalls die Einträge in /etc/fstab, da es ja kein Grafiksystem besitzt.

    Im /mnt/pcie_/etc/fstab der PCIe SSD steht folgendes:

    Code
      GNU nano 7.2                                fstab
    proc            /proc           proc    defaults          0       0
    PARTUUID=d3512064-01  /boot/firmware  vfat    defaults          0       2
    PARTUUID=d3512064-02  /               ext4    defaults,noatime  0       1
    UUID=0fad9c56-7f70-483d-9d2f-c9215de6b9b1 /mnt/ssd1  ext4  defaults,noatime  0  2
    # a swapfile is not a swap partition, no line here
    #   use  dphys-swapfile swap[on|off]  for that

    Dieses sollte meiner Meinung nach gelten, wenn ich Boot-Order f416 und nur die PCIe SSD angeschlossen habe. Hier sind die PARTUUIDs von den beiden PCIe SSD Partitionen hinterlegt. Zusätzlich die UUID der externen USB-SSD. Hier hatte ich nichts geändert und so lief es ja bereits.

    Kann es evtl. zu Problemen kommen, da ich hier eben auch die USB-SSD hinterlegt habe? Aber eigentlich müsste er das doch einfach ignorieren, wenn er sie nicht findet (da sie ja nicht angeschlossen ist), oder?


    2. dtoverlay

    Dazu kommt, dass Du eine PCIe-NVME nur dann betreiben kannst, wenn auch das passende Modul dazu mit einem "dtoverlay= " in die config.txt aufgenommen wird, falls die automatische Initialisierung (mangels angeschlossener NVME ) versagt.

    Das klingt plausibel. Folgende config.txt auf der boot Partition der PCIe SSD.

    Das ist auch die originale config.txt an der ich nichts verändert habe und mit der es ja mal funktioniert hatte. Wenn ich dich jetzt richtig verstehe, kann es sein, dass es damals funktioniert hat, jetzt aber nicht mehr funktioniert, da eine automatische Initialisierung fehlschlägt. Laut Internetrecherche muss ich also zur config.txt ein dtparam=pciex1 und ein dtoverlay=pciex1 hinzufügen und es sollte funktionieren. Das hat allerdings leider auch nicht geklappt :(.


    Sorry, jetzt ist es ein wenig länger geworden, aber ich wollte so viele Infos wie möglich mitgeben.

    • New
    • Best Answer

    Chris8623

    Kann es evtl. zu Problemen kommen, da ich hier eben auch die USB-SSD hinterlegt habe? Aber eigentlich müsste er das doch einfach ignorieren, wenn er sie nicht findet (da sie ja nicht angeschlossen ist), oder?

    Genau das ist das Problem.


    So wie du die externe Partition in der fstab eingetragen hast, kann das nicht funktionieren.
    Da fehlt in den Optionen eine Option "nofail"

    Code
    UUID=0fad9c56-7f70-483d-9d2f-c9215de6b9b1 /mnt/ssd1  ext4  defaults,noatime  0  2

    Denn wenn die Platte nicht angesteckt ist, bootet das System nicht, weil die Partition nicht gefunden wird.

  • Bei mir sieht es so aus

    Code
    hyle@rpi5:~ $ rpi-eeprom-config
    [all]
    BOOT_UART=1
    POWER_OFF_ON_HALT=0
    BOOT_ORDER=0xf641
    USB_MSD_DISCOVER_TIMEOUT=500
    PCIE_PROBE=1


    In meiner config.txt steht ganz oben u.a.

    Code
    # Enable the PCIe external connector.
    dtparam=pciex1

    Trag das mal genau so ein, fahre den RPi runter und mach den danach kurz Stromlos. Nimm die SD raus, entferne den Datenträger am USB und boote den RPi..

    //Edit

    Das hab ich doch glatt übersehen! :blush: Wie Franjo G bereits schrieb, wenn etwas in der fstab eingetragen wurde, was nicht immer da ist, dann muss man dort nofail als Mountoption verwenden.

  • Chris8623 May 27, 2025 at 10:11 PM

    Selected a post as the best answer.
  • Sehr schön!

    Jetzt kann es mit dem eigentlichen Projekt, ein bootbares Backup der PCIe SSD auf der externen USB-SSD zu erstellen weitergehen :)

    Dazu kann ich Dir ggf. auch ein paar Tipps geben...

    Es gibt da mindestens zwei sinnvolle Lösungen. Das eine ist rpi-clone und das andere ist raspiBackup.

    Der Vorteil von rpi-clone ist ein Backup des Systems direkt auf einen anderen Datenträger zu erstellen, der sofort bootbar und einsatzbereit ist. Der Nachteil daran ist, man hat nur eine Version (oder die Anzahl der Datenträger im Laufe der Zeit, auf die man Backups erstellt hat) des letzten Systems.

    Der Vorteil von raspiBackup ist, man kann jede Version der gemachten Backups auswählen und auf einen Datenträger restoren. Der Nachteil daran ist, dass man das eben erst machen muss und kein sofort bootbares Medium hat.

  • Danke für die Tipps!

    Ich hatte im ersten Schritt vor das OS über den Imager auf die externe USB-SSD aufzuspielen und den Rest dann über rsynch zu machen, war mir aber nicht sicher ob das dann alles so funktioniert hätte (auch mit der Docker Umgebung).

    Ich habe mir die Dokus von den beiden Tools mal angeschaut...hören sich beide gut an.

    Beim raspiBackup hätte ich das Problem, dass ich nur meine "live" PCIe SSD habe und eine weitere USB-SSD die groß genug ist um das Backup draufzuspielen. Heißt ich habe keine Möglichkeit das Backup auf ein weiteres Medium, das groß genug wäre, zurückzuspielen und zu testen.

    Das rpi-clone hört sich optimal an, grad wegen der Möglichkeit direkt vom Backup Medium zu booten. Das werde ich mal ausprobieren mit einer SD Karte als Quelle und einem USB Stick als Ziel. Hoffe es ist relativ einfach zu bedienen und klappt problemlos dann auch von PCIe SSD auf USB-SSD, aber das werde ich dann sehen...

  • Ich verwende einen RPi5 seit über einem Jahr als Hauptrechner ( Ein Jahr RPi 5 8GB als PC-Ersatz ) und dort nutze ich auch rpi-clone. Der Grund dafür ist leicht genannt. Ich habe das System quasi ständig im Blick und bin aus der Natur der Sache auch darauf angewiesen. Meine Backups mache ich hier wöchentlich, kurz von den Systemupdates.

    Die Bootreihenfolge ist hier f641 und ich verwende zwei SD-Karten abwechseln, damit ich zwei bis drei Wochen rückgängig machen kann. Erst wird das Backup erstellt, dann bleibt die SD (per USB-Cardreader) im RPi und dann ein Neustart. Jetzt wird durch die Bootreihenfolge von USB gestartet und ich sehe grob nach, ob alles funktioniert. Nichts ist schlimmer, als ein Backup, dass dann wenn man es braucht, nicht funktioniert!!! :wink1: Danach wird der RPi wieder runter gefahren, der Cardreader gezogen und der Button am RPi gedrückt. Jetzt bootet der wieder von der NVMe und ich update nun das System...

    BTW: Du hast den Lexikon-Eintrag zu rpi-clone gesehen. Verwende unbedingt den Fork, der dort auch genannt wurde! Das ist wichtig.

    Bei anderen RPis, die eher als Server laufen, verwende ich raspiBackup. Aber auch hier sollte man ab und an mal ein Restore machen und die Backups auf Funktionalität testen.

    //Edit

    Um den richtigen Ziel-Datenträger zu finden hilft lsblk.

  • Beim raspiBackup hätte ich das Problem, dass ich nur meine "live" PCIe SSD habe und eine weitere USB-SSD die groß genug ist um das Backup draufzuspielen. Heißt ich habe keine Möglichkeit das Backup auf ein weiteres Medium, das groß genug wäre, zurückzuspielen und zu testen.

    raspiBackup verkleinert oder vergrößert die letzte Parition, im Normallfall die Rootpartition. D.h. solange Deine Zielpartition gross genug ist um die auf der Quellpartition befindlichen Daten aufzunehmen kannst Du Dein Backup auch auf kleinere Zieldevices restoren.

    :no_sad: ... Kein raspiBackup - kein Mitleid ... :no_sad:

    Wenn dann Dir raspiBackup den Ar*** gerettet hat

    solltest Du fairerweise diese Seite besuchen und ein Trinkgeld spendieren :shy:

    Mein Raspberry Zoo

    3 * RPi1B, 2 * RPi3B, 2 * RPI4, 1 * CM4, 1 * RPi5

  • Stimmt, das hatte ich vergessen zu erwähnen. In beiden Backupsoftwares werden (soweit man nichts anderes auswählt) dank rsync nur die Daten gesichert und nicht der restliche freie Platz auf der Partition. Somit kann man auch auf kleinere, für die Daten ausreichend große, Datenträger restoren.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!