Boot von SD + USB (mit Recovery)

  • Hallo zusammen,

    mein 1. Post hier im Forum. Ich habe seit 3 Tagen einen RPi und lese bereits seit ca. 1 Woche kräftig Beiträge.

    Was möchte ich machen:
    Der RPi soll in einen AVR eingebaut werden und dort als DLNA-Renderer / Airplay Empfänger von meinem Tablet/Handy Musik und Videos entgegennehmen. Das wird mittels Raspbmc realisiert.
    Der Einbau im AVR (im lege nur LAN + 1 USB Port nach aussen) heißt aber auch, dass ich später nicht mehr an den RPi drankomme.

    Also, für mich ist ganz entscheidend, dass der Raspberry dauerhaft läuft. Wenn der einmal eingebaut ist, ist der Aufwand sehr groß, nochmal dranzukommen.

    Ich habe nun viel über kaputte / nicht bootende SD Karten gelesen, welche aufgrund von
    a) Übertaktung (kann ich ausschliessen)
    b) mechanisch nicht passenden Karten (kann ich ausschliessen)
    c) Strom aus ohne vorher runterzufahren (kann ich nicht ausschliessen)
    zustande kommen.

    Nun gibt es beim Raspbmc die Möglichkeit, diesen auf SD (nur Bootloader ?) + USB (System?) zu spielen. Hier soll die Fehlerrate deutlich niedriger sein.

    Leider kenne ich mich bisher gar nicht mit Linux aus (bin aber sehr gerne bereit, hier etwas zu lernen),
    habe aber folgende Idee:
    1.) Die Startpartition auf SD ist schreibgeschützt (bootet also immer)
    2.) Die weitere Partition von Raspbmc lässt sich ja meines Wissens nicht schreibschützen, deshlab liegt diese einmal auf SD Karte und einmal auf USB Stick (alternativ 2x auf SD-Karte) vor. Wenn nun (vom System) erkennbar ist, dass ein (Schreib-)Fehler von der Raspbmc Partition vorliegt, wird diese mit dem Doppel automatisch ersetzt.
    3.) Das Sahnehäupchen wäre, wenn unter XBMC zusätzlich noch die aktuelle Partition (von der geladen wurde und auf die Änderungen z.B. der Config geschrieben werden) auf das Doppel kopiert werden könnte (und somit der aktuelle Stand quasi gesichert wird).


    Meint Ihr sowas ist erfolgversprechend?
    Wenn ja, vielleicht kann mir jemand einen Link. o.ö. für den Einstieg geben (wie gesagt, werde mich gerne hier einlesen).

    Gibt es eine alternative Lösung? Wie macht Ihr das?

    beste Grüße
    Christian

  • Moin

    a+b sind wohl eher Einzelfälle, also nicht so ohne weiteres verallgemeinerbar.
    c ist u.U. möglich.

    Zitat


    Nun gibt es beim Raspbmc die Möglichkeit, diesen auf SD (nur Bootloader ?) + USB (System?) zu spielen. Hier soll die Fehlerrate deutlich niedriger sein.


    Höhrensagen....

    Ansonsten macht das keinen Sinn, wenn das Filesystem bzw. die Partitionstabelle im Eimer ist nutzt dir das ganze Recovery nüscht.
    Und nur weil es möglich ware ist es nicht immer sinnvoll.
    Jedenfalls sehe ich nicht wirklich den Sinn. Es würde Sinn machen wenn der Pi PXE könnte.

    waren das Zeiten, als Ordner noch Verzeichnisse waren

  • Hallo I.R.,

    danke für Deine Antwort, leider hat sie mir bisher nicht so richtig weitergeholfen.
    Ich kenne mich mit Linux nun - wie gesagt - nicht aus, allerdings verstehe ich nicht, wie die Partitiontabelle schaden nehmen könnte, wenn der RPi im Betrieb >hard< ausgeschaltet wird. Die Raspbmc Installation wird mir doch nicht darin rumschreiben?
    Und Filesystem Fehler auf dem USB Stick sollten sich doch beheben lassen, wenn auf der SD Karte ein Backup vorliegt.

    @all:
    Welchen Weg habt Ihr gefunden, um den RPi sicher starten zu lassen?
    Hat niemand ausser mir das Problem, das der RPi nachher nicht mehr zugänglich ist?

    beste Grüße
    Christian

  • Hallo enzym,

    Zitat

    wie die Partitiontabelle schaden nehmen könnte, wenn der RPi im Betrieb >hard< ausgeschaltet wird.

    Die Partition Table nimmt normalerweise keinen Schaden wenn der Raspberry Pi hart ausgeschalten wird. Was beschädigt werden kann ist das Dateisystem weil Daten welche sich noch im Cache befinden nicht auf den Datenträger geschrieben werden können und so zu einer Inkonsistenz im Dateisystem führen. Das gleiche Problem kann dir auch mit einem USB-Stick passieren.

    Zitat

    Die weitere Partition von Raspbmc lässt sich ja meines Wissens nicht schreibschützen

    Man kann die Partition schon auf read-only setzen, aber dazu sind einige Änderungen am System notwendig. Wenn du dir mal anschauen willst wie das dann aussieht, musst du nur mal OpenELEC installieren.

    Zitat

    deshlab liegt diese einmal auf SD Karte und einmal auf USB Stick (alternativ 2x auf SD-Karte) vor. Wenn nun (vom System) erkennbar ist, dass ein (Schreib-)Fehler von der Raspbmc Partition vorliegt, wird diese mit dem Doppel automatisch ersetzt.

    Zwei Fragen dazu:
    1) Wie soll die Root-Partition auf der SD-Karte mit der auf dem USB-Stick synchronisiert werden damit beide den aktuellen Stand haben?
    2) Wie soll bei einem Fehlerfall das System von der SD-Karte booten?

    Punkt 1 könnte man mit einem regelmäßigen rsync oder einem RAID1 lösen. In beiden Fällen greifst du aber schreibend auf die SD-Karte zu. Bei einem harten Shutdown kann es wieder zu Datenverlust kommen und sogar das Backup beschädigen. RAID1 denke ich ist da noch die schlechtere Lösung.
    Beim Wiederherstellen ist es schon komplizierter. Der Fehler im Dateisystem wird erst beim Mounten der Root-Partition bemerkt. Ob du aber vom USB-Stick oder von der SD-Karte booten willst musst du schon dem Kernel übergeben. Vielleicht kann man an dieser Stelle auch tricksen und nur den Mount-Aufruf dann umbiegen (das ist aber nicht die feine Art). Die Kernelparameter stehen in der /boot/cmdline.txt welche du im Fehlerfall bearbeiten müsstest. Dann startet das System vom Backup-Medium und muss sich dann automatisch reparieren.

    Ich denke den Aufwand den du da reinstecken musst kannst du noch gar nicht überblicken und das ganze Vorhaben wird dich vor einige Probleme stellen.

    Zitat

    Welchen Weg habt Ihr gefunden, um den RPi sicher starten zu lassen?

    Den Raspberry Pi immer sauber herunterfahren dann hast du die Probleme nicht. Alternativ zu deiner Idee würde ich noch eher einen Shutdown-Button in Angriff nehmen für den Fall, dass man mal keine andere Möglichkeit zum Herunterfahren hat (http://www.helbing.nu/projekte/raspb…utdown-key.html).

    Gruß Georg

  • Hallo Georg,

    vielen Dank für Deine sehr ausführliche Antwort.
    Ich denke, ich sehe nun etwas klarer, was die Problematik des autom. Recovery betrifft.
    Mein Problem sind leider meine nichtvorhandenen Linux Kenntnisse. Ich werde aber an mir arbeiten ...

    Ich hatte ursprüglich gedacht, es wäre auf der Boot-Partition ein Script möglich, das sowas macht (mit sd0=Boot, sd1=System, sd2=Backup, hier alles auf SD Karte):

    • prüfe sd1 (Testmount o.ä.) - oder - ob eine bestimmte Taste gedrückt ist (ich müßte das Recovery manuell anstossen)
    • wenn ok, dann boot sd1
    • wenn not ok, dann
      3.1 format sd1
      3.2 copy sd2 to sd1
      3.3 reset
    • ...
    • Unter XMBC sollte ein Script (manuell) aufgerufen werden können, welches sd1 auf sd2 kopiert (also den aktuellen Stand in der Backup Partition sichert.

    Leider kann das saubere Runterfahren nicht immer gewährleistet werden (habe u.a. zwei Kinder - somit ist auch der Shutdown-Button nicht die Lösung), wird aber auch nicht täglich vorkommen.

    Ich weiß ja bereits, dass alle Logs von Raspmbc in die Ramdisk geschrieben werden. Welche Daten werden im Betrieb (also wenn die Oberfläche hochgefahren ist) überhaupt dann noch auf SD geschrieben bzw. ist ein Abschalten im IDLE (Oberfläche ohne Aktion) überhaupt noch gefährlich?

    beste Grüße + Danke
    Christian

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!