Sistema de arquivos tolerante para uma montagem automática com falha

Sistema de arquivos tolerante para uma montagem automática com falha

(Estou executando o openSUSE 13.2)

Minha configuração atual

Eu tenho uma unidade de backup externa que monto na inicialização com a seguinte linha no meu /etc/fstab:

/dev/mapper/cr_backup    /backup    ext4     comment=systemd.automount,nofail 0 2

Tenho essa nofailopção porque às vezes a unidade de backup não está presente e não quero que a inicialização trave nesse caso.

O problema

Quando a unidade de backup não está presente, a execução lsno meu diretório raiz entra em um loop infinito que devo cancelar com ctrl+c. A mensagem de erro é:

ls: cannot access /backup: Interrupted system call

Parece que lsestá falhando porque está tentando acessar a unidade de backup e não consegue.

Uma solução seria aninhar a unidade de backup /backup/backuppara que ela ls /não tropece. No entanto, isso parece um hack sujo e estou me perguntando se existe uma solução mais elegante (estou interessado em aprender mais sobre como o sistema funciona!).

Na minha experiência (limitada) com mount, se um dispositivo não estiver montado, o ponto de montagem será um diretório vazio. Posso conseguir algo semelhante aqui? Eu precisaria ter cuidado, pois tenho backups automáticos agendados que atualmente não são executados se o dispositivo não estiver montado. Definitivamente, não quero que o backup simplesmente despeje tudo no diretório vazio se não tiver montado a unidade de backup!

Responder1

Na minha opinião, é uma má prática tentar montar um sistema de arquivos de backup na inicialização, porque se algo der errado (rm -rf / [enter] ops), os dados no backup provavelmente serão excluídos juntos.

Portanto, se você estiver usando um script para fazer isso, monte dentro do script, ou dentro do cron, e desmonte quando terminar.

Com isso sua inicialização não travará mais e você terá o sistema de arquivos funcionando.

Porém, outra solução é removê-lo do fstab e colocá-lo como um comando de montagem em rc.local com "&" char para executá-lo em segundo plano:

mount /dev/mapper/cr_backup /backup -t ext4&

Para dispositivos removíveis, você também tem a solução autofs: https://linuxconfig.org/automatically-mount-usb-external-drive-with-autofs

Responder2

Eu sei que você está executando o SUSE, mas esta declaração do wiki fstab do Ubuntu (https://help.ubuntu.com/community/Fstab) pode apontar a direção certa:

Dispositivos removíveis, como unidades flashpodeser adicionados ao fstab, mas normalmente são montados pelo gnome-volume-manager e estão além do escopo deste documento.

ATUALIZAÇÃO: Isso pode ser interessantehttp://www.novell.com/coolsolutions/tip/17785.html, um artigo antigo sobre o SUSE.

informação relacionada