В чем разница между «nobootwait» и «nofail» в fstab?

53

В этом вопросе я спросил, как предотвратить сбой процесса загрузки при сбое носителя. Тем не менее, я получил два предложения для /etc/fstabвариантов

  • nobootwait
  • nofail

Какая разница между двумя?

Эван Кэрролл
источник

Ответы:

39

Во-первых, nofailпозволяет продолжить последовательность загрузки, даже если диск не удается смонтировать.

Это то, что fstab(5)говорит оnobootwait

Программа mountall (8), которая монтирует файловую систему во время загрузки, также распознает дополнительные опции, которых нет у обычного инструмента mount (8). Это: bootwait которые могут быть применены к удаленным файловым системам, смонтированным вне / usr или / var, без которых mountall (8) не будет поддерживать загрузку для них; nobootwaitкоторый может быть применен к не удаленным файловым системам, чтобы явно указать mountall (8) не поддерживать загрузку для них; optionalчто приводит к тому, что запись игнорируется, если тип файловой системы неизвестен во время загрузки; и showthrough которая позволяет монтировать точку монтирования до ее родительской точки монтирования (последняя должна использоваться осторожно, так как это может привести к зависанию загрузки).

fstab(5) есть что сказать о nofail

nofail не сообщать об ошибках для этого устройства, если оно не существует.

Эван Кэрролл
источник
6
Обратите внимание, что mountall и эти опции специфичны для ubuntu (и его производных) (и только в сравнительно недавних версиях, где выскочка и этот mountall были представлены.
Стефан Шазелас
9
nobootwaitбольше не является допустимым вариантом в Ubuntu 16.04 (по состоянию на 2016-07-10 тестирование Mythbuntu install / live-DVD).
Кингсли
2
External devices that are to be mounted when present but ignored if absent may require the nofail option. This prevents errors being reported at boot.
эндолит
1
Я говорю совершенно ясно fstab(5). Итакman 5 fstab
Эван Кэрролл
1
Я вижу, это Ubuntu 14 (Trusty). Спасибо @EvanCarroll. Просто чтобы подтвердить сказанное Кингсли выше, bootwait / nobootwait больше не поддерживается в Ubuntu 16 LTS. Только нофаил.
ILIV
23

Как упомянул Стефан, nobootwait ограничен производными ubuntu +.

Nofail будет пытаться смонтировать диск, как указал cjm, однако процесс загрузки продолжится после истечения времени ожидания монтирования . Если вы не ожидаете, что диск будет там регулярно, что потребует дополнительных 90 секунд загрузки, когда она отсутствует, не устанавливайте ее автоматически в fstab.

(PS Я поставил это так, как будто ответ cjm звучит так, как будто система в конечном итоге не загрузится).

тротил
источник
6

Эта статья, кажется, хорошо объясняет разницу

mountall пытается автоматически смонтировать все записи из fstab, которые имеют параметры по умолчанию или параметры автоматического монтирования. Он остановит процесс загрузки, если такие записи не могут быть смонтированы, кроме случаев, когда указана опция монтирования nobootwait .

fsck пытается выполнить проверку файловой системы для всех записей из fstab, для шестого поля которых установлено значение 1 или 2. Для некритических дисков обычно установлено это поле равным 2. Он остановит процесс загрузки, если такие файловые системы не могут быть проверены, кроме случаев, когда указана опция монтирования nofail .

Отказ от ответственности: я не являюсь экспертом fstab и не могу гарантировать, что приведенная выше информация верна. Все кредиты принадлежат автору этой статьи .

akgren_soar
источник
Когда я попытался использовать, nofailя получил неизвестную возможностьerrors=nofail
Аарон Франке
5

Поскольку этот старый вопрос имеет высокий рейтинг Google, я упомяну, что, поскольку «nobootwait» больше не действителен, текущий метод заключается в том, чтобы установить короткий тайм-аут, скажем, 3 секунды с помощью «x-systemd.device-timeout».

например:

/dev/sda2  /mnt/other  nofail,x-systemd.device-timeout=3  0  2
Дейв Роув
источник