Устойчивая файловая система к неудачному автомонтированию

Устойчивая файловая система к неудачному автомонтированию

(Я использую openSUSE 13.2)

Моя текущая настройка

У меня есть внешний резервный диск, который я монтирую при загрузке с помощью следующей строки в файле /etc/fstab:

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

У меня есть nofailтакая возможность, потому что иногда резервный диск отсутствует, и я не хочу, чтобы в этом случае загрузка зависала.

Проблема

Когда резервного диска нет, запуск lsв моем корневом каталоге входит в бесконечный цикл, который я должен отменить с помощью ctrl+c. Сообщение об ошибке:

ls: cannot access /backup: Interrupted system call

Похоже, что это lsне удается, поскольку программа пытается получить доступ к резервному диску, но не может.

Одним из решений было бы вложить резервный диск в /backup/backupтак, чтобы он ls /не спотыкался. Однако это кажется грязным хаком, и мне интересно, есть ли более элегантное решение (мне интересно узнать больше о том, как работает эта система!).

По моему (ограниченному) опыту с mount, если устройство не смонтировано, то точка монтирования — пустой каталог. Могу ли я добиться чего-то подобного здесь? Мне нужно быть осторожным, так как у меня запланировано автоматическое почасовое резервное копирование, которое в настоящее время не запускается, если устройство не смонтировано. Я определенно не хочу, чтобы резервная копия просто сбрасывала все в пустой каталог, если она не смонтировала резервный диск!

решение1

По моему мнению, пытаться монтировать резервную файловую систему при запуске — плохая практика, поскольку если что-то пойдет не так (rm -rf / [enter] ops), данные в резервной копии, скорее всего, будут удалены вместе с ней.

Поэтому, если вы используете для этого скрипт, смонтируйте его внутри скрипта или внутри cron, а затем размонтируйте, когда закончите.

После этого ваш запуск больше не будет зависать, и файловая система будет работать.

Но есть и другое решение — удалить его из fstab и поместить в rc.local как команду монтирования с символом "&" для запуска в фоновом режиме:

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

Для съемных устройств также есть решение autofs: https://linuxconfig.org/автоматически-монтировать-usb-внешний-диск-с-autofs

решение2

Я знаю, что вы используете SUSE, но это утверждение из вики Ubuntu fstab (https://help.ubuntu.com/community/Fstab) может указать вам правильное направление:

Съемные устройства, такие как флэш-накопителиможетмогут быть добавлены в fstab, но обычно монтируются с помощью gnome-volume-manager и выходят за рамки данного документа.

ОБНОВЛЕНИЕ: Это может быть интересноhttp://www.novell.com/coolsolutions/tip/17785.html, старая статья о SUSE.

Связанный контент