ubuntu 16.04 fstab fails with nobootwait

I just clean install Ubuntu 16.04 (to replace 14.04) with the intention of porting bulk of the working fstab file, in order to mount other JFS disk/partitions. But I seem to be having trouble with nobootwait.

For example, one fstab entry that worked in 14.04 was:

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

But in 16.04, it will neither mount the drive at boot time nor mount per the following command:

sudo mount /storage

I do have jfsutils installed, AND I am able to mount the partition manually, i.e.

sudo mount -t jfs /dev/sdX /storage

I found this in dmesg

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

So, taking that as a hint, when I remove the nobootwait option from fstab, the command

sudo mount /storage 

works fine. (I don't know about at boot time as I'm currently doing this over ssh and don't want to risk computer failing to boot).

Obviously, one solution is to drop the nobootwait option. But I don't want to do that. Maybe nobootwait NEVER worked (I never had boottime failure of the disk) in 14.04 and 14.04 just ignored the error, but I want the supposed functionality of nobootwait.

Has there been a change in Ubuntu 16.04 or the linux kernel regarding nobootwait?


Solution 1:

Looks like there are 2 relevant options that need to be set to imitate nobootwait behavior, taken from systemd mount manpage:

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

so setting options to nofail,x-systemd.device-timeout=1 should make the system wait 1 second for device to be mounted before continuing the boot.

Solution 2:

This option appears to have been dropped. The Ubuntu manpage for fstab contains this text if you select 14.04 LTS at the top:

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

This paragraph does not exist in the version of the page you get if you select 16.04 at the top.

Solution 3:

If you're just looking for how to replicate nobootwait behavior in 16.04 it seems that the option you're looking for is nofail. From 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.