ubuntu 16.04 fstab 因 nobootwait 而失败

cod*_*imp 17 boot fstab mount

我只是全新安装 Ubuntu 16.04(替换 14.04),目的是移植大量工作 fstab 文件,以便挂载其他 JFS 磁盘/分区。但我似乎遇到了麻烦nobootwait

例如,在 14.04 中工作的一个 fstab 条目是:

UUID=<uuid>  /storage jfs defaults,nodiratime,noatime,nofail,nobootwait  0 2
Run Code Online (Sandbox Code Playgroud)

但是在 16.04 中,它既不会在启动时挂载驱动器,也不会按照以下命令挂载:

sudo mount /storage
Run Code Online (Sandbox Code Playgroud)

我确实安装了 jfsutils,并且我可以手动挂载分区,即

sudo mount -t jfs /dev/sdX /storage
Run Code Online (Sandbox Code Playgroud)

我在 dmesg

[   6.720171] jfs: Unrecognized mount option "nobootwait" or missing value
Run Code Online (Sandbox Code Playgroud)

因此,以此作为提示,当我nobootwait从 fstab 中删除该选项时,命令

sudo mount /storage 
Run Code Online (Sandbox Code Playgroud)

工作正常。(我不知道启动时的情况,因为我目前正在通过 ssh 执行此操作,并且不想冒计算机无法启动的风险)。

显然,一种解决方案是放弃该nobootwait选项。但我不想那样做。也许 nobootwait 从未在 14.04 和 14.04 中工作(我从未遇到过磁盘启动时故障)只是忽略了错误,但我想要nobootwait.

Ubuntu 16.04 或 linux 内核是否有变化nobootwait

Kon*_*lov 14

看起来有 2 个相关选项需要设置来模仿 nobootwait 行为,取自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".
Run Code Online (Sandbox Code Playgroud)

所以设置选项nofail,x-systemd.device-timeout=1应该让系统在继续引导之前等待 1 秒来安装设备。


Org*_*ble 13

此选项似乎已被删除。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).
Run Code Online (Sandbox Code Playgroud)

如果您在顶部选择16.04,则您获得的页面版本中不存在此段落。

  • 有没有人有可行的替代方案?您知道,除了将 `noauto` 添加到挂载选项然后从 `rc.local` 或从带有 `@reboot` 标志的 cron 作业中调用 `mount -a` 的骇人听闻的方法吗? (8认同)

che*_*kow 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.
Run Code Online (Sandbox Code Playgroud)

  • 这两者之间存在根本区别:`nofail` 将*等待 1.5 分钟* 后放弃,`nobootwait` 根本不等待。 (6认同)