(Я использую 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.