Automatisieren der Reihenfolge der Montagebefehle

9

Wenn ich ein Gerät (Tablet, Kamera, Flash-Laufwerk, externe Festplatte) unter Linux an meinen Laptop anschließe, gebe ich häufig die folgende Befehlsfolge ein.

$ ls /dev/sd*
Angenommen, mein Gerät ist
optional $ sudo mkdir /media/my_flash
optional / dev / sdc$ sudo chmod 777 /media/my_flash
$ sudo mount /dev/sdc /media/my_flash

Dann werde ich einige Dateien kopieren und

$ sudo umount /dev/sdc

Diese Sequenz garantiert mir, dass die Dateien kopiert werden und nichts Schlimmes passieren wird.

Können Sie mir sagen, wie diese Befehlsfolge automatisiert werden kann? Ich werde also nur das Gerät anschließen, es wird erkennen, in welches Verzeichnis es gemountet werden soll, dann werde ich eine Dateiübertragung durchführen und es wird mir (auf irgendeine Weise) signalisieren, dass ich das Gerät ausstecken kann? Gibt es einige Einstellungen in Linux OS dafür?

xralf
quelle

Antworten:

6

Die Systemkomponente, die auf den Anschluss eines Wechseldatenträgers reagiert, ist Udev , wie von SHW erwähnt . Sogar das udev-Tutorial kann ein wenig entmutigend sein. Ich zeige Ihnen einige Beispiele.

Es gibt zwei Schritte: Zuordnen einer Gerätedatei (z. B. /dev/sdc) zum Hardwaregerät und Mounten des Geräts für den Zugriff auf das Dateisystem. Udevs Job ist der erste Schritt, obwohl Sie ihm sagen können, dass er einen externen Befehl wie z mount.

Für bekannte Wechselmedien verwende ich gerne einen dedizierten Gerätenamen unter /dev/removable(dieser Verzeichnisname ist eine persönliche Konvention). Die folgenden udev-Regeln (in die eingefügt werden soll /etc/udev/rules.d/my_removable_disks.rules) erstellen symbolische Verknüpfungen mit bekannten Namen für zwei Festplatten, die beide durch eine Eigenschaft des Dateisystems auf ihrer Partition 1 gekennzeichnet sind:

KERNEL=="sd?", PROGRAM=="/sbin/blkid -o value -s UUID %N1", RESULT=="1234-5678", SYMLINK+="removable/foo"
KERNEL=="sd?", PROGRAM=="/sbin/blkid -o value -s LABEL %N1", RESULT=="Joe's disk", SYMLINK+="removable/joe"

Ältere Versionen von udev benötigen möglicherweise /udev/lib/vol_id -u %N1(für die UUID, -lfür das Label) anstelle des blkidAufrufs. Es gibt weitere Dinge, mit denen Sie übereinstimmen können, z. B. ATTRS{vendor}=="Yoyodine", ATTRS{serial}=="XYZZY12345PDQ97"(anstelle von PROGRAM==…, RESULT==…) dem Hersteller und der Seriennummer eines Geräts.

Dann können Sie eine Zeile wie diese verwenden in /etc/fstab:

/dev/removable/joe  /media/joe  vfat  noauto,user

Wenn Sie eine automatische Montage bevorzugen, können Sie , RUN="mkdir /media/foo && mount /dev/removable/foo /media/foo"der udev-Linie so etwas hinzufügen . Vergessen Sie nicht, umount /media/foobevor Sie den Netzstecker ziehen.

Gilles 'SO - hör auf böse zu sein'
quelle
Danke für die tolle Lösung. Ich habe LVM auf einigen externen Laufwerken, also längere Abfolge von Empfehlungen (einschließlich VG-Aktivierung usw.), jetzt kann ich sogar Backup-Skripte hinzufügen :).
Grzegorz Wierzowiecki
Sehr geehrter Leser, wenn Sie mehr über verfügbare ATTRS erfahren möchten, versuchen Sie dies mit Ihrem Gerät:udevadm info --name=/dev/DEVICE --attribute-walk
Grzegorz Wierzowiecki
8

Sie können dies tun, indem Sie eine UDEV-Regel schreiben, die das Bash-Skript mit denselben Bash-Befehlen "ausführt", die Sie erwähnt haben. Wenn Sie die genannten Geräte anschließen, erkennt UDEV dies und verhält sich gemäß der Regel.

Zum Schreiben von Regeln können Sie diesem Link folgen .

SHW
quelle
Oh, schön. Wusste das noch nicht - Lesezeichen setzen und in mein Repertoire aufnehmen.
Shadur
Könnten Sie bitte genauer sein? Welche Absätze des Links sind für mich relevant?
Xralf
Es sieht aus wie das, wonach ich suche. Ich habe nur all die Tage keine Zeit, es zu lesen. Ich werde es studieren und die richtige Antwort in Ihren Kommentar einfügen, sobald ich es verstehe. Vielen Dank
Xralf
4

Heutzutage gibt es mehrere Daemons für die automatische Montage sowie den pmountBefehl, mit dem Benutzer austauschbare Geräte /mediaohne sudoZugriff bereitstellen können.

Sowohl Gnome als auch KDE haben die Option, austauschbare Volumes automatisch bereitzustellen, wenn sie verbunden sind. Abhängig davon, welche Distribution Sie installiert haben, ist diese Funktion möglicherweise standardmäßig aktiviert.

In GNOME stehen die Optionen für diese Funktion unter zur Verfügung System -> Preferences -> Removable Media. Ich habe keine aktuellen Erfahrungen mit KDE.

Shadur
quelle
Ich möchte dies unabhängig in der Fensterverwaltungsumgebung (wie KDE, GNOME usw.) tun (als ob X nicht gestartet worden wäre).
Xralf
Dann müssen Sie diesen Link lesen, den SHW gepostet hat, und so ziemlich alles lesen.
Shadur