Fstab - использование автомонтирования SystemD

Revision as of 19:04, 14 January 2023 by Krotesk (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Other languages:
English • ‎Türkçe • ‎español • ‎français • ‎русский • ‎中文(中国大陆)‎

Введение

Я нашел комбинацию опций systemd (на ArchWiki [1]), которую можно использовать в /etc/fstab при монтировании устройств хранения - будь то внутренние, внешние или сетевые ресурсы.

Магия (для меня) этих опций монтирования заключается в том, что если сетевой ресурс или внешний диск, вызываемый через /etc/fstab, отсутствует - они спасают Вашу машину от зависания на минуту или две во время процесса загрузки.

Устройство, вызванное таким образом через /etc/fstab, монтируется при первой попытке доступа к данным с него. Только при этом первом монтировании возникает (незначительная) заметная задержка по сравнению с монтированием устройства "старым" способом.

Подходящий пример проблемы

У меня есть ReadyNAS Duo v1, подключенный к моей локальной сети. В последнее время я довольно часто выключаю его, поскольку он не нуждается в постоянной работе.

Проблема, которую это вызывает, заключается в том, что если я забываю закомментировать используемый ресурс(ы) NFS в файле /etc/fstab, мне приходится ждать минуту или две в процессе загрузки, пока система повторно пытается установить соединение.

Я попытался заставить AutoFS Использование autofs (automount) с NFSработать для меня. Я был близок к этому, но мне просто не разрешалось видеть файлы на ресурсе NFS NAS.

И тогда я нашел следующее чрезвычайно простое и эффективное решение. (Хотел бы я сделать это первым, так как это спасло бы меня от нескольких часов проигранной битвы!)

Как вы его используете?

Добавьте следующее в начало раздела опций в /etc/fstab, цифры в конце - это ограничение времени, в течение которого он должен пытаться установить соединение, прежде чем сдаться и двигаться дальше:
/etc/fstab
noauto,x-systemd.automount,x-systemd.device-timeout=10


После того, как я добавил вышеуказанное к следующей строке в моем fstab:

/etc/fstab
192.168.1.15:/media-2 /mnt/NAS-media-2 nfs noauto,x-systemd.automount,x-systemd.device-timeout=10,timeo=14,hard,intr,noatime 0 0


Я мог загружать Manjaro, пока сетевой кабель Cat-6 ReadyNAS был отключен от сети, и никакой заметной задержки не было. После загрузки системы я подключил кабель, затем вызвал NFS ресурс /media-2 в Worker и он прочитал диск и отобразил его содержимое.

После этого я отключил диск от сети, что заставило Worker (мой любимый файловый менеджер) искать его, поскольку я не вышел из каталога media-2. Когда я снова подключил кабель, прошло ~10 секунд или около того, а затем Worker автоматически перечислил содержимое этого очень большого раздела, имеющего более 2000 каталогов, каждый из которых содержит несколько файлов.

Ускорьте загрузку

Если у вас очень большой /home и процесс загрузки задерживается, когда происходит запланированная fsck (на самом деле это небольшая проблема, при использовании ext4), Вы можете добавить секцию x-systemd.automount в раздел опций в fstab для строки с /home следующим образом:
/etc/fstab
UUID=<id.number> /home noauto,x-systemd.automount,ext4 defaults 0 1
Это позволит службам, не зависящим от /home, запускаться, пока /home проверяется fsck. Монтируя /home при первом обращении к нему - ядро будет буферизировать все обращения к файлам в /home до тех пор, пока он не будет готов.