Frage:
So booten Sie von einem USB-Laufwerk, haben jedoch mehrere Laufwerke mit dem Hub verbunden
AncientOwl
2013-12-21 03:10:03 UTC
view on stackexchange narkive permalink

Nach der Suche in Google können Sie ein externes USB-Flash-Laufwerk nach dem Booten von der SD- oder microSD-Karte übernehmen lassen. Ich möchte wissen, wie Sie am einfachsten von einem USB-Laufwerk booten können, aber mehrere Laufwerke für andere Zwecke angeschlossen haben (z. B. Speicher: owncloud, Bittorrent-Synchronisierung usw.). Alle Laufwerke werden über einen 4-Port-Hub mit Strom versorgt.

Bei den anderen Geräten handelt es sich um eine externe USB-Festplatte, nicht um ein Flash-Laufwerk.

Vier antworten:
#1
+6
goldilocks
2013-12-21 18:36:33 UTC
view on stackexchange narkive permalink

Im Standard-Pi-Kernel sind möglicherweise die richtigen Treiber integriert, um das externe Laufwerk ohne das Root-Dateisystem bereitzustellen. 1 sup> Sie müssen dies also zunächst untersuchen und prüfen, ob Es funktioniert nicht. Erstellen Sie einen Kernel, der dies tut. Es ist wahrscheinlich in Ordnung (verschiedene Online-Blog-Posts implizieren, dass ein benutzerdefinierter Kernel im Allgemeinen nicht benötigt wird), aber dies ist nur für den Fall wichtig.

Erstellen Sie anschließend eine Kopie Ihrer primären Partition (die zweite) eins) von der SD-Karte auf die Festplatte zum Testen. Mach das nicht naiv, während der Pi läuft . Es sollte den Status des Dateisystems widerspiegeln, während das System ausgeschaltet ist. Nehmen Sie daher die Karte aus dem Pi, um sie zu kopieren.

Wenn Sie die Kopie durch Duplizieren des gesamten Dateisystems erstellen, müssen Sie Änderungen vornehmen die UUID, da sie sonst mit der zweiten Partition auf der SD-Karte identisch ist. Um die UUID unter Linux zu erhalten, wenn die Partition /dev/sdb3:

  > ist = "8f30e12b-8a7c-4121-86f7-1134f39c66d5" TYPE = "ext4"  

Wenn die UUIDs identisch sind, müssen Sie die auf der Festplatte ändern. Gehen Sie dazu folgendermaßen vor: tune2fs -U random / dev / sdb3 .

Bearbeiten Sie anschließend cmdline.txt von der ersten Partition auf der SD-Karte (der eine, die als / boot ) gemountet wird. Ändern Sie diesen Teil:

  root = / dev / mmcblk0p2  

in:

  root = UUID = c2b2016e-629a -4010-bf1f-563fd4c50e72  

Oder wie auch immer die neue UUID für die Festplattenpartition lautet. Fügen Sie dieser Datei nicht versehentlich einen Zeilenumbruch hinzu. Wenn dies alles nicht funktioniert, müssen Sie es nur wieder auf das ändern, was es war ( / dev / mmcblk0p2 ).

Die Der Grund, warum Sie die UUID anstelle des Geräteknotens verwenden müssen, ist, dass der Geräteknoten der Festplattenpartition nicht vorhersehbar ist (obwohl er häufig identisch ist), wenn Sie keine udev -Regel hinzufügen.

Bevor Sie dies versuchen, bearbeiten Sie abschließend den / etc / fstab auf der Festplattenpartition. Ändern Sie Folgendes:

  / dev / mmcblk0p2 /  

in:

  UUID = c2b2016e-629a-4010-bf1f -563fd4c50e72 /  

Lassen Sie alles andere gleich.


1. Module können entweder eingebaut oder ladbar sein. Ladefähige Module sind .ko -Dateien in den Verzeichnissen / lib / modules , die Teil des Root-Dateisystems sind. Ein gerade geladener Kernel kann das Root-Dateisystem nicht mounten, wenn dafür Dinge aus / lib / modules benötigt werden. Diese Module müssen entweder in den Kernel integriert oder in ein initramfs eingefügt werden. Sup>

#2
+2
Thorbjørn Ravn Andersen
2013-12-21 14:26:35 UTC
view on stackexchange narkive permalink

Sie müssen kein USB-Laufwerk übernehmen lassen. Auf einer großen SD-Karte kann die gesamte Linux-Installation gespeichert werden.

Sie können den Pi die Laufwerke während des Startvorgangs an verschiedenen Orten (z. B. / mydisks / torrent) bereitstellen lassen und anschließend die Dienste konfigurieren Sie müssen verwenden, um ihre Daten auf der entsprechenden Festplatte zu haben.

Beachten Sie, dass Sie ext4 oder ähnliches als Dateisystem auf den Festplatten haben möchten, damit sie gegen das Einschalten des Pi aus- und wieder eingeschaltet werden können.

Ich verwende Raspbian und habe es so konfiguriert, dass es ein 4-TB-Synology-NAS bereitstellt. Dies gibt allen Himbeeren viel Platz und sogar zusätzlichen Swap-Platz (über Loopback-Geräte auf dem NAS).
#3
+2
conrad_heimbold
2016-04-10 10:23:45 UTC
view on stackexchange narkive permalink

Der Standard-Pi-Kernel kann keine UUIDs verarbeiten, sondern nur PARTUUIDs.

Um genauer zu sein:

  • UUIDS hängen vom Dateisystem der Partition ab
  • PARTUUIDS hängen NICHT vom Dateisystem der Partition ab
  • Diese Antwort in einem Archwiki-Forum erklärt den Unterschied zwischen UUIDs und PARTUUIDs detaillierter.

    Wenn der Standard-Pi-Kernel das nicht unterstützt Das erwähnte Dateisystem funktioniert nicht mit der UUID - was laut dem hier bereitgestellten Kernel-Quellcode der Fall ist.

    Daher funktioniert die von @goldilocks erwähnte Antwort nicht. Sie müssen die mit sudo blkid / dev / sdb3 angegebene PARTUUID anstelle der UUID verwenden. und Sie müssen auch root = PARTUUID = ... anstelle von root = UUID = ... schreiben. Alle anderen oben von @goldilocks erwähnten Dinge sind jedoch korrekt; Ersetzen Sie einfach immer die UUID durch die PARTUUID .

    #4
    +2
    JustinSB
    2016-11-14 03:59:02 UTC
    view on stackexchange narkive permalink

    @conrad_heimbold ist richtig, und wenn Sie /boot/cmdline.txt mit der PARTUUID bearbeiten, wird Ihr Pi tatsächlich gestartet.

    Er ist jedoch an einer Stelle falsch. Wenn Sie die PARTUUID in Anführungszeichen setzen, kann Ihr Pi nicht gestartet werden. Wenn Sie sie jedoch entfernen, wird er ohne Probleme gestartet.

    dh dies funktioniert:

      root = PARTUUID = abcdef01-01 rootfstype = f2fs rw rootwait BLAH BLAH BLAH  

    Dies schlägt jedoch fehl (aufgrund der Anführungszeichen um PARTUUID = " ... "):

      root = PARTUUID =" abcdef01-01 "rootfstype = f2fs rw rootwait BLAH BLAH BLAH  


    Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
    Loading...