Wie können verschiedene Geräte, die durch dieselbe Gerätedatei dargestellt werden, automatisch an unterschiedlichen Einhängepunkten eingehängt werden?

Wie können verschiedene Geräte, die durch dieselbe Gerätedatei dargestellt werden, automatisch an unterschiedlichen Einhängepunkten eingehängt werden?

/dev/sdb1Selbst wenn in Ubuntu verschiedene Blockgeräte (z. B. eine externe Festplatte und ein Flash-Laufwerk) nacheinander durch dieselbe Gerätedatei (z. B. ) dargestellt werden , werden sie automatisch an unterschiedlichen Einhängepunkten (z. B. /media/b/mydriveund /media/b/myflashdrive) eingehängt. Wie wird das erreicht? Woher kennt Ubuntu den „Namen“ jedes Geräts und verwendet diesen „Namen“, um seinen Einhängepunkt zu benennen? ( /etc/fstabdeckt diese Plug-in-Geräte nicht ab.)

Wie kann ich das simulieren? Beim manuellen Mounten eines Blockgeräts führe ich aus

sudo mkdir /media/b/mountingpoint1
sudo mount -t ntfs /dev/sdb1 /media/b/mountingpoint1
sudo umount /media/b/mountingpoint1
sudo rmdir /media/b/mountingpoint1

Wenn ich das Gerät abtrenne und dann ein anderes Blockgerät anschließe, wird das neue Gerät wieder durch dieselbe Gerätedatei repräsentiert /dev/sdb1und der obige Befehl hängt es am selben Einhängepunkt ein /media/b/mountingpoint1. Ich brauche eine Möglichkeit, die Einhängepunkte für verschiedene Geräte unterschiedlich zu benennen.

Antwort1

werden durch die gleiche Gerätedatei repräsentiert (z. B. /dev/sdb1)

Der Trick ist, dass sienichtdargestellt durch dieselbe Gerätedatei: Zusätzlich zu dieser primären Gerätedatei, die vom Kernel verwaltete Buchstaben und Zahlen enthält, gibt es auch symbolische Links /dev/disk/by-*, die beispielsweise den Datenträgernamen des Dateisystems, den Hersteller und das Modell der Festplatte oder den Gerätepfad enthalten.

Und diese symbolischen Links sollten Sie darin verwenden /etc/fstab, nicht /dev/sdb1usw.

Antwort2

(z. B. /media/b/mydriveund /media/b/myflashdrive). Wie wird das erreicht? Woher kennt Ubuntu den „Namen“ jedes Geräts und verwendet diesen „Namen“, um seinen Einhängepunkt zu benennen? ( /etc/fstabdeckt diese Plug-in-Geräte nicht ab.)

Das Mounten von Wechseldatenträgern erfolgt über UDisks, das auch den Mountpoint für diese erstellt, der (unter Ubuntu) immer im Format ist /media/<user>/<unique_id>. Der letzte Teil ist entweder die Dateisystembezeichnung oder UUID, wenn das Dateisystem keine Bezeichnung hat. Wechseldatenträger und -laufwerke sind normalerweise vorformatiert und die Partition ist vom Hersteller beschriftet (z. B. hat mein Kingston-Flash-Laufwerk die VFAT-Partition mit der Bezeichnung KINGSTON).

Sie können die Bezeichnung (und UUID) für Ihre Geräte mit abrufen lsblk -f.

Wenn Sie ein Gerät manuell (nicht über die GUI) mounten und denselben Effekt erzielen möchten, können Sie verwenden udisksctl mount -b /dev/sdb1.

Und wenn Sie (in Zukunft) fstabzum automatischen Einhängen verwenden, sollten Sie immer UUID ( UUID=) anstelle von verwenden /dev/sdb1.

verwandte Informationen