У меня есть запись в /etc/fstab моей локальной машины для монтирования раздела NFS на удаленном хосте:

remotehost:/ /media/blabla nfs4 defaults,nobootwait 0 0

Когда я пытаюсь загрузить машину, когда удаленный хост не работает, процесс загрузки останавливается с ошибкой.

mount.nfs4: Connection timed out
mountall: mount /media/blabla [915] terminated with status 32

Я должен восстановить удаленный хост, прежде чем я смогу загрузить свою машину. Теперь, если раздел локальный, я смогу решить эту проблему с помощью опции nobootwait , но здесь это не поможет.

Как я могу настроить это, чтобы игнорировать ошибки монтирования и нормально загружаться даже для удаленных разделов?

1 ответ1

2

Вы можете добавить флаг noauto в /etc /fstab, чтобы система не пыталась автоматически монтировать определенную файловую систему в процессе загрузки. Это противоположность auto настройки по умолчанию, и noauto обычно наблюдается в файловых системах, размещенных на съемных носителях, таких как компакт-диски, дискеты, съемные жесткие диски и т.д. Он также хорошо работает для сетевых файловых систем или если вам просто по какой-либо причине необходимо контролировать монтаж более подробно, чем позволяют настройки в fstab. Это работает для любого типа файловой системы, а не только для файловых систем NFS.

После того, как для рассматриваемой файловой системы (ов) было установлено noauto , вы можете добавить или отредактировать поздний сценарий инициализации, чтобы фонировать монтирование в рассматриваемых файловых системах. Если хост достижим, он быстро завершится, а если хост недоступен (сеть не работает, хост не работает, что угодно), он будет (должен; вы никогда не знаете с NFS) сидеть в фоновом режиме и ждать тайм-аут.

Этот подход не зависит ни от чего во время или вскоре после процесса загрузки, которому требуется доступ к чему-либо в этой файловой системе, но, поскольку это имеет место в вашей ситуации, он должен работать.

Напомним, что в /etc /fstab установите соответствующие файловые системы на noauto:

remotehost:/ /media/blabla nfs4 defaults,nobootwait,noauto 0 0

и, например, /etc/rc.local (подробности будут зависеть от вашего дистрибутива, но /etc/rc.local или /etc/rc.d/local могут быть хорошими местами для начала):

mount /media/blabla &

Амперсанд вызывает процесс монтирования, который будет порождаться в фоновом режиме, где он будет сидеть и ждать, пока монтирование завершится успешно или истечет время ожидания. Если вы не хотите, чтобы какой-либо потенциальный вывод ошибок загромождал консоль, вы можете сделать это, перенаправив его вывод в /dev /null:

mount /media/blabla 2>&1 >/dev/null &

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .