Use uma unidade de serviço em vez de uma unidade de montagem
Uma simples unidade de serviço com o comando mount funcionou para o meu caso de uso de remontagem (e presumo que funcionará para o seu).
Dado que as montagens geralmente já estão definidas em /etc/fstab
e o systemd gerou automaticamente um <mountpoint>.mount
para entradas fstab, existem duas abordagens:
- Basta recorrer a uma unidade de serviço padrão em vez de uma unidade de montagem e controlar diretamente o comando de montagem.
- Tente usar uma substituição do systemd? (Não testado, não ache que é viável)
- As unidades de montagem têm um requisito estrito de que a unidade seja nomeada de acordo com o ponto de montagem, portanto, provavelmente não é possível executar duas unidades de montagem separadas para o mesmo ponto de montagem (já mencionado na pergunta).
- Assim, isso provavelmente não funcionará para as remessas, presumindo que ele apenas substitua a definição original da unidade de montagem gerada a partir do fstab e não seja executado duas vezes.
- Se você tentou, é mais provável que a montagem original falhe, considerando a opção de remontagem aplicada a algo ainda não montado.
Exemplo
Eu precisava de algo semelhante e esbarrei no seguinte problema ao tentar usar o tipo de unidade de montagem systemd (porque não defini o nome do arquivo da minha unidade de acordo com o ponto de montagem):
Where= setting doesn't match unit name. Refusing.
Dada uma montagem de ligação a um diretório de dados com mais espaço, mas com o ponto de montagem pai tendo nosuid e nodev definidos, eu precisava adicionar privilégios suid e dev para lxc em / var / lib / lxc.
O arquivo da unidade de serviço /etc/systemd/system/lxc-remount.service
:
[Unit]
Description=Remount the /var/lib/lxc folder with suid and dev privileges
Requires=var-lib-lxc.mount
After=var-lib-lxc.mount
Before=lxc.service
[Service]
Type=oneshot
ExecStart=/bin/mount -o remount,rw,suid,dev,relatime,discard,data=ordered /var/lib/lxc
[Install]
WantedBy=lxc.service
Comandos para colocar em prática:
$ sudo systemctl daemon-reload
$ sudo systemctl enable lxc-remount.service
Created symlink from /etc/systemd/system/lxc.service.wants/lxc-remount.service to /etc/systemd/system/lxc-remount.service.
$ sudo systemctl start lxc-remount.service