Wie kann ich Wechseldatenträger nach dem Einlegen automatisch in / media / <LABEL> einbinden, ohne dass eine Desktop-Umgebung vorhanden ist?

17

Ich habe ein Debian-Sid-System (Wheezy) (und dasselbe für arch), ohne Desktop-Umgebung (und ohne Xorg überhaupt).

Ich kann meine SD-Karten, USB-Sticks und die externe Festplatte /media/manuell mit mount/ umountund den entsprechenden Einträgen in /etc/fstaboder automatisch beim Booten in ein bestimmtes Verzeichnis einbinden. Dies ist jedoch zwingend, einschränkend und nicht dynamisch genug für meine Anforderungen: Wenn ich möchte, dass sie gemountet werden /media/<LABEL>, benötigt jedes Gerät mit einem anderen <LABEL>einen eigenen Eintrag, und jedes <LABEL>Unterverzeichnis muss auch manuell erstellt / entfernt werden /media/.

Also, was ist der beste Weg , um sie zu montieren automatisch in /media/<LABEL> beim Einführen (und sie aus dem Dateisystem so schnell abzuhängen , wie sie vom Netz getrennt sind , egal , wie riskant es für die Daten ist )?

Die ideale Lösung wäre:

  1. erkennen , wenn ein Wechselmedium wird in gestecktem (dh wenn hinzugefügt , /dev/wie sdax, sdbx, ... von udev)
  2. Erstellen Sie ein Verzeichnis /media/gemäß seiner Bezeichnung (Bezeichnung des Wechseldatenträgers)
  3. mounten Sie es im Verzeichnis /media/<LABEL>im RWModus (falls das Dateisystem dies unterstützt) mit der flushOption (für a vfat)
  4. Ermitteln Sie, ob das Medium ausgesteckt wurde
  5. Wenn dies der Fall ist, hängen Sie es aus dem Dateisystem aus
  6. entfernen Sie das entsprechende Verzeichnis aus /media/

(die Geräte sollten oviously im Synchronbetrieb montiert werden, um Datenverluste zu vermeiden , wenn heiß unplugged wegen Cachen edit: sync ist viel zu viel für vfatWechselmedien so flush als Kompromiss geschaffen wurde , weniger sicher als sync, aber weniger riskant nach dem Leben -Flash-Speicherzyklen)

Ich fand einige Infos über autofs, HAL, udisks, udisks2, usbmountusw., aber es ist unklar , welche veraltet ist oder bevorzugt wird , und trotzdem habe ich nicht herausgefunden, wie sie auf meinem System leicht zu konfigurieren , das zu tun, bis jetzt ...

Cedbeu
quelle
Haben Sie nach ähnlichen Fragen gesucht? Ich erinnere mich, dass es schon gefragt wurde. Zweitens sollte das Aushängen vor dem Ausstecken erfolgen.
Enzotib
1
Natürlich habe ich: o] Hier und auf Superuser. Das Problem ist, dass sich Tools weiterentwickeln (udisks / udev) oder veraltet sind (HAL?), Andere "nicht bevorzugt" (udisks2?) Und so weiter. Wie auch immer, ich konnte keine funktionierende oder klare Lösung finden. Die meisten meiner Erkenntnisse beruhen auf einem Desktop-Umgebungsmechanismus (Gnome, KDE oder XFCE). Ich möchte keine installieren müssen. Über Unmouting, nicht unbedingt. Wenn das Gerät auf eingestellt ist, synckann ein Deamon das Gerät aus dem fs aushängen, wenn er feststellt, dass es ohne Datenverlust ausgesteckt wurde. Das machen alle Desktop-Distributionen. Ich will das im Terminal.
Cedbeu
Schauen Sie sich diesen Ersatz für anhalevt . DE erwartet im Allgemeinen, dass Sie das Gerät aus dem Dateimanager auswerfen , bevor Sie es physisch ausstecken.
Enzotib
Ja stimmt. Aber ich habe gesehen, dass einige (früher verwendete) Daemons Geräte von fs trennen konnten, die vor dem Trennen nicht getrennt wurden, und sogar ihr entsprechendes Verzeichnis aus / media / automatisch löschen konnten, und dass dies auf die normale Art und Weise geschehen konnte (wenn Geräte sind natürlich synchron konfiguriert). Vielen Dank für Ihren Link. Ich werde es mir ansehen, sobald ich auf udisksevt wieder zu Hause bin. Ich habe bereits einen Blick auf devmon und udiskie geworfen, aber sie sind nicht in den Debian-Paketen enthalten. Wenn ich noch etwas finde, werde ich es versuchen, aber ich kann nicht glauben, dass es unter Debian keine native Lösung dafür gibt.
Cedbeu
1
Ich bin auf Debian zu und ich verwende fdisk -lund dann mount- das zwei Befehle ist, aber OK, wenn Sie es automatisierbar, werden Sie das analysieren müssen , um fdisk -lAusgang und setzen es dann in die mount- ich solche Sachen zu tun mit head, tail, tr, cut, etc., aber die Profis tun es normalerweise mit awkoder, noch besser, suchen die Daten an der richtigen Stelle. Das Löschen /mntgeschieht automatisch , zumindest für mich, wenn ich mich an einbinde . Über den Auslöser (wenn Sie einstecken) habe ich keine Ahnung, aber bitte teilen Sie uns mit, wann Sie dieses Problem lösen.
Emanuel Berg

Antworten:

10

Ich glaube, du suchst pmount.

Wenn Sie beim Einfügen automatisch einbinden möchten, lesen Sie Automounting von USB-Sticks unter Debian .

Wenn Ihr System udisks2 verwendet , ist dies die bevorzugte Methode, um auf das Einlegen eines Wechseldatenträgers zu reagieren. Konfigurationshinweise für Udisks finden Sie im Arch Wiki .

Andernfalls ist das Programm, das auf das Erscheinen eines neuen Geräts reagiert, udev , sodass die automatische Bereitstellung durch eine udev-Regel ausgelöst wird . Das usbmount- Paket enthält udev-Regeln zum automatischen Mounten von USB-Speichergeräten und einigen anderen. Das Aufrufen mountvon udev-Regeln funktioniert nicht für FUSE-Dateisysteme (wie z. B. ntfs-3g). Verwenden Sie daher udisks, wenn Sie dies benötigen.

Sie können die Bereitstellung von Medien nicht automatisch aufheben, wenn sie entfernt werden, da die Kausalität auf diese Weise nicht funktioniert. Das Medium muss vor dem Entfernen ausgehängt werden. Bei schreibgeschützten Datenträgern können Sie nach dem Entfernen die Bereitstellung aufheben, obwohl dies einige Anwendungen verwirren kann, wenn auf dem plötzlich verschwundenen Dateisystem Dateien geöffnet sind. Wenn Sie bei beschreibbaren Medien ein bereitgestelltes Dateisystem entfernen, ist eine Beschädigung der Daten wahrscheinlich.

Gilles 'SO - hör auf böse zu sein'
quelle
Vielen Dank für die Antwort. Ich werde das so schnell wie möglich versuchen und die Leute hier wissen lassen. Über das Abmelden. Leute, bitte hört auf, mir zu sagen, dass dies eine Frage der Kausalität ist, wenn dies nicht der Fall ist: o] Das Abmelden nach dem Abziehen des Geräts ist sinnvoll (und möglich), sobald das Gerät synchron konfiguriert ist. Dann ist es nur eine Frage des Dateisystems. Wenn Daten ohne Zwischenspeicherung (synchron) übertragen wurden, ist es kein Problem, den Stecker zu ziehen, ohne die Bereitstellung aufzuheben. In diesem Fall kann die Bereitstellung aufgehoben werden. Dies ist nur hilfreich, um das System darüber zu informieren, dass das Gerät nicht mehr vorhanden ist.
Cedbeu
1
@cblab Du bist zu stark vereinfacht. Wenn eine Datei zum Schreiben geöffnet ist und Sie das Gerät herausziehen, ist die Datei wahrscheinlich beschädigt. Durch das Aufheben der Bereitstellung wird sichergestellt, dass keine Datei geöffnet ist. Bei vielen Dateisystemen (allerdings nicht FAT) ist das Aufheben der Bereitstellung mehr als das Setzen des Dirty-Bits auf 0. Sie müssen beispielsweise ein Protokoll leeren. Bei Flash-Geräten besteht ein Hauptproblem bei der Synchronisierung darin, dass das Gerät erheblich schneller abgenutzt wird, da Schreibgruppierungen verhindert werden. Siehe superuser.com/questions/180722/... und readlist.com/lists/vger.kernel.org/linux-kernel/22/111748.html
Gilles ‚SO- Anschlag, der böse‘
Hi @Gilles. Vielen Dank für Ihre Antworten. Ich glaube jedoch nicht, dass ich zu stark vereinfache. In einigen Punkten haben Sie recht. Der Benutzer entscheidet jedoch, ob er riskant leben möchte. Sie stimmen zu, dass Ihr Beitrag 7 Jahre alt ist. Jetzt vermeidet eine flushspeziell für vfatdiesen Zweck entwickelte Mount-Option diese Probleme: Das Schreiben wird nicht nach jedem Block ausgeführt, sondern sobald das Gerät inaktiv zu sein scheint. Und Flash-Speicher haben ihre Lebenszyklen in Sackgassen erheblich verlängert. Jetzt muss der Benutzer natürlich wissen, dass er keine Geräte vom Computer trennen darf, während Dateien geöffnet werden oder während einer Kopie (oder kurz danach). Aber es ist der gute Kompromiss.
Cedbeu
der usbmount hätte die gute option für mich sein können, aber leider hängt er die geräte nicht in einem ordner abhängig von ihren etikettennamen ein, sondern in /media/usb-*, was nicht meinen bedürfnissen entspricht. Ich möchte in der Lage sein, die Geräte automatisch /media/<DEV_LABEL>mit flushParametern einzuhängen, wenn sie erkannt werden (wenn möglich mit dynamischer Erstellung des Verzeichnisses), und sie abzuhängen und die Verzeichnisse /media/automatisch zu entfernen, wenn sie nicht mehr erkannt werden. Das Risiko, das ich eingehen muss, liegt bei mir.
Cedbeu
1
Beachtenusbmountjessie
Sie,
2

Hier ist, wie ich es vor kurzem gemacht habe, und ich bin jetzt ziemlich zufrieden mit diesem Ansatz. Dies ist für Ubuntu 12.04 + gentoo, aber ich vermute, dass jede Distribution, die die Installation von udev und autofs erlaubt, funktionieren sollte.

Voraussetzungen: Sie müssen udev + autofs installiert haben.

Schritt 1)

Erstellen Sie die folgende Datei "/etc/udev/rules.d/90-usbsd-auto.rules" (Sie können natürlich einen beliebigen Namen verwenden, solange dieser mit ".rules" endet). :

# Add symlink /dev/usbdisks/<label> to /dev/sd[a-z][1-9] 
# if partition has a label
# Add symlink /media/usb/<label> to /media/autousb/<label>
# for automounter support
ACTION=="add", KERNEL=="sd*", ENV{DEVTYPE}=="partition", \
    ENV{ID_BUS}=="usb", ENV{ID_FS_LABEL_ENC}=="?*", \
    SYMLINK+="usbdisks/$env{ID_FS_LABEL_ENC}", MODE:="0660", \
    RUN+="/bin/rm /media/usb/$env{ID_FS_LABEL_ENC}", \
    RUN+="/bin/ln -sf /media/autousb/$env{ID_FS_LABEL_ENC} /media/usb/$env{ID_FS_LABEL_ENC}"

# Fallback: If partition has a NO label, use kernel name (sd[a-z][1-9])
ACTION=="add", KERNEL=="sd*", ENV{DEVTYPE}=="partition", \
    ENV{ID_BUS}=="usb", ENV{ID_FS_LABEL_ENC}!="?*", \
    SYMLINK+="usbdisks/%k", MODE:="0660", \
    RUN+="/bin/rm /media/usb/%k", \
    RUN+="/bin/ln -sf /media/autousb/%k /media/usb/%k"

# Some FileSystems emit a "change" event when they are unmounted.
# UDEV seems to delete the device symlink in this case :-(
# So we need to re-create it here
ACTION=="change", KERNEL=="sd*", ENV{DEVTYPE}=="partition", \
    ENV{ID_BUS}=="usb", ENV{ID_FS_LABEL_ENC}=="?*", \
    SYMLINK+="usbdisks/$env{ID_FS_LABEL_ENC}", MODE:="0660"

# Fallback: If partition has NO label, use kernel name
ACTION=="change", KERNEL=="sd*", ENV{DEVTYPE}=="partition", \
    ENV{ID_BUS}=="usb", ENV{ID_FS_LABEL_ENC}!="?*", \
    SYMLINK+="usbdisks/%k", MODE:="0660"


# When device is removed, also remove /media/usb/<label>
ACTION=="remove", KERNEL=="sd*", ENV{DEVTYPE}=="partition", \
    ENV{ID_BUS}=="usb", ENV{ID_FS_LABEL_ENC}=="?*", \
    RUN+="/bin/rm /media/usb/$env{ID_FS_LABEL_ENC}"

# Fallback: If partition has no label, remove /media/usb/%k
ACTION=="remove", KERNEL=="sd*", ENV{DEVTYPE}=="partition", \
    ENV{ID_BUS}=="usb", ENV{ID_FS_LABEL_ENC}!="?*", \
    RUN+="/bin/rm /media/usb/%k"

Vorgehensweise: Es werden zwei Symlinks erstellt, einer für die USB-Speichergerätepartition unter "/ dev / usbdisks / <...>". Es wird entweder die Bezeichnung der USB-Speicherpartition oder der Name des Kernels verwendet, wenn keine Bezeichnung vorhanden ist. Der zweite Symlink führt von "/ media / usb / <...>" zu "/ media / autousb / <...>", um den Automounter zu unterstützen (siehe Schritt 2).

Hinweis: Ich habe die Regeln ursprünglich nicht mit den ID_FS_LABEL_ENC-Variablen verwendet, da dies meiner Meinung nach gefährlich ist. Was passiert, wenn Sie zwei USB-Sticks mit demselben Etikett anschließen?

Das Plakat wollte jedoch ausdrücklich das Etikett der USB-Festplatte verwenden, daher habe ich die Regeln entsprechend geändert.

Um sicherzustellen, dass udev diese Regeln liest, verwenden Sie

sudo udevadm control --reload-rules

Mit dieser udev-Regeldatei wird alles so eingerichtet, dass die USB-Speichergerätepartition automatisch bereitgestellt wird. Beachten Sie jedoch, dass das Gerät derzeit (absichtlich) NICHT automatisch bereitgestellt wird. Es wird automatisch gemountet, sobald Sie es mit verwenden

Schritt 2)

Richten Sie autofs in automount / media / autousb / <...> ein: Ich habe meiner Datei "/etc/auto.master" (für Ubuntu 12.04) die folgende Zeile hinzugefügt:

/media/autousb /etc/auto.usb --timeout=60

Dies bedeutet, dass AutoFS das Gerät nach 60 Sekunden Inaktivität ausgehängt hat. Je nach Geschmack möchten Sie möglicherweise weniger oder mehr verwenden.

Für Gentoo muss "/etc/autofs/auto.master" geändert werden, damit die Verwendung sinnvoll ist

/media/autousb /etc/autofs/auto.usb --timeout=60

Jetzt habe ich "auto.usb" mit folgendem Inhalt erstellt:

#!/bin/bash

key=${1}
fstype=$(/sbin/blkid -o value -s TYPE /dev/usbdisks/${key})
if [ "${fstype}" = "vfat" ] ; then
  echo "-fstype=vfat,sync,uid=0,gid=plugdev,umask=007 :/dev/usbdisks/${key}"
  exit 0
fi
if [ "${fstype}" = "ntfs" ] ; then
  echo "-fstype=fuse.ntfs-3g,sync,uid=0,gid=plugdev,umask=007 :/dev/usbdisks/${key}"
  exit 0
fi
if [ "${fstype}" = "ext4" ] ; then
  echo "-fstype=ext4,sync,nocheck :/dev/usbdisks/${key}"
  exit 0
fi

exit 1

Diese auto.usb muss ausführbar sein, damit autofs diese als (bash) Skript verwendet. Also zum Beispiel

sudo chmod 0755 /etc/auto.usb

Vorgehensweise: Dieses Skript teilt AutoFS (/ usr / sbin / automount) mit, wie die USB-Speichergerätepartition gemountet werden soll.

Das Skript verwendet zuerst "/ sbin / blkid", um herauszufinden, welche Art von Dateisystem sich auf der Partition befindet.

Das Skript bietet dann abhängig von der Gerätepartition die richtigen Einhängeoptionen.

Hinweis: Ich habe Beispielcode für die Dateisysteme "vfat" (wahrscheinlich am häufigsten für USB-Sticks), "ntfs" und "xfs" hinzugefügt. Natürlich ist es ziemlich einfach, dies zu erweitern, um mehr Dateisysteme zu unterstützen.

Schritt 3) Optional ... Um den / die USB-Stick (s) (oder Partitionen auf Ihrem USB-Stick) zu entfernen, erstellen Sie ein Skript unter / sbin / usbeject:

#!/bin/bash
killall -s SIGUSR1 /usr/sbin/automount

Mit diesem Skript können Sie "sudo usbeject" verwenden, um die Bereitstellung aller bereitgestellten USB-Gerätepartitionen aufzuheben (indem Sie automount anweisen, die Bereitstellung aufzuheben).

Natürlich können Sie einfach sicherstellen, dass die Partition nirgendwo verwendet wird. automounter wird dann die Partition nach dem 60-Sekunden-Timeout aushängen ...

Der eigentliche Trick dabei ist die Verwendung von Symlinks von "/ media / usb" nach "/ media / autousb":

  • Die "/ media / usb" -Symlinks werden von udev erstellt und geben dem Benutzer einen einfachen Überblick darüber, welche USB-Speichergerätepartitionen vorhanden sind
  • AutoFS stellt die Partition dann bei Bedarf automatisch bereit, wenn Sie sie über / media / usb verwenden
  • Mit der skriptbasierten "auto.usb" -Datei unterstützen Sie möglicherweise alle Arten von Dateisystemen. Außerdem können Sie auch alle Arten von Namensschemata unterstützen.
  • Dieser Ansatz unterstützt USB-Sticks mit mehreren Partitionen, auch wenn diese Partitionen unterschiedliche Dateisystemtypen verwenden.
Ingo Blackman
quelle
2

Ok, es ist lange her, aber ich werde meine Frage immer noch mit der besten Option beantworten, die ich bis jetzt gefunden habe. Um es zusammenzufassen: Erstellen Sie eine udevRegel, die mit einigen Skripten verknüpft ist (die Verzeichnisse erstellen / entfernen und Wechseldatenträger entfernen / einbinden) und die an das udevGeräteereignis type = angehängt ist partition.

1 - Erstellen von Skripten zum Hinzufügen / Entfernen

Speichern Sie das folgende Skript storage-automount.shin /lib/udev/und machen Sie es ausführbar ( sudo chmod a+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=${DEVNAME##*/}
fi

# if a plugdev group exist, retrieve it's 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

Speichern Sie das folgende Skript storage-autounmount.shin /lib/udev/und machen Sie es ausführbar ( sudo chmod a+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=${DEVNAME##*/}
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 udevRegel zum Anhängen dieser Skripte an Ereignisse

Und schließlich fügen Sie eine udevRegel hinzu /etc/udev/rules.d/, zum Beispiel 85-storage-automount.rules:

ENV{DEVTYPE}=="partition", RUN+="/lib/udev/storage-automount.sh", ENV{REMOVE_CMD}="/lib/udev/storage-autounmount.sh"

und machen Sie es die gleichen Berechtigungen wie die anderen Regeln in diesem Verzeichnis / Ordner

Wenn Sie nun ein Speichergerät anschließen, wird ein Verzeichnis /media/gemäß dem Partitionsnamen erstellt (ich erinnere mich nicht, aber ich denke, es funktioniert auch mit einer NTFS-Partition) und Ihre Partition wird darin eingebunden. Es ist R / W für Benutzer, wenn Sie eine plugdevGruppe auf Ihrem System haben. Außerdem sind die Geräte im synchronen Modus montiert, um das Risiko eines Datenverlusts bei einem Hot-Unplugging zu begrenzen.

Wenn das Gerät entfernt wird, wird die Bereitstellung aufgehoben und das Verzeichnis wird entfernt /media

Das Tool zum Überwachen der udevEreignisse umfasst außerdem udevadm monitorOptionen wie --envoder --property:

$ udevadm monitor --env

Dies ist getestet und funktioniert sowohl auf Debian als auch auf Arch, funktioniert aber wahrscheinlich auf allen Distributionen, die darauf angewiesen sind udev.

Cedbeu
quelle
Ich denke, dass + r durch + x ersetzt werden sollte in "set it to executable (sudo chmod + r /lib/udev/storage-autounmount.sh)"
Jeremy
Ich habe eine neue jessie-Installation, bei der ich Ihre Anweisungen genau befolgt habe, aber Automount nicht von tty1 aus ausführen kann, auch nicht nach dem Neustart (was nicht in Ihren Anweisungen enthalten ist, aber ich habe auch kein Automount vor dem Neustart). Das Einstecken des USB-Laufwerks wird erkannt (ich erhalte Konsolenmeldungen), aber in / media / wird nichts angezeigt (außer CD-ROM). Ich kann das USB-Laufwerk manuell einbinden, damit ich weiß, dass dies auch funktioniert. [Fortsetzung in folgendem Kommentar]
TomRoche
[Fortsetzung des vorherigen Kommentars] Ich habe package = udev installiert, dirs = {/ etc / udev / rules.d /, / lib / udev /} vorausgefüllt und executable = udevadm in $ PATH. Ich würde gerne wissen (1), in welcher Debian-Veröffentlichung Sie diese Arbeit gemacht haben? (Ich gehe davon aus, dass es wheezy ist) (2) Welche Debian-Pakete haben Sie außerdem installiert udev?
TomRoche
@TomRoche War Wheezy, zu der Zeit tatsächlich, und ich hatte kein spezielles Paket installiert, versuchte ich, ein minimalistisches Setup durchzuführen und versuchte, Pakete, die nicht durch die Minimalinstallation bereitgestellt wurden, so weit wie möglich zu vermeiden. Ich musste nicht neu starten, deshalb steht das nicht in meiner Anleitung. Es ist schon eine ganze Weile her, dass ich nicht mehr darauf eingegangen bin. Vielleicht werde ich es bald noch einmal versuchen.
Cedbeu
1

Ich denke, es ist ziemlich spät, aber ich werde dies posten, wenn jemand es braucht: (auch meine erste StackExchange-Antwort)

Nachdem ich an vielen Stellen nach der Lösung gesucht hatte, fand ich im Arch Wiki eine einfache Lösung:

Link zum Arch Wiki .

Wir können eine udisks2-Regel hinzufügen, um das Standard-Mount-Verzeichnis von /run/media/$USER/auf zu ändern /media/<Label>.

Fügen Sie die folgende Regel /etc/udev/rules.d/mit dem Namen hinzu 99-udisks2.rules:

ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"

Dann können wir einfach ein einfaches Tool wie Udiskie für automount installieren .

Abhijeet Bhattacharjee
quelle
Hallo und willkommen hier. Vielen Dank für Ihre Wahl. Für Udiskie wollte ich eigentlich eine vollständige Befehlszeilenoption (weder Xorg noch eine grafische Oberfläche auf dem System verfügbar). Und… die Frage ist 6,5 Jahre alt (oh Gott!), Ich denke, die Dinge haben sich jetzt geändert :) Aber trotzdem +1 für deine erste Antwort, danke.
Cedbeu
1

Bitte besuchen Sie die ArchWiki Udev Seite . Sie sollten nicht mountvon Udev-Regeln oder von Skripten ausgeführt werden, die von Udev-Regeln ausgeführt werden.

Wie im udev-media-automount- Projekt gezeigt, ist dies jedoch recht einfach, indem eine Systemd-Unit aus der Udev-Regel aufgerufen wird, die dann ein Skript aufruft, das das Mounten ausführt. Im Gegensatz zu udisks2 und anderen Lösungen ist udev-media-automount auf den einfachen Fall ausgerichtet, in dem Sie als rootBenutzer etwas bereitstellen möchten, ohne unbedingt auf die Anwesenheit einer Desktop-Umgebung oder einer "Benutzersitzung" zu warten. Es scheint genau das zu sein, wonach das OP verlangt, und ich fand es funktional und leicht verständlich.

Metamorph
quelle
Nett, danke. Das ist eine ziemlich alte Frage, die ich gestellt habe (vor fast 7 Jahren… fühle ich mich nicht jünger ^^). Aber ich werde trotzdem einen Blick auf Ihren Vorschlag werfen. Ich denke, die Systemumgebung ist seitdem viel ausgereifter geworden. Danke, ich werde das überprüfen!
Cedbeu
0

Ich habe einen Weg gefunden, dies zu tun, indem ich die Datei / etc / fstab bearbeitet habe. Ein einfacher Eintrag sieht so aus:

/dev/sdb1 /media/robot/hdd1 ntfs defaults 0 0

<file system> <mount point> <type> <options> <dump> <pass>

Peter
quelle
Mounts in /etc/fstabwerden nur beim Booten automatisch gemountet.
Graeme
@Graeme, ich habe eine SD-Karte, die ich über / etc / fstab einhänge. Als Test habe ich versucht, die SD-Karte vom Computer zu trennen und physisch zu entfernen. Ich habe überprüft, dass das Mount nicht mehr über 'df' angezeigt wird. Wenn ich meine SD-Karte wieder einfügte, wurde die Halterung erneut angezeigt, obwohl ich sie nicht explizit wieder eingehängt hatte. Dies ist auf Ubuntu 16.04.
Gino
@Gino, Ubuntu hat seit einiger Zeit standardmäßig das automatische Mounten durchgeführt.
Graeme
@Graeme, es sieht so aus, als würde der Ubuntu-Automounter das richtige Mount aus / etc / fstab auswählen, falls es dort existiert. Zumindest unter Ubuntu 16.04 wird das Mount also automatisch beim Booten und nach erneuten Einfügungen in den USB-Port gemountet , falls vorhanden.
Gino
@Gino Ich habe Ubuntu eine Weile nicht mehr benutzt, aber ich bin mir ziemlich sicher, dass es Ihre SD-Karte automatisch einbinden wird, unabhängig davon, was sich in der fstab befindet. In Fstab geht es mehr um das Einrichten von Kernsystemelementen als um zusätzliche Festplatten auf modernen Systemen.
Graeme