Ubuntu 16.04 Fstab не работает с nobootwait

16

Я просто очищаю установку Ubuntu 16.04 (вместо 14.04) с намерением перенести большую часть рабочего файла fstab, чтобы смонтировать другой диск / раздел JFS. Но у меня, похоже, проблемы с nobootwait.

Например, одна запись в fstab, которая работала в 14.04, была:

UUID=<uuid>  /storage jfs defaults,nodiratime,noatime,nofail,nobootwait  0 2

Но в 16.04 он не будет ни монтировать диск во время загрузки, ни монтировать с помощью следующей команды:

sudo mount /storage

У меня установлен jfsutils, и я могу смонтировать раздел вручную, т.е.

sudo mount -t jfs /dev/sdX /storage

Я нашел это в dmesg

[   6.720171] jfs: Unrecognized mount option "nobootwait" or missing value

Итак, принимая это как подсказку, когда я удаляю nobootwaitопцию из fstab, команда

sudo mount /storage 

работает отлично. (Я не знаю об этом во время загрузки, так как в настоящее время я делаю это через ssh и не хочу рисковать, если компьютер не загрузится).

Очевидно, что одним из решений является отказ от nobootwaitопции. Но я не хочу этого делать. Возможно, nobootwait НИКОГДА не работал (у меня никогда не было сбоя при загрузке диска) в 14.04, а 14.04 просто проигнорировал ошибку, но я хочу предполагаемую функциональность nobootwait.

Произошли ли изменения в Ubuntu 16.04 или ядре Linux в отношении nobootwait?

codechimp
источник
Это случилось и со мной, когда я обновил машину до 16.04. Основываясь на моем опыте, nobootwaitбыл исключен как вариант, но я нигде не нашел этого документированного. Я заменил его на nofail.
Органический мрамор
@ Органический мрамор Рад, что я не схожу с ума. Благодарю. Тем не менее, я хотел бы получить nobootwaitфункциональность.
codechimp

Ответы:

12

Эта опция, кажется, была отброшена. Страница руководства Ubuntu для fstabсодержит этот текст, если вы выбираете 14.04 LTS вверху:

The  mountall(8)  program  that  mounts  filesystem  during  boot  also
 recognises additional options that the ordinary mount(8) tool does not.
These  are:  ``bootwait''  which  can  be applied to remote filesystems
mounted outside of /usr or /var, without which  mountall(8)  would  not
hold up the boot for these; ``nobootwait'' which can be applied to non-
remote filesystems to explicitly instruct mountall(8) not  to  hold  up
the boot for them; ``optional'' which causes the entry to be ignored if
the filesystem type is not known  at  boot  time;  and  ``showthrough''
which  permits  a mountpoint to be mounted before its parent mountpoint
(this latter should be used carefully, as it can cause boot hangs).

Этот абзац не существует в версии страницы, которую вы получаете, если вы выбираете 16.04 вверху.

Органический мрамор
источник
8
У кого-нибудь есть жизнеспособная альтернатива этому? Вы знаете, кроме хакерского способа добавления noautoк опциям монтирования, а затем вызова mount -aиз rc.localили из задания cron с @rebootфлагом?
Джон Блэкберри
10

Если вы просто ищете способ репликации nobootwaitповедения в 16.04, вам кажется, что вам нужен вариант nofail. С http://manpages.ubuntu.com/manpages/zesty/man5/systemd.mount.5.html

   nofail
       With nofail, this mount will be only wanted, not required, by
       local-fs.target or remote-fs.target. This means that the boot will
       continue even if this mount point is not mounted successfully.
cheshirekow
источник
6
Существует принципиальная разница между этими двумя: nofailбудет ждать 1,5 минуты , прежде чем отказаться, nobootwaitне ждать вообще.
rustyx
10

Похоже, что для имитации поведения nobootwait необходимо установить 2 соответствующие опции, взятые из mand-страницы systemd mount :

   nofail
       With nofail, this mount will be only wanted, not required, by
       local-fs.target or remote-fs.target. This means that the boot will
       continue even if this mount point is not mounted successfully.
   x-systemd.device-timeout=
       Configure how long systemd should wait for a device to show up
       before giving up on an entry from /etc/fstab. Specify a time in
       seconds or explicitly append a unit such as "s", "min", "h", "ms".

поэтому при настройке параметров система nofail,x-systemd.device-timeout=1должна подождать 1 секунду, пока устройство будет установлено, прежде чем продолжить загрузку.

Константин Переяслов
источник
0

Начиная с Ubuntu 16.04, системой инициализации по умолчанию является systemd, которая заменила mountall. http://manpages.ubuntu.com/manpages/zesty/man5/systemd.mount.5.html предоставляет новые параметры, которые, вероятно, устраняют необходимость в nobootwait.

Зигмунд Озеа
источник
3
Ссылки могут умереть, не могли бы вы скопировать соответствующую информацию здесь?
Dr_Bunsen
@Dr_Bunsen Для удобства ссылка является онлайн-страницей справки, вы также можете запустить ее, man systemd.mountчтобы просмотреть тот же файл локально.
Скайлар Иттнер
7
Размещение соответствующей информации является обычным делом.
Dr_Bunsen