Ok, es ist lange her, aber ich beantworte meine Frage immer noch mit der besten Option, die ich bisher gefunden habe.
Am besten erstellen Sie eine udev
Regel, die mit einigen Skripts verknüpft ist (die Verzeichnisse erstellen / entfernen und austauschbare Geräte bereitstellen bzw. aushängen), und die an den partition
udev
Geräteereignistyp angehängt sind .
1 - Erstellen von Skripten zum Hinzufügen / Entfernen
Dieses Skript storage-automount.sh
in /lib/udev/
und setzen Sie sich auf ausführbare Datei ( sudo chmod +x /lib/udev/storage-automount.sh
):
#!/bin/sh # set the mountpoint name according to partition or device name mount_point=$ID_FS_LABEL if [ -z $mount_point ]; then mount_point=$ fi # if a plugdev group exist, retrieve its gid set & it as owner of mountpoint plugdev_gid="$(grep plugdev /etc/group|cut -f3 -d:)" if [ -z $plugdev_gid ]; then gid='' else chown root:plugdev $mount_point gid=",gid=$plugdev_gid" fi # create the mountpoint directory in /media/ (if not empty) if [ -n $mount_point ]; then mkdir -p /media/$mount_point # other options (breaks POSIX): noatime,nodiratime,nosuid,nodev mount -t $ID_FS_TYPE \ -o rw,flush,user,uid=0$gid,umask=002,dmask=002,fmask=002 \ $DEVNAME /media/$mount_point fi
Dieses Skript storage-autounmount.sh
in /lib/udev/
und setzen Sie sich auf ausführbare Datei ( sudo chmod +x /lib/udev/storage-autounmount.sh
):
#!/bin/sh # set the mountpoint name according to partition or device name mount_point=$ID_FS_LABEL if [ -z $mount_point ]; then mount_point=$ fi # remove the mountpoint directory from /media/ (if not empty) if [ -n $mount_point ]; then umount -l /media/$mount_point rm -R /media/$mount_point fi
2 - Erstellen der udev
Regel zum Anhängen dieser Skripts an Ereignisse
Fügen Sie schließlich eine udev
Regel hinzu /etc/udev/rules.d
, zum Beispiel 85-storage-automount.rules
:
ENV=="partition", RUN+="/lib/udev/storage-automount.sh", ENV="/lib/udev/storage-autounmount.sh"
Und das ist es.
Wenn Sie nun ein Speichergerät anschließen, wird ein Verzeichnis /media/
mit dem Namen der Partition erstellt (ich erinnere mich nicht, aber ich denke, es funktioniert auch mit NTFS-Partitionen), und Ihre Partition wird darin eingebunden. Es ist R / W für Benutzer, wenn Sie eine plugdev
Gruppe in Ihrem System haben. Die Geräte sind außerdem im synchronen Modus montiert, um das Risiko eines Datenverlusts im Falle eines Hot-Unplugging zu begrenzen.
Wenn das Gerät entfernt wird, wird es aufgehoben und das Verzeichnis wird aus dem Gerät entfernt /media
.
Das Werkzeug zum Überwachen der udev
Ereignisse ist udevadm monitor
mit Optionen wie --env
oder --property
:
$ udevadm monitor --env
Dies ist getestet und funktioniert sowohl bei Debian als auch bei Arch einwandfrei, funktioniert aber wahrscheinlich bei allen Distributionen, auf die es sich bezieht udev
.