web-dev-qa-db-fra.com

Comment puis-je altérer des lecteurs USB à Linux (Debian)?

À chaque nouvelle version, la façon dont les lecteurs d'automobiles USB de Linux semble changer (heureusement, j'utilise Debian, je ne perds donc que quelques jours à ce sujet tous les 2 ans). Nous avions l'habitude d'avoir Usbmount, UDISKS, UDISKS2, UDISKS-COLUE, PMOUT, PERSONNES UDEV, et j'éditionne probablement beaucoup plus. (Un aspect rapide montre qu'au moins une chose nommée afuse semble exister, mais n'est pas documenté trop bien). Aucun de ces travaux ne fonctionne plus (pour moi au moins).

Quel est le moyen "actuel" pour automatcher les lecteurs USB de Debian? J'ai utilisé la règle suivante udev, mais depuis la mise à jour de l'étirement à Buster, cela a cessé de fonctionner:

SUBSYSTEM=="usb", DRIVERS=="usb-storage", ACTION=="add", \
RUN+="mkdir /media/usb%n; mount -o gid=plugdev,umask=002,fmask=111,users /dev/%k%n /media/usb%n"

Aussi: quelle est la solution stable pour le faire, qui fonctionnera de manière fiable même après la mise à jour d'une nouvelle version, que j'ai probablement manqué?

7
Circonflexe

Vous pouvez créer un systemd.mount et systemd.automount fichiers unitaires. Voici un exemple:

À monter /dev/sdb1 sous /mnt/moutpoint , créer un mnt-mountpoint.automount déposer:

Sudo nano /etc/systemd/system/mnt-mountpoint.mount

Remarque: le nom du fichier de l'unité devrait être dir-sub-dir.mount extraite du point de montage /dir/sub-dir (Si vous avez besoin de monter l'appareil sous /media Le nom sera media-mountpoint.mount)

Puis collez les lignes suivantes:

[Unit]
Description=Mount sdb1

[Mount]
What=/dev/disk/by-uuid/UUID_here
Where=/mnt/mountpoint
Type=auto
Options=defaults

[Install]
WantedBy=multi-user.target

Utilisez blkid pour remplacer le UUID_here avec l'UUID de /dev/sdb1.

Créer le mnt-mountpoint.automount déposer:

Sudo nano /etc/systemd/system/mnt-mountpoint.automount

Avec les lignes suivantes:

[Unit]
Description=Automount usb

[Automount]
Where=/mnt/mountpoint

[Install]
WantedBy=multi-user.target

Joignez votre USB puis activez et démarrez les unités:

Sudo systemctl daemon-reload
Sudo systemctl enable --now  mnt-mountpoint.mount mnt-mountpoint.automount
4
GAD3R

J'ai étudié les dépendances de l'emballage (inverse) dans Debian de Nautilus, UDISKS2 et Libglib2.0-Bin (qui contient le binaire GIO). Basé sur cette page et sur Archlinux UDisks Page Je crois maintenant:

  • L'état de l'art pour la chose qui fait en réalité le montage est UDISKS2. La prochaine meilleure chose à faire pour automobile est udisksctl unmount -b /dev/$DEVICE.
  • Sur une installation de Gnome de Debian "standard", Nautilus contrôle les icônes sur le bureau. Lorsqu'un lecteur USB est branché, une icône est affichée pour le lecteur, mais le lecteur n'est monté que sur le clic sur l'icône.
  • Le meilleur choix pour les ordinateurs de bureau minimaux pour l'automobile USB est probablement DISKIE .

J'ai ajouté un service d'utilisateur SystemD pour commencer udiskie:

[Unit]
Description=Udiskie automount daemon

[Install]
WantedBy=graphical-session.target

[Service]
ExecStart=/usr/bin/udiskie --verbose --use-udisks2 --automount --no-config --notify --tray --appindicator
2
Thomas Koch