Von USB-Festplatte booten?


Antworten:


8

Jetzt, fast fünf Jahre später, nachdem der Autor diese Frage ursprünglich gestellt hatte, unterstützt
Raspberry Pi offiziell das Booten von einem USB-Massenspeichergerät .

Dies wird jedoch nur für Raspberry Pi 3 unterstützt . Hier ist der Grund:

Kann ein Pi 1 oder Pi 2 mit MSD gebootet werden?

Leider nicht. Der Boot-Code wird nur im BCM2837-Gerät gespeichert, sodass für Pi 1, Pi 2 und Pi Zero alle SD-Karten erforderlich sind.


28

Es ist nicht möglich, RPi im wahrsten Sinne des Wortes direkt von USB zu booten. Es gibt jedoch nichts, was jemanden davon abhält, eine Mini-Distribution zu erstellen, die / boot und eine Art Boot-Manager enthalten würde. Dies könnte dann das Booten von USB oder sogar einer PXE-ähnlichen Umgebung implementieren. Dies könnte auf eine winzige SD-Karte passen - 64 MB-Karten sind jetzt für ein paar Cent erhältlich. Ich gehe davon aus, dass jemand eine Distribution dafür rollen wird - aber bisher noch keine gefunden hat.

In der Zwischenzeit können Sie Ihre eigene Root-Partition auf die Festplatte verschieben, um die Startzeiten zu verkürzen. Dies ist jedoch etwas aufwändig, da Sie einen Kernel benötigen, der USB-Speicher unterstützt. Eine gute Anleitung dazu finden Sie unter: http://mitchtech.net/raspberry-pi-root-fs-on-usb-drive/


3
Das ist eine gute Idee.
Jivings

Update: Es gibt jetzt experimentelle Unterstützung für das Booten direkt auf USB. Nach der Ersteinrichtung ist keine SD-Karte erforderlich.
Hydraxan14

21

Aus der Raspberry Pi FAQ :

Sie müssen von SD booten, aber eine USB-Festplatte kann nach dem ersten Booten "übernehmen". Ohne SD-Karte können Sie nicht booten.


1
Bedeutet das, dass nach der Übernahme der Festplatte das Memory Car nicht mehr benötigt wird?
Suhaib

5

In der Tat können Sie / root und alles andere auf einem externen Gerät haben, wenn Sie nur mit der SD MS-DOS-Partition (/ boot) leben können, auf der sich der Kernel befindet. Eine USB-Speicherkarte oder eine physische Festplatte eignen sich gut als sekundäres Laufwerk. Das Gute daran ist, dass dies ein zerstörungsfreier Vorgang ist, wenn Sie nicht an die falsche Stelle "dd": Eine Bearbeitung und Sie kehren zum Original zurück.

Diese Konfiguration einzurichten ist ziemlich einfach. Sie konfigurieren Ihre Installation wie gewohnt und verschieben / kopieren die EXT4-Partition auf das externe Laufwerk.

fdiskErstellen Sie mithilfe der Partition Ihres ausgewählten sekundären Laufwerks eine Partition, die mindestens genauso groß ist wie Ihre aktuelle mmcblk0p2 (oder mmcblk0p5). Speichern Sie die neue Konfiguration.

Suchen Sie den Partitionsnamen, in diesem Beispiel '/ dev / sda5'. Diese Partition hängt jedoch von Ihrer Konfiguration ab.

Kopieren Sie die aktuelle Partition (Hinweis: Es ist nicht empfehlenswert, eine aktuelle Partition zu kopieren. Einige Dateien befinden sich in einem 'instabilen' oder offenen Zustand, funktionieren jedoch einwandfrei):

dd if=/dev/mmcblk0p2 of=/dev/sda5 bs=10M

Bearbeiten Sie jetzt die folgende Zeile in der Datei /boot/cmdline.txt und ändern Sie den 'root'-Speicherort:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Zu dieser neuen Zeile.

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/sda5 rootfstype=ext4 elevator=deadline rootwait

Beachten Sie, dass die Startpartition MS-DOS ist. Wenn Sie also Probleme beheben müssen, können Sie die SD-Karte an einer anderen Stelle einbinden und bearbeiten. Wenn der Start fehlschlägt, zeigt der Loader auf Ihrem (HDMI-) Bildschirm die verfügbaren Montagepunkte an.

Dieses Setup ist abhängig von der Mount-Reihenfolge. Die Partitionsnummer kann sich ändern, wenn das Gerät in einem anderen Steckplatz installiert ist. Sie können diesen Speicherort wie folgt unabhängig machen.

Finden Sie die Geräte-UUID

blkid /dev/sda5
/dev/sda5: UUID="13d368bf-6dbf-4751-8ba1-88bed06bef77" TYPE="ext4"

oder erstelle eine neue

tune2fs -U random /dev/sda5

und erhalte den neu zugewiesenen Namen

blkid /dev/sda5
/dev/sda5: UUID="25b6aa72-ddc4-485e-8044-900ac24d662b" TYPE="ext4"

Bearbeiten Sie anschließend die zuvor geänderte Datei cmdline.txt, und ändern Sie den Stammspeicherort in:

root=UUID=25b6aa72-ddc4-485e-8044-900ac24d662b

Nachdem die neue Konfiguration starten, bearbeitet die fstab, entfernen Sie den alten / mmcblk0p2 Hinweis: Dies ist eine Datei auf das ‚neue‘ / root - Gerät sein
ersetzen / dev / mmcblk0p% (% ist die Linux - Partition)

nano /etc/fstab
UUID=25b6aa72-ddc4-485e-8044-900ac24d662b ...


1

Ich habe stattdessen Windows für 100% der Erstellung verwendet.

Ich habe (den kostenlosen) 'MiniTool-Partitionsmanager' verwendet und gerade den Start auf meine kleinste SD-Karte übertragen, die mit dem Partitionsmanager automatisch erweitert werden kann. Öffnen Sie das cmdline.txtund wechseln Sie zu root=/dev/sda5.

Mit demselben Partitionsmanager kann ich die ext4-Datei auf mein tragbares 1 TB-Laufwerk kopieren (zu Ihrer Information: Entfernen Sie zuerst alle Partitionen von den Laufwerken, damit Sie vor der Übertragung nicht partitionierten Speicherplatz haben). Vala - gebootet. Ich stelle fest, dass bei der Standard-Festplatte die Zugriffszeiten etwas fehlen, obwohl sie im Vergleich zu den meisten SD-Karten sehr schnelle R / W-Geschwindigkeiten aufweisen.

Das einzige Problem, das ich jetzt habe, ist das Erweitern der ext4 (Root) -Partition von den ursprünglichen 32 GB (von meiner ursprünglichen SD-Karte). Also ich habe momentan nur 32GB der 1TB. Hmm. Ich bin nur ein Anfänger mit dem Terminal und seinen Befehlen, daher ist das Partitionieren unter Linux etwas nervös, aber dieser Leitfaden hat SEHR gut geholfen.


Entschuldigung, welche Anleitung?
Bex

Entschuldigung, dieses Forum.
Dave
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.