Wie kann ich bei jedem Neustart des Raspberry Pi das richtige Laufwerk aktivieren?

13

Ich weiß im Allgemeinen, wie man Festplatten in ein UNIX-System einbindet. Aber ich bin mit einer Sache verwechselt. Sprich ich habe disk #1und disk #2. Ich besteige disk #1mit sudo mount /dev/sda1 /mnt/drive. Woher weiß ich, dass sda1dies zugewiesen wird disk #1und nicht disk #2, insbesondere nach dem Neustart des Raspberry Pi? Mit anderen Worten, wie kann ich sda1und sdb1auf die Festplatte # 1 zugeordnet und # 2 jeweils und verhindern , dass sie miteinander nach dem Neustart tauschen?

StarShire
quelle
1
Dies ist eine gute Frage, da / dev / sda auf einem Multidisk-System nach einem Neustart nicht immer / dev / sda ist.
Octopus

Antworten:

16

Festplattenlaufwerke unterscheiden sich durch ihre UUID (Universal Unique Identifier). Sie können die UUID Ihrer Festplatten mit dem Befehl finden. ls -l /dev/disk/by-uuid/ Dann müssen Sie die Einhängepunkte erstellen sudo mkdir /MOUNT/POINT1 und deren Berechtigungen ändern. sudo chmod 775 /MOUNT/POINT1 Dann fügen Sie Ihrer fstab-Datei (die sich in / etc / fstab befindet) eine Zeile hinzu, die so aussieht:

UUID=BLAHBLAH12341234 /MOUNT/POINT1 ntfs-3g rw,defaults 0 0
UUID=12341234BLAHBLAH /MOUNT/POINT2 ext rw,defaults 0 0

Natürlich müssen Sie es entsprechend Ihrem Dateisystem usw. ändern. Speichern Sie dann die Datei und starten Sie neu, und Ihre Festplatten werden automatisch an den angegebenen Einhängepunkten eingehängt.

ios.id0
quelle
1
Wie ich in meiner Antwort ausgeführt habe, werden nicht die Laufwerke, sondern die Partitionen auf den Laufwerken durch eine UUID identifiziert. (Ein subtiler Unterschied.) Wenn Sie ein Laufwerk neu formatieren, wird eine neue Partition erstellt, die eine neue UUID erhält.
Fred
Was meinst du mit " / MOUNT / POINT1 "? Ist das die wörtliche Definition des Einhängepunkts?
IgorGanapolsky
1
@IgorGanapolsky ist nur der Name des Ordners, in den Sie Ihre Partitionen einhängen möchten. Wählen Sie, wie Sie möchten.
ios.id0
Besser als nur ein Neustart ist es, auszuführen sudo mount -aund festzustellen, ob Fehler vorliegen. Wäre dies der Fall, könnte dies dazu führen, dass das System nicht startet.
Jan
7

Dies ist streng genommen eine generische Linux-Frage, aber die Antwort lautet trotzdem Partitions-UUIDs (Universally Unique Identifiers). Wie der Name schon sagt, wird beim Formatieren einer Partition eine zufällige eindeutige ID generiert, die diese beschreibt. Sie können dies zum Mounten verwenden, um sicherzustellen, dass Sie immer die richtige Partition erhalten. Der blkidBefehl enthält eine Liste von UUIDs für aktuell angeschlossene Geräte, z.

/dev/sda4: UUID="2d02d277-a79c-4818-adc7-c37484e17c6a" TYPE="ext3" 

Dies entspricht in diesem Fall einem / dev-Gerät /dev/disk/by-uuid/2d02d277-a79c-4818-adc7-c37484e17c6a. Damit können Sie mounten. Sie können eine etwas kürzere Schreibweise mit in verwenden, /etc/fstabum anzugeben, dass ein Laufwerk bereitgestellt werden soll:

UUID=2d02d277-a79c-4818-adc7-c37484e17c6a /mnt/backup ext3 defaults 0 0

Sehen Sie hier , um weitere Informationen oder sehen Sie UUID Suchergebnisse hier .

Fred
quelle
1
Wenn ich blkid eingebe , bekomme ich nichts!
IgorGanapolsky
@IgorGanapolsky Versuchen sudo blkid. blkidErfordert anscheinend root-Rechte, aber auf einem Raspberry Pi melden Sie sich standardmäßig als nicht privilegierter Benutzer an pi.
Herzbube
0

Danke für die Problemumgehung gabriel, dasselbe Problem hier (Raspberry 2). Aber ich konnte die 30 Sekunden auslassen, wenn die rc.local zum Arbeiten kam und das Gerät gefunden wurde, also a

sudo mount -a

in der /etc/rc.local hat die Arbeit erledigt.

Dolch
quelle
-2

Naja, wahr und nicht wahr. In meinem Fall, RPI v2 4 Core, hat sich seit der v1-Version etwas geändert: Die Bearbeitung von fstab, um externe Festplatten beim Start automatisch zu laden, wird überhaupt nicht ausgeführt, ohne uuid und ohne / dev / sda1

Das Problem ist, dass ich 30 Sekunden nach dem vollständigen Booten warten muss, um mein externes Festplattenlaufwerk zu mounten. Seltsam ist, dass fstab auf einem USB-Stick fehlerfrei läuft. Also habe ich ein Skript geschrieben, um 30 zu schlafen. sudo mount -a um die Dinge rauszulaufen.

Hier ist / etc / fstab

pi@raspberrypi ~ $ cat /etc/fstab 
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that

Und letzte Zeile hinzugefügt

UUID=3d81d9e2-7d1b-4015-8c2c-29ec0875f762 /media/250_gb ext4 defaults 0 0

Hier ist meine /etc/rc.local Erweiterung

# Begin all drives remount
clear
echo "Please wait 30 seconsds in order to remount all missing drives !!!"
for x in `seq 1 30`
do
echo -n "."
sleep 1
done
sudo mount -a
sudo service minidlna force-reload

# End drives remount 

exit 0

Es könnte etwas mit JMICRON USB-Adapter sein, ohne 30 Sekunden warten heißt es, dass das Gerät nicht vorhanden ist, obwohl LSUSB den richtigen JMICRON-Adapter bekommt. Muss es tief unter der Erde graben !!!

Hier sind 2 meiner TV-Schnappschüsse Vorher Bildbeschreibung hier eingeben nachher Bildbeschreibung hier eingeben

[email protected]

Gabriel
quelle
1
Die Frage bezieht sich auf die Festplattenbestellung und nicht auf ein nicht verfügbares Gerät.
mpromonet