Sistema de archivos tolerante para un montaje automático fallido

Sistema de archivos tolerante para un montaje automático fallido

(Estoy ejecutando openSUSE 13.2)

Mi configuración actual

Tengo una unidad de respaldo externa que monto al arrancar con la siguiente línea en mi /etc/fstab:

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

Tengo la nofailopción porque a veces la unidad de respaldo no está presente y no quiero que el arranque se cuelgue en este caso.

El problema

Cuando la unidad de respaldo no está presente, la ejecución lsen mi directorio raíz ingresa a un bucle infinito que debo cancelar con Ctrl+c. El mensaje de error es:

ls: cannot access /backup: Interrupted system call

Parece que lsestá fallando porque intenta acceder a la unidad de respaldo y no puede.

Una solución sería anidar la unidad de respaldo /backup/backuppara que ls /no se tropiece. Sin embargo, esto parece un truco sucio y me pregunto si existe una solución más elegante (¡estoy interesado en aprender más sobre cómo funciona el sistema!).

En mi (limitada) experiencia con mount, si un dispositivo no está montado, entonces el punto de montaje es un directorio vacío. ¿Puedo lograr algo similar aquí? Sin embargo, debo tener cuidado ya que tengo programadas copias de seguridad automáticas cada hora que actualmente no se ejecutan si el dispositivo no está montado. ¡Definitivamente no quiero que la copia de seguridad simplemente descargue todo lo que está en el directorio vacío si no ha montado la unidad de copia de seguridad!

Respuesta1

En mi opinión, es una mala práctica intentar montar un sistema de archivos de respaldo al inicio porque si algo sale mal (rm -rf / [enter] ops), los datos de la copia de seguridad probablemente se eliminarán juntos.

Entonces, si está utilizando un script para hacer esto, móntelo dentro del script o dentro de cron, y desmóntelo cuando haya terminado.

Con eso, tu inicio ya no se bloqueará y tendrás el sistema de archivos funcionando.

Pero otra solución es eliminarlo de fstab y ponerlo como comando de montaje en rc.local con el carácter "&" para ejecutarlo en segundo plano:

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

Para dispositivos extraíbles, también tienes la solución autofs: https://linuxconfig.org/automatically-mount-usb-external-drive-with-autofs

Respuesta2

Sé que estás ejecutando SUSE, pero esta declaración de la wiki de Ubuntu fstab (https://help.ubuntu.com/community/Fstab) puede indicarle la dirección correcta:

Dispositivos extraíbles como unidades flashpoderse pueden agregar a fstab, pero normalmente los monta gnome-volume-manager y están fuera del alcance de este documento.

ACTUALIZACIÓN: Esto podría ser de su interéshttp://www.novell.com/coolsolutions/tip/17785.html, un artículo antiguo sobre SUSE.

información relacionada