web-dev-qa-db-fra.com

Monter automatiquement le lecteur sur la prise à l'aide de systemd

Je souhaite monter automatiquement un lecteur portant une étiquette spécifique à chaque fois qu'il se bloque. Je ne souhaite pas utiliser un autre outil que systemd, car les autres unités dépendent du montage et doivent être démarrées automatiquement.

Qu'est-ce que j'ai jusqu'à présent:

/lib/systemd/system/mount-camera.mount

_[Unit]
Description=the camera SDCard
StopWhenUnneeded=true
Before=copy-camera.service

[Mount]
What=LABEL=CAMERA
Where=/mount/camera
Type=vfat

[Install]
WantedBy=multi-user.target 
_

/lib/systemd/system/mount-camera.automount

_[Unit]
Description=camera SDCard

[Automount]
Where=/mount/camera

[Install]
WantedBy=multi-user.target
_

Cela monte correctement le lecteur si je cd dans le point de montage. Cependant, je souhaite que le lecteur soit monté simplement parce que je l'insère, car un service est démarré par l'unité de montage.

Est-il possible d'y parvenir en utilisant systemd? Si oui: comment?

Si c'est impossible: y a-t-il un moyen de le faire en très peu d'étapes supplémentaires?

Note

Je sais que je pourrais ajouter une minuterie qui cds dans le point de montage toutes les x secondes - mais cette note est vraiment élégante, n'est-ce pas?

2
LittleByBlue

Comme l'a souligné @MarkStosberg: il apparaît que cela n'est pas possible avec systemd seul.

Comme @rtaft l'a fait remarquer: utiliser fstab vaut la peine d'essayer.

La solution est la suivante: ajoutez une entrée à la fstab et vous êtes prêt à partir. Il n'y a pas de conflits, systemd résout les fichiers automatiquement.

Ajouter à /etc/fstab:

LABEL=CAMERA                    /mount/camera auto user,rw,nofail 0 0

Le service démarre comme prévu. J'ai conservé les fichiers .automount et .mount.

0
LittleByBlue

En lisant man systemd.mount et man systemd.automount, il apparaît que ce que vous voulez n'est pas possible systemd seul. La solution recommandée consiste à ajouter des règles udev .

1
Mark Stosberg