Ubuntu 16.04 fstab nie działa z nobootwait

16

Właśnie czyszczę instalację Ubuntu 16.04 (w celu zastąpienia 14.04) z zamiarem przeniesienia większości działającego pliku fstab, aby zamontować inne dyski / partycje JFS. Ale wydaje mi się, że mam z tym problem nobootwait.

Na przykład jeden wpis fstab, który działał w 14.04, to:

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

Ale w 16.04 nie będzie montować dysku podczas uruchamiania ani montować według następującego polecenia:

sudo mount /storage

Mam jfsutils zainstalowany i jestem w stanie zamontować partycję ręcznie, tj

sudo mount -t jfs /dev/sdX /storage

Znalazłem to w dmesg

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

Biorąc to za wskazówkę, kiedy usuwam nobootwaitopcję z fstab, polecenie

sudo mount /storage 

działa w porządku. (Nie wiem o czasie uruchamiania, ponieważ obecnie robię to przez ssh i nie chcę ryzykować, że komputer się nie uruchomi).

Oczywiście jednym z rozwiązań jest rezygnacja z tej nobootwaitopcji. Ale nie chcę tego robić. Być może nobootwait NIGDY nie działał (nigdy nie miałem awarii dysku podczas przestoju) w 14.04 i 14.04 po prostu zignorowałem błąd, ale chcę podobną funkcjonalność nobootwait.

Czy nastąpiła zmiana w Ubuntu 16.04 lub jądrze Linuksa nobootwait?

codechimp
źródło
Zdarzyło mi się to również, kiedy zaktualizowałem maszynę do wersji 16.04. W oparciu o moje doświadczenie nobootwaitzostała odrzucona jako opcja, ale nigdzie nie znalazłem tego udokumentowanego. Zastąpiłem to nofail.
Marmur Organiczny
@Organic Marble Cieszę się, że nie idę całkowicie mentalnie. Dzięki. Nadal chciałbym uzyskać tę nobootwaitfunkcjonalność.
codechimp

Odpowiedzi:

12

Wygląda na to, że ta opcja została usunięta. Strona podręcznika Ubuntu dla fstabzawiera ten tekst, jeśli wybierzesz 14.04 LTS na górze:

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).

Ten akapit nie istnieje w wersji strony, którą otrzymujesz, jeśli wybierzesz 16.04 na górze.

Marmur Organiczny
źródło
8
Czy ktoś ma realną alternatywę dla tego? Wiesz, poza hackerskim sposobem dodawania noautoopcji montowania, a następnie dzwonienia mount -az rc.locallub z zadania cron z @rebootflagą?
John Blackberry,
10

Jeśli szukasz sposobu replikacji nobootwaitzachowania w 16.04, wygląda na to, że szukasz opcji nofail. Od 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
źródło
6
Istnieje zasadnicza różnica pomiędzy tymi dwoma: nofailbędzie czekać 1,5 minuty przed poddaniem się, nobootwaitnie czekać na wszystkich.
rustyx
10

Wygląda na to, że są 2 odpowiednie opcje, które muszą być ustawione tak, aby imitować zachowanie nobootwait, zaczerpnięte ze strony 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".

więc ustawienie opcji nofail,x-systemd.device-timeout=1powinno sprawić, że system zaczeka 1 sekundę na zamontowanie urządzenia przed kontynuowaniem rozruchu.

Konstantin Pereiasłow
źródło
0

Począwszy od Ubuntu 16.04, domyślnym systemem init jest systemd, który zastąpił mountall. http://manpages.ubuntu.com/manpages/zesty/man5/systemd.mount.5.html zapewnia nowe opcje, które prawdopodobnie eliminują potrzebę nobootwait.

Zigmund Ozea
źródło
3
Linki mogą umrzeć, czy mógłbyś skopiować tutaj odpowiednie informacje?
Dr_Bunsen
@Dr_Bunsen Link to strona internetowa dla wygody, możesz także uruchomić man systemd.mountlokalnie, aby wyświetlić ten sam plik.
Skylar Ittner,
7
Zamieszczanie odpowiednich informacji jest zwykle wykonywane.
Dr_Bunsen