O Systemd tem suporte nativo para montagens ( man systemd.mount
). Na verdade, o systemd lê /etc/fstab
, usa-o para gerar unidades de montagem e monta os próprios sistemas de arquivos.
Em vez de depender de fstab
, também é possível criar unidades de montagem manualmente. É assim que as montagens do sistema, como /dev
, /sys
, /proc
, etc, são manipuladas ( /usr/lib/systemd/system/*.mount
). Esse método permite que você use dependências do systemd para garantir que as coisas sejam montadas na ordem correta.
systemd devem ser nomeados após o ponto de montagem que eles controlam ( man systemd.unit
). Como exemplo, criei um arquivo de unidade para montar minha unidade de backup USB em /mnt/backup
. Seguindo a convenção de nomenclatura, criei /etc/systemd/system/mnt-backup.mount
, com o seguinte conteúdo:
[Unit]
Description = USB backup disk
[Mount]
What = LABEL=david-usb-backup
Where = /mnt/backup
Type = ext4
[Install]
WantedBy = multi-user.target
Eu então executo systemctl daemon-reload
para o systemd para carregar a unidade. Posso executar systemctl start mnt-backup.mount
para montar o disco e / ou systemctl enable mnt-backup.mount
para que ele seja iniciado na inicialização.
Para dependências, adicione Requires = some-other-mnt-point.mount
na seção [Unit]
. Opcionalmente, você pode usar BindTo
em vez de Requires
; isso fará com que ele seja desmontado se uma das dependências desaparecer. No entanto Requires
não afeta a ordem em que os discos são montados. Portanto, para garantir que os discos sejam montados antes do aufs, use After
.
Editar: para expandir o uso de Requires
e After
, a seção da unidade pode se parecer com:
[Unit]
Description = USB backup disk
Requires = mnt-data01.mount
Requires = mnt-data02.mount
Requires = mnt-data03.mount
After = mnt-data01.mount
After = mnt-data02.mount
After = mnt-data03.mount