Automatische Montage von USB-Sticks auf Debian

10

Ich führe Debian Squeeze auf einem Plug-Computer aus (also nur SSH, keine GUI) und versuche es so zu bekommen, dass ein eingesteckter USB-Stick automatisch gemountet wird.

Was ich getan habe, ist eine Installation, autofsdie, wie ich erfahre, die automatische Montage übernimmt, vorausgesetzt, sie weiß, wo sich das Gerät befindet /dev.

Das Problem ist, dass der USB-Stick nicht immer denselben Gerätenamen hat. Manchmal ist es /dev/sdc1manchmal /dev/sdd1usw.

udevUm dem abzuhelfen, muss ich sicherstellen, dass der USB-Stick immer den gleichen Namen hat.

Ich habe folgende Informationen erhalten udevadm:

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/block/sdd/sdd1':
    KERNEL=="sdd1"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{partition}=="1"
    ATTR{start}=="63"
    ATTR{size}=="129339"
    ATTR{ro}=="0"
    ATTR{alignment_offset}=="0"
    ATTR{discard_alignment}=="0"
    ATTR{stat}=="      31      244      275      190        0        0        0        0        0      190      190"
    ATTR{inflight}=="       0        0"

  looking at parent device '/devices/platform/orion-ehci.0/usb1/1-1/1-1.2/1-1.2:1.0/host8/target8:0:0/8:0:0:0/block/sdd':
    KERNELS=="sdd"
    SUBSYSTEMS=="block"
    DRIVERS==""
    ATTRS{range}=="16"
    ATTRS{ext_range}=="256"
    ATTRS{removable}=="1"
    ATTRS{ro}=="0"
    ATTRS{size}=="129439"
    ATTRS{alignment_offset}=="0"
    ATTRS{discard_alignment}=="0"
    ATTRS{capability}=="51"
    ATTRS{stat}=="      56      727      783      520        0        0        0        0        0      520      520"
    ATTRS{inflight}=="       0        0"
    ATTRS{events}=="media_change"
    ATTRS{events_async}==""
    ATTRS{events_poll_msecs}=="-1"

  looking at parent device '/devices/platform/orion-ehci.0/usb1/1-1/1-1.2/1-1.2:1.0/host8/target8:0:0/8:0:0:0':
    KERNELS=="8:0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sd"
    ATTRS{device_blocked}=="0"
    ATTRS{type}=="0"
    ATTRS{scsi_level}=="3"
    ATTRS{vendor}=="        "
    ATTRS{model}=="Flash Disk      "
    ATTRS{rev}=="2.00"
    ATTRS{state}=="running"
    ATTRS{timeout}=="30"
    ATTRS{iocounterbits}=="32"
    ATTRS{iorequest_cnt}=="0x90"
    ATTRS{iodone_cnt}=="0x90"
    ATTRS{ioerr_cnt}=="0x0"
    ATTRS{modalias}=="scsi:t-0x00"
    ATTRS{evt_media_change}=="0"
    ATTRS{queue_depth}=="1"
    ATTRS{queue_type}=="none"
    ATTRS{max_sectors}=="240"

  looking at parent device '/devices/platform/orion-ehci.0/usb1/1-1/1-1.2/1-1.2:1.0/host8/target8:0:0':
    KERNELS=="target8:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

  looking at parent device '/devices/platform/orion-ehci.0/usb1/1-1/1-1.2/1-1.2:1.0/host8':
    KERNELS=="host8"
    SUBSYSTEMS=="scsi"
    DRIVERS==""

  looking at parent device '/devices/platform/orion-ehci.0/usb1/1-1/1-1.2/1-1.2:1.0':
    KERNELS=="1-1.2:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb-storage"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{bInterfaceClass}=="08"
    ATTRS{bInterfaceSubClass}=="06"
    ATTRS{bInterfaceProtocol}=="50"
    ATTRS{modalias}=="usb:v1976p6025d0100dc00dsc00dp00ic08isc06ip50"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/platform/orion-ehci.0/usb1/1-1/1-1.2':
    KERNELS=="1-1.2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="80"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{urbnum}=="383"
    ATTRS{idVendor}=="1976"
    ATTRS{idProduct}=="6025"
    ATTRS{bcdDevice}=="0100"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="12"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="11"
    ATTRS{devpath}=="1.2"
    ATTRS{version}==" 1.10"
    ATTRS{maxchild}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{authorized}=="1"

  looking at parent device '/devices/platform/orion-ehci.0/usb1/1-1':
    KERNELS=="1-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{urbnum}=="197"
    ATTRS{idVendor}=="1a40"
    ATTRS{idProduct}=="0101"
    ATTRS{bcdDevice}=="0111"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="480"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="2"
    ATTRS{devpath}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{maxchild}=="4"
    ATTRS{quirks}=="0x0"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{authorized}=="1"
    ATTRS{product}=="USB 2.0 Hub"

  looking at parent device '/devices/platform/orion-ehci.0/usb1':
    KERNELS=="usb1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bMaxPower}=="  0mA"
    ATTRS{urbnum}=="24"
    ATTRS{idVendor}=="1d6b"
    ATTRS{idProduct}=="0002"
    ATTRS{bcdDevice}=="0206"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="480"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{version}==" 2.00"
    ATTRS{maxchild}=="1"
    ATTRS{quirks}=="0x0"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Linux 2.6.38.8 ehci_hcd"
    ATTRS{product}=="Marvell Orion EHCI"
    ATTRS{serial}=="orion-ehci.0"
    ATTRS{authorized_default}=="1"

  looking at parent device '/devices/platform/orion-ehci.0':
    KERNELS=="orion-ehci.0"
    SUBSYSTEMS=="platform"
    DRIVERS=="orion-ehci"
    ATTRS{modalias}=="platform:orion-ehci"

  looking at parent device '/devices/platform':
    KERNELS=="platform"
    SUBSYSTEMS==""
    DRIVERS==""

Ich habe versucht, udevRegeln zu schreiben , um den USB-Stick zu zwingen, den Namen zu übernehmen, /dev/usbstickaber bisher war ich nicht erfolgreich.

Kann mir jemand helfen, welche Regel ich in meiner Regeldatei angeben muss, damit dieser USB-Stick immer den gleichen Namen erhält?

- Oder gibt es eine viel einfachere Möglichkeit, den fehlenden USB-Stick automatisch zu montieren?

AKTUALISIEREN

OK, also habe ich einige Fortschritte gemacht. Ich habe die folgende Regel hinzugefügt:

SUBSYSTEMS=="scsi", ATTRS{model}=="Flash Disk ", DRIVERS=="sd", NAME="usbstick-%k" RUN+="mkdir /mnt/usbstick-%k; mount /dev/usbstick-%k /mnt/usbstick-%k"

Ich weiß, dass dies noch einige Arbeit in Bezug auf das Hinzufügen / Entfernen erfordert, aber es ist vorerst nur ein grundlegender Test.

Der Effekt davon ist , dass ich jetzt drei neue Geräteknoten bekommen verwalten /dev, nämlich /dev/usbstick-sdc, /dev/usbstick-sdc1und usbstick-sg2.

Ich habe jedoch festgestellt, dass der Code in diesem RUNAbschnitt nur einmal ausgeführt wird und nur ein Verzeichnis erstellt mnt/usbstick-sdc. Ich habe auch festgestellt, dass das Verzeichnis immer leer ist, so dass eindeutig immer noch etwas schief geht! (obwohl ich Fortschritte mache).

jon
quelle
Sollte das zweite /dev/sdc1sein sdd1? Und Sie können blkiddas Laufwerk eindeutig identifizieren (nun ja , tatsächlich die Partition; es ändert sich, wenn Sie neu formatieren).
Kevin
Richtig, habe das gerade behoben. Ich möchte nur, dass ein eingesteckter USB-Stick in ein Verzeichnis eingebunden wird. Ich bin mir ziemlich sicher, dass ich eine udevRegel verwenden sollte, um Geräteknoten für jede Partition zu erstellen, aber ich bin mir nicht sicher, für welche Ebene der udevadmAusgabe Regeln erstellt werden sollen!
Jon
Ihre Regel sieht zu kompliziert aus. Versuchen Sie, eine einfache zu machen, mit nur einer ACTION==, einer KERNEL==und einer ATTRS{something}==(es ist völlig machbar - das ist, was ich benutze). Erwägen Sie außerdem, ein einzelnes Skript auszuführen, das aus der Befehlskette in stammt RUN+=.
Rozcietrzewiacz
Vielen Dank für den Rat, aber die Frage bleibt: Auf welche Ebene des Gerätebaums sollte ich mit meiner Regel zielen? Das alles scheint furchtbar verwirrend und es gibt wirklich nicht viele Informationen online, um dies zu erklären. Ich schätze die Zeit, die Sie bisher gebraucht haben, um es mir zu erklären, sehr. Ich habe das Gefühl, fast da zu sein, aber nur das Level zu verfehlen, auf das ich zielen möchte.
Jon
Ich habe jetzt diese sehr grundlegende Regel ausprobiert: KERNEL=="sd??", NAME="%k", RUN+="mkdir /mnt/usbstick-%k; mount /dev/usbstick-%k /mnt/usbstick-%k"- aber nein, das funktioniert natürlich auch nicht. Ich bin jetzt zunehmend frustriert, nachdem ich fast den ganzen Tag damit verbracht habe, herauszufinden, wie man einen USB-Stick bekommt, der angeschlossen ist, um sich selbst zu montieren. Sollte es wirklich so schwierig sein? Die Ausgabe von udevadm test /sys/block/sddist natürlich praktisch unlesbar, daher kann ich nicht wissen, wo ich falsch liege. Kann mich jemand in die richtige Richtung weisen?
Jon

Antworten:

13

Ich dachte, es sollte einen viel einfacheren Weg geben, um solch ein häufiges Problem anzugehen, und das gibt es auch. Folgendes habe ich auf meinem Wheezy / Sid-Server versucht:

sudo apt-get install usbmount

USB-Stick einstecken, fertig! Mein Stick ist jetzt über zugänglich /media/usb.

Übrigens, usbmount hat keine Manpage, bitte lesen Sie /usr/share/doc/usbmount/README.gzstattdessen. Es scheint, dass usbmount Ihren Stick standardmäßig mit der Synchronisierungsoption montiert. Es ist möglicherweise viel besser für Ihren Stick, ihn asynchron zu mounten und auszuführen syncoder umountbevor Sie ihn ausstecken. Das ist konfigurierbar.

Arjan Drieman
quelle
siehe auchpumount
Alex
usbmountAchten Sie
malat
Wenn Sie dies auf Debian Jessie ausführen, scheint usbmount es nie zu mounten. Die Paketseite sagt, dass es jetzt nicht mehr gewartet wird und ich systemd ausführe. Ich frage mich, ob dieses Paket nicht mehr mit Systemänderungen funktioniert.
Travis Griggs
In der Tat hat bei Jessie nicht für mich funktioniert, siehe meine Antwort (dies: ddumont.wordpress.com/2015/09/27/… hat funktioniert)
Paul
2

Beachten Sie, dass Sie nicht nur einen einzelnen Geräteknoten haben können, um ein mögliches Pendrive darzustellen. Was ist, wenn Sie zwei davon anschließen? Oder wenn der Pendrive mehr als eine Partition hat?

Im Allgemeinen verwenden Sie zum Erstellen eines benutzerdefinierten Geräteknotens Folgendes SYMLINK+=: grep in den Regeln danach, um zu sehen, wie es verwendet wird : grep SYMLINK /etc/udev/rules.d/*. Wie bei allen von udev ausgelösten Befehlen können Sie einige sinnvolle Variablen verwenden, die in beschrieben sind man udev. Möglicherweise stellen Sie fest, dass Sie dem Gerät keinen benutzerdefinierten Namen geben müssen, da Sie den Namen (über die %kVariable) einem Skript zuordnen können.

Schauen Sie sich für die Auto-Mount-Lösung UAM an , das ich in der Antwort auf diese Frage ein wenig beschrieben habe .

rozcietrzewiacz
quelle
Ich verstehe diese Einschränkungen. Zufällig muss ich immer nur einen einzigen USB-Stick unterstützen, der gleichzeitig an dieses bestimmte System angeschlossen ist. Ich müsste jedoch mehrere Partitionen auf dem USB-Stick unterstützen (es wäre schön, wenn diese vom Einhängepunkt aus in Unterordner eingebunden werden könnten). Haben Sie angesichts dieser Anforderungen Ratschläge für eine mögliche Lösung? Aufgrund der Art des Projekts muss ich die Verwendung zusätzlicher Software von Drittanbietern nach Möglichkeit vermeiden.
Jon
Dann schauen Sie sich die Bearbeitung an, die ich gerade vorgenommen habe (der mittlere Teil). Wäre das genug?
Rozcietrzewiacz
Beachten Sie auch, dass UAM nicht wirklich ein Programm ist - es sind ein paar nette udevRegeln mit zugehörigen Skripten. Sie können sich die Regeln ansehen und sie einfach an Ihre Bedürfnisse anpassen.
Rozcietrzewiacz
Danke für den Hinweis. Eine andere Sache: Glauben Sie, Sie könnten sich meine Ausgabe ansehen udevadmund mir sagen, auf welches Gerät ich mit meiner Regel eigentlich zielen sollte? Die verschiedenen Beispiele, die ich online gesehen habe, scheinen alle viel kürzere Bäume zu beinhalten, und jedes Beispiel scheint auf eine andere Geräteebene abzuzielen, ohne zu erklären, auf welche und warum.
Jon
Habe gerade ein Update oben hinzugefügt, irgendwelche Ideen? Vielen Dank!
Jon
2

Hier ist, wie ich es kürzlich gemacht habe, und ich bin jetzt ziemlich zufrieden mit diesem Ansatz. Dies ist für Ubuntu 12.04 + Gentoo, aber ich denke, jede Distribution, die die Installation von udev und autofs ermöglicht, sollte funktionieren.

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

Schritt 1)

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

# Add symlink /dev/usbdisks/<label> to /dev/sd[a-z][1-9] 
# for automounter support

ACTION=="add", KERNEL=="sd*", ENV{DEVTYPE}=="partition", \
    ENV{ID_BUS}=="usb", \
    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", \
    SYMLINK+="usbdisks/%k", MODE:="0660"


# When device is removed, also remove /media/usb/<...>
ACTION=="remove", KERNEL=="sd*", ENV{DEVTYPE}=="partition", \
    ENV{ID_BUS}=="usb", \
    RUN+="/bin/rm /media/usb/%k"

Was dies bewirkt: Es werden zwei Symlinks erstellt, einer für die USB-Speichergerätepartition unter "/ dev / usbdisks / <...>".

Der zweite Symlink wird von "/ media / usb / <...>" zu "/ media / autousb / <...>" verlinkt. Dies erfolgt zur Unterstützung von Automountern (siehe Schritt 2).

Um sicherzustellen, dass udev diese Regeln liest, verwenden Sie

sudo udevadm control --reload-rules

Hinweis: Gleicher Name für denselben USB-Stick: Möglich, aber möglicherweise gefährlich: Sie können beispielsweise "$ env {ID_FS_LABEL_ENC}" anstelle von "% k" in den obigen UDEV-Regeln verwenden. Dies verwendet das Volume-Label, um / media / usb / <...> zu erstellen. Was passiert jedoch, wenn Sie zwei USB-Sticks anschließen und beide dasselbe Volume-Label verwenden ...

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

Schritt 2)

Richten Sie autofs auf 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 deaktiviert. Je nach Geschmack möchten Sie möglicherweise weniger oder mehr verwenden.

Für Gentoo müssen Sie "/etc/autofs/auto.master" ändern, 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 dies als (Bash-) Skript verwendet. So zum Beispiel

sudo chmod 0755 /etc/auto.usb

Was bewirkt das: 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 Mount-Optionen.

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

Schritt 3)

Optional ... Um Ihre USB-Sticks (oder Partitionen auf Ihrem USB-Stick) "auszuwerfen" == zu entfernen, erstellen Sie ein Skript unter / sbin / usbeject:

#!/bin/bash
# make sure everything is written to USB disk(s)
sync
# sending SIUGSR1 to automount will unmount the media
killall -s SIGUSR1 /usr/sbin/automount

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

Natürlich können Sie einfach sicherstellen, dass die Partition nirgendwo verwendet wird. Der Automounter hebt dann die Partition nach dem 60-Sekunden-Timeout auf ...

Der eigentliche Trick besteht darin, Symlinks von "/ media / usb" zu "/ media / autousb" zu verwenden:

  • Die Symlinks "/ media / usb" werden von udev erstellt und geben dem Benutzer einen einfachen Überblick darüber, welche Partitionen von USB-Speichergeräten vorhanden sind
  • AutoFS stellt die Partition dann bei Bedarf automatisch bereit, wenn Sie sie über / media / usb verwenden
  • Mit der Skriptdatei "auto.usb" unterstützen Sie möglicherweise jede Art von Dateisystem und zusätzlich jede Art von Namensschema.
  • Dieser Ansatz unterstützt USB-Sticks mit mehreren Partitionen, auch wenn diese Partitionen unterschiedliche Dateisystemtypen verwenden.
Ingo Blackman
quelle
Könnte ich Ihnen zeigen, wie der Autofs-Hinweis mein Verzeichnis / home / frank zerstört? Vielen Dank.
Frank
1

Es tut mir leid, meine eigene Frage zu beantworten, und ich danke rozcietrzewiacz für ihren Beitrag, aber ich habe es schließlich geschafft, nach stundenlangem Online-Lesen einige wichtige Fortschritte mit der folgenden Regel zu erzielen :

SUBSYSTEMS=="scsi", KERNEL=="sd[a-h]1", SYMLINK+="removable", RUN+="/bin/mount /dev/removable /path/to/mount"

Dadurch wird die erste Partition eines SCSI-Geräts bereitgestellt. Ich denke, die nächste Frage wird sein, wie mehrere Partitionen bereitgestellt werden, aber das ist ein weiteres Problem für einen anderen Tag.

jon
quelle
1
Es ist keine gute Regel. Dies entspricht auch den Partitionen von Festplatten . Es gibt ein removableAttribut, auf das Sie testen sollten, und nicht blockauf scsi.
Rozcietrzewiacz
1

Ich habe festgestellt, dass die beste Antwort tatsächlich veraltet ist, da sie nicht gepflegt wird und nicht auf / von Jessie funktioniert (siehe Kommentar von malat).

Für mich (auf Jessie) hat die Lösung in diesem Blog wie ein Zauber gewirkt.

Dank an "ddumont", aber Veröffentlichung eines Überblicks über seinen Blog / Antwort hier, um mit möglichen Linkfäule in der Zukunft fertig zu werden.

Fügen Sie die folgende Zeile hinzu /etc/fstab

/dev/sr0 /media/bluray auto defaults,nofail,x-systemd.automount 0 2

Sie können dies mit Nano tun:

sudo nano /etc/fstab

Erläuterung:

/dev/sr0ist die Gerätedatei. Sie können auch einen der von udev in / dev / disk / by-id eingerichteten symbolischen Links verwenden. Sie müssen dies entsprechend Ihrer Gerätedatei ändern ( sudo fdisk -lum Geräte aufzulisten).

/media/blurayist der Einhängepunkt. Sie können einen anderen Einhängepunkt auswählen

nofail ist erforderlich, um eine Fehlermeldung beim Booten ohne Disc im optischen Laufwerk zu vermeiden

x-systemd.automount ist die Option, systemd so zu konfigurieren, dass die eingelegte Disc automatisch gemountet wird

Geben Sie noauto nicht an: Dies würde verhindern, dass systemd automatisch eine Disc einbindet, was den Zweck zunichte macht.

Prüfung

Führen Sie den Befehl journalctl -x -fin einem Terminal aus, um zu überprüfen, was mit systemd los ist

Laden Sie die Systemkonfiguration mit neu sudo systemctl daemon-reload.

Legen Sie eine Disc in Ihr optisches Laufwerk ein

Dann sollte journalctl etwas zeigen wie:

Sept. 27 16:07:01 frodo systemd[1]: Mounted /media/bluray.

Des Weiteren

Um NTFS-Laufwerke erfolgreich zu mounten, musste ich ntfs-3g (alte ntfsprogs) installieren.

sudo apt-get install ntfs-3g

Ich musste hfsprogs nicht installieren, damit ein OSX-formatierter USB funktioniert, aber Sie sollten es selbst überprüfen.

Paul
quelle
Es wird nicht automatisch auf meinem Debian Jessie mit einer USB-Festplatte gemountet.
Buhtz
@buhtz aber manuell montieren funktioniert? Die obigen Schritte haben bei mir nur für Laufwerke funktioniert, die sich beim Start im System befanden, und nicht "dynamisch" das Einsetzen und Entfernen von USBs, während das System ausgeführt wird.
Paul