Monter un partage réseau CIFS avec systemd

,

Monter un partage réseau avec une unité systemd plutôt qu’avec une simple ligne mount permet de gérer proprement le remontage du volume après un redémarrage du serveur ou une perte de connectivité.

Point de départ, la commande manuelle que l’on connaît déjà :

apt install cifs-utils
mount -t cifs //192.168.1.1/shared /mnt/ssd -o credentials=/etc/smbcredentials,uid=1000,gid=1000

On va transposer ces informations dans des fichiers d’unité systemd.

Fichier d’identifiants

Ne mettez pas le mot de passe dans l’unité : les fichiers de /etc/systemd/system sont lisibles par tous. Créez un fichier dédié, lisible par root uniquement :

vi /etc/smbcredentials
username=myuser
password=MotDePasse
chmod 600 /etc/smbcredentials

Nommer les unités

Le nom du fichier doit correspondre au chemin du point de montage. Pour /mnt/ssd, les unités s’appellent mnt-ssd.mount et mnt-ssd.automount ; pour /media/star, ce serait media-star.mount. Si le chemin contient des caractères spéciaux (un tiret par exemple), laissez systemd calculer le nom :

systemd-escape -p --suffix=mount /data/home-backup
# data-home\x2dbackup.mount

Création du fichier mnt-ssd.mount

vi /etc/systemd/system/mnt-ssd.mount
[Unit]
Description=Partage CIFS distant (SSD)
Wants=network-online.target
After=network-online.target

[Mount]
What=//192.168.1.1/shared
Where=/mnt/ssd
Type=cifs
Options=credentials=/etc/smbcredentials,uid=1000,gid=1000,iocharset=utf8
TimeoutSec=30

[Install]
WantedBy=multi-user.target

Pour un système de fichiers réseau comme CIFS, systemd ajoute de lui-même ces dépendances vers network-online.target ; les écrire explicitement ne fait que rendre l’intention lisible.

Option : montage à la demande (mnt-ssd.automount)

Avec une unité automount, le partage n’est monté qu’au premier accès à /mnt/ssd, et peut être démonté après une période d’inactivité. Le démarrage n’attend plus le serveur distant.

vi /etc/systemd/system/mnt-ssd.automount
[Unit]
Description=Montage automatique du partage CIFS (SSD)

[Automount]
Where=/mnt/ssd
TimeoutIdleSec=600

[Install]
WantedBy=multi-user.target

Ne mettez pas After=network-online.target dans l’unité automount : la documentation systemd précise que cela peut créer un cycle de dépendances. Les dépendances réseau restent dans le .mount.

Activation

Choisissez un des deux modes.

# Montage au démarrage
systemctl daemon-reload
systemctl enable --now mnt-ssd.mount

# OU montage à la demande (le .mount n'est alors pas activé)
systemctl daemon-reload
systemctl enable --now mnt-ssd.automount
ls /mnt/ssd    # déclenche le montage

Gestion

systemctl status mnt-ssd.mount
systemctl stop mnt-ssd.mount
systemctl restart mnt-ssd.mount
journalctl -u mnt-ssd.mount

Commentaires

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.