L'esempio seguente mostra come creare uno script systemd per montare un disco in un percorso specifico al riavvio automatico.
1. Verificare l'UUID del filesystem utilizzando il comando "blkid".
# blkid /dev/sdb /dev/sdb: UUID="5813cd72-ff30-44bc-a7a3-27c68fe3e6c7" UUID_SUB="ccd243dc-1481-403f-aa51-1502a95cdf2f" TYPE="btrfs"
2. Abbiamo bisogno di creare una nuova unità di montaggio per montare il filesystem. Le unità di montaggio devono avere il nome delle directory del punto di montaggio che controllano. Ad esempio:il punto di montaggio /var/lib/docker deve essere configurato in un file unit var-lib-docker.mount. Per i dettagli sulla logica di escape utilizzata per convertire un percorso di file system in un nome di unità, vedere la pagina man di systemd.unit.
# vi /etc/systemd/system/var-lib-docker.mount [Unit] Description=Docker mount [Mount] What=/dev/disk/by-uuid/5813cd72-ff30-44bc-a7a3-27c68fe3e6c7 Where=/var/lib/docker Type=btrfs Options=defaults [Install] WantedBy=multi-user.target
L'opzione per "Cosa" può essere UUID, LABEL, percorso del disco
3. Abilita l'unità systemd da avviare dopo l'avvio.
# systemctl enable var-lib-docker.mount
4. Lo script del servizio Docker sottostante viene modificato per assicurarsi che il servizio venga avviato solo dopo la chiamata del servizio di montaggio.
# cat /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket var-lib-docker.mount ### Added mount unit for docker service to wait Requires=docker.socket ...
5. Riavviare il nodo e verificare lo stato dell'unità di servizio di montaggio.
# shutdown -r now
# systemctl status var-lib-docker.mount ● var-lib-docker.mount - Docker mount Loaded: loaded (/etc/systemd/system/var-lib-docker.mount; enabled; vendor preset: disabled) Active: active (mounted) since Tue 2016-06-07 02:06:07 IST; 54s ago Where: /var/lib/docker What: /dev/sdb Process: 416 ExecMount=/bin/mount /dev/disk/by-uuid/5813cd72-ff30-44bc-a7a3-27c68fe3e6c7 /var/lib/docker -n -t btrfs -o defaults (code=exited, status=0/SUCCESS) Jun 07 02:06:07 OL7-docker-TD systemd[1]: Mounting Docker mount... Jun 07 02:06:07 OL7-docker-TD systemd[1]: Mounted Docker mount.
6. Verifica il punto di montaggio nel comando "mount".
# mount | grep docker /dev/sdb on /var/lib/docker type btrfs (rw,relatime,seclabel,space_cache)
L'unità di montaggio non può essere aggiunta per far parte di un'altra operazione di servizio. Tipi di unità di sistema disponibili:
File del tipo di unità | Estensione | Descrizione |
---|---|---|
Unità di servizio | .servizio | Un servizio di sistema. |
Unità di destinazione | .target | Un gruppo di unità di sistema. |
Unità a montaggio automatico | .automount | Un punto di montaggio automatico del file system. |
Unità dispositivo | .dispositivo | Un file dispositivo riconosciuto dal kernel. |
Monta unità | .mount | Un punto di montaggio del file system. |
Unità di percorso | .percorso | Un file o una directory in un file system. |
Unità ottica | .ambito | Un processo creato esternamente. |
Unità affettatrice | .fetta | Un gruppo di unità organizzate gerarchicamente che gestiscono i processi di sistema. |
Unità snapshot | .istantanea | Uno stato salvato di systemd manager. |
Unità presa | .socket | Un socket di comunicazione tra processi. |
Cambia unità | .scambia | Un dispositivo di scambio o un file di scambio. |
Unità timer | .timer | Un timer di sistema. |