Pour monter un disque au boot d’une machine sur Linux, on utilise régulièrement fstab. Cette solution fonctionne très bien, mais elle a quand même un gros inconvénient. Si le disque n’est pas disponible pour une raison ou une autre, la machine ne boot plus et des manipulation sont nécessaires pour procéder au démarrage. Après quelques recherches, j’ai trouvé qu’il était possible de monter un disque via systemd. Je vous montre comment
Identifier le disque à monter
Avant toute chose nous allons commencer à identifier le disque à monter. Pour cela deux solutions, le chemin qui mène au disque, ou son uudi (Universally Unique IDentifier). Note : Le disque doit être formaté
Première solution, lister les disques dans le répertoire /dev/
Deuxième solution, via l’uuid en listant le contenu du répertoire /dev/disk/by-uuid/
ou en utilisant lsblk -f
Une fois le disque identifié, ici sda, nous pouvons continuer
Créer le fichier de montage pour systemd
Nous allons maintenant créer le fichier pour donner les instructions à systemd.
Attention, il y a une petite subtilité dans le nommage. Le nom du fichier doit correspondre à l’emplacement du montage. Un tiret – correspond à un sous répertoire. Il est donc interdit de mettre des tirets dans le nom du point de montage.
Par exemple, si vous souhaitez monter votre disque à l’emplacement /home/USER/montage le nom de fichier sera home-USER-montage.mount. Pour /media/mon_montage cela donne media-mon_montage.mount.
vi /etc/systemd/system/media-mon_montage.mount
Voici un exemple de fichier. Ici j’ai utilisé l’uuid du disque sda.
[Unit] Name = Un joli nom Description = Une description, si vous voulez [Mount] What = /dev/disk/by-uuid/66989f09-73a0-460a-a681-6b4f396b7b28 Where = /media/mon_montage Type = ext4 Options = defaults [Install] WantedBy = multi-user.target
Notez qu’il existe différentes options :
What : Chemin absolut du périphérique
Where : Chemin absolut du point de montage
Type : Chaine de caractères correspondant au système de fichier utilisé (optionnel)
Options : Options de montage lors du montage, séparées par des virgules (optionnel)
DirectoryMode : Spécifie le monde d’accès au système de fichiers utilisé. Valeur par défaut 0755 (optionnel)
TimeoutSec : Temps en seconde pendant laquelle la commande peut s’exécuter. Une fois le délais passé elle est concidérée comme un echec. Valeur par défaut 60s (optionnel)
KillMode : Spécifie comment les processus de ce montage doivent être tués. Options suivantes : control-group, process-group, process, none. (optionnel)
Pour plus d’informations, vous pouvez vous reporter à la page man de Debian.
WantedBy=multi-user.target
indique que l’unité de montage doit être démarrée automatiquement et considérée comme une dépendance de la cible multi-user.target
.multi-user.target
est une cible systemd qui correspond à un niveau d’exécution multi-utilisateur sans interface graphique. En pratique, cela signifie que votre point de montage sera activé et prêt à l’emploi au démarrage du système, lorsqu’il atteint ce niveau d’exécution multi-utilisateur.
Plus d’informations sur la page man dédiée.
Enable & Start le montage systemd
Maintenant que nous avons indiqué toutes les informations dans /etc/systemd/system/media-mon_montage.mount, nous pouvons maintenant enable pour que le montage soit fait automatiquement au boot.
sudo systemctl daemon-reload sudo systemctl enable media-mon_montage.mount sudo systemctl start media-mon_montage.mount sudo systemctl status media-mon_montage.mount
daemon-reload : Recharge tous les « unit files » et recrée l’arbre de dépendance
enable : Active l’exécution du service au démarrage
start : Démarre le service
status : Affiche l’état du service
On peut voir que tout c’est bien déroulé (dans un soucis de praticité j’ai utilisé l’utilisateur root)
Vérifions que notre disque est correctement monté :
On peut constater que le disque sda est bien monté à l’emplacement /media/mon_montage. Nous avons donc correctement monté notre disque en nous passant de fstab
en utilisant systemd.