
Eu tenho um servidor de arquivos configurado para compartilhar uma unidade externa através de samba e netatalk (AFP). Eu tenho uma entrada fstab para montar automaticamente a unidade em /mnt/external
, que é compartilhada automaticamente pelos vários daemons.
O problema é se a unidade não for montada corretamente (por exemplo, se eu esqueci de ligá-la ou se a levei para o trabalho naquele dia). Nesse caso, o ponto de montagem é compartilhado sem a unidade correspondente conectada, resultando na gravação de vários meta-arquivos em meu ponto de montagem, em vez de uma falha limpa. Isso evita que a unidade seja montada corretamente na próxima vez que eu a anexar (diretório não vazio) e pode levar à perda de dados se alguém usar o compartilhamento nesse meio tempo.
Existe alguma maneira de causar falha nos compartilhamentos caso a unidade seja desmontada?
Responder1
Você pode definir os atributos originais da pasta de montagem para torná-lo immutable
:
chattr +i /mnt/external
A pasta agora está bloqueada e qualquer operação nela é proibida (você pode desbloqueá-la usando -i
). No entanto mount
ou fstab
ainda funciona corretamente.
Certifique-se de que a unidade não esteja montada antes de executar chattr
. Se você receber o erro "Inappropriate ioctl for device While reading flags"
, talvez você esteja trabalhando em um sistema de arquivos que não suporta atributos em pastas. Na verdade, algumas distribuições Linux montam a partição principal usando overlayfs
o sistema de arquivos em vez de ext
. Então você tem que montá-lo manualmente em outro lugar para poder chattr
trabalhar nas pastas (ou seja, mount /dev/mmcblk0p3 /mnt/temp
então chattr +i /mnt/temp/root/mnt/external
).