我的 fstab 中有一个外部硬盘驱动器的条目:
UUID="680C0FE30C0FAAE0" /jgdata ntfs noatime,rw
但有时此驱动器在启动时未插入。这让我在引导过程中进行了一半,提示“继续等待,按 S 或按 M”,但在此阶段没有按键有任何影响(包括Ctrl- Alt- Delete,甚至没有大写锁定)。
如果没有编写脚本来检查 的输出fdisk -l
,我如何才能在启动时安装该驱动器,如果它存在?为该驱动器添加一个 fdisk 条目会很方便,因此我只需键入mount /jgdata
而不需要设备名称。
你们都在正确的道路上。我找到了一种更干净、更好的方式。
但是,添加的正确选项
fstab
是nofail
,它需要在auto
. 如果将其更改为noauto
,它将永远不会在引导期间挂载。如果您添加nobootwait
到引导加载程序,您可能会错过一些严重的事情,例如在fsck
完成检查之前安装分区,或者不安装引导过程中使用的分区。进行上述更改后,如果在系统关闭时插入设备,系统将正常启动(并挂载卷)。如果设备在启动时不存在,它也会正常启动。
唯一的不便是,如果您在系统运行时连接设备,根据配置(太多变量无法测试),设备可能无法立即挂载。这可以通过简单的
mount -a
或mount /specific_device
或重新启动来解决。我有同样的问题 - 我做了一个额外的步骤
如果您使用 中的
nofail
选项/etc/fstab
,系统将在启动时查找您的磁盘(和分区)。如果设备被插入,文件系统将被挂载。如果没有,引导将照常继续。见拱维基: https ://wiki.archlinux.org/index.php/Fstab
例子
我尝试在插入和不插入设备的情况下启动系统,它工作正常。
我没有实现的是在启动后插入磁盘时自动挂载(在启动时未插入时)。我必须
mount -a
以 root 身份再次挂载。为我工作。
nofail
- 如果此设备不存在,请不要报告错误。x-systemd.device-timeout=30
- 如果设备不存在,启动将多花 30 秒(默认为 90 秒)。来源:https ://wiki.archlinux.org/index.php/fstab#External_devices
noauto 选项是否让引导过程继续?
如果存在,它不会自动挂载,但它确实知道它是否存在,因此简单的挂载 /jgdata 可以工作......然后脚本挂载 /jdata 不需要输出检查,只需捕获错误并继续引导
编辑:在进一步阅读之后,bootwait 可能是一个更正确的传递选项...(通常用于在启动过程后期可能不存在的网络共享,但它仍可能导致挂起,idk)
并且可以像这样添加安装脚本:https ://stackoverflow.com/questions/2062543/running-a-script-with-the-help-of-grub-and-menu-lst
在引导期间挂载的推荐方法是通过fstab文件指示他们的系统。看着你的询问,我可以看到你几乎在那里,只缺少将设备设置为使用自动挂载选项的指令,允许你的系统在可用时挂载设备。
因此,只需将 fstab 中的行重写为如下所示:
修改保存后,尝试手动挂载:
需要注意的是:
<options>
需要按照非常特定的格式编写,用逗号分隔,但每个逗号后没有空格。小心这个;-)谢谢!