仅在插入时才在启动时挂载外部驱动器

Jer*_*emy 100 boot fstab mount hard-drive

我的 fstab 中有一个外部硬盘的条目:

UUID="680C0FE30C0FAAE0" /jgdata ntfs noatime,rw

但有时此驱动器在启动时未插入。这让我在启动过程中半途而废,提示“继续等待,按 S 或按 M”,但在此阶段没有任何按键影响(包括Ctrl- Alt- Delete,甚至大写锁定)。

如果没有编写脚本来检查fdisk -l. 为这个驱动器提供一个 fdisk 条目会很方便,所以我可以只输入mount /jgdata而不需要设备名称。

小智 102

你们都在正确的道路上。我找到了一种更简洁、形式更好的方法。

但是,添加的正确选项fstabnofail,它需要在 之后auto。如果将其更改为noauto,它将永远不会在启动期间挂载。如果您添加nobootwait到引导加载程序,您可能会错过一些严重的事情,例如在fsck完成检查之前挂载分区,或者未挂载引导过程中使用的分区。

进行上述更改后,如果在系统关闭时插入设备,系统将正常启动(并安装卷)。如果设备在启动时不存在,它也将正常启动。

唯一的不便是,如果在系统运行时连接设备,根据配置(测试变量太多),设备可能无法立即挂载。这可以通过简单的mount -amount /specific_device重新启动来解决。

  • 我可以在网上找到的每个示例都在 auto 之前显示 nofail。是否有任何有关正确顺序的文档? (4认同)

小智 25

我遇到了同样的问题 - 我做了一个额外的步骤

如果您使用 中的nofail选项/etc/fstab,系统将在启动时查找您的磁盘(和分区)。如果设备已插入,文件系统将被挂载。如果没有,引导将继续正常进行。

参见 arch wiki:https : //wiki.archlinux.org/index.php/Fstab

例子

UUID=XXXXXXXXXXXXXXX    /myhdd ntfs  auto,nofail,noatime,rw,user    0   0
Run Code Online (Sandbox Code Playgroud)

我试过在插入和不插入设备的情况下启动系统,它工作正常。

我没有实现的是在启动后插入磁盘时自动挂载(启动时未插入时)。我必须mount -a以 root 身份再次安装。


Rob*_*ans 14

noauto 选项是否让引导过程继续?

如果存在,它不会自动挂载,但如果存在,它会知道它是否存在,因此简单的挂载 /jgdata 可以工作……然后脚本化挂载 /jdata 不需要输出检查,只需捕获错误并继续引导

编辑:在进一步阅读时,bootwait 可能是一个更正确的传递选项......(通常用于在引导过程中稍后才出现的网络共享,但它可能仍会导致挂起,idk)

并且可以像这样添加挂载脚本:https : //stackoverflow.com/questions/2062543/running-a-script-with-the-help-of-grub-and-menu-lst


小智 11

/dev/xvdh1 /myfs xfs defaults,nofail,x-systemd.device-timeout=30 0 0
Run Code Online (Sandbox Code Playgroud)

为我工作。

nofail ... 如果此设备不存在,则不报告该设备的错误。
x-systemd.device-timeout=30 ... 如果设备不存在(默认为 90 秒),启动时间将延长 30 秒。

来源:https : //wiki.archlinux.org/index.php/fstab#External_devices