当前位置: 首页>>技术问答>>正文


仅在插入时才在引导时安装外部驱动器

, , , ,

问题描述

我的fstab中有一个外部硬盘入口:

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

但有时这个驱动器在启动时没有插入。这让我在开机的一半时间,提示“继续等待,按S或按M”但在此阶段没有按键有任何影响(包括CtrlAltDelete,甚至不是caps-lock)。

如果没有编写脚本来检查fdisk -l的输出,那么只有在存在时才能在启动时安装此驱动器?为此驱动器提供fdisk条目会很方便,因此我只需输入mount /jgdata而不需要设备名称。

最佳解决办法

你们都在正确的道路上。我发现了一种更干净,更好的形式。

fstab中添加的正确选项是nofail,但是,它需要在auto之后。如果将其更改为noauto,则在引导期间永远不会挂载。如果将nobootwait添加到引导加载程序,则可能会遗漏一些严重的内容,例如在fsck完成检查之前安装分区,或者不安装引导过程中使用的分区。

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

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

次佳解决办法

noauto选项是否允许启动过程继续?

它不会自动挂载,如果存在,但它确实知道如果存在,所以一个简单的mount /jgdata工作…然后脚本mount /jdata不需要输出检查,只是捕获错误并继续启动

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

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

第三种解决办法

我有同样的问题 – 我已经做了一个额外的步骤

如果在/etc/fstab中使用nofail选项,系统将在引导时查找磁盘(和分区)。如果设备已插入,则将安装文件系统。如果没有,开机将继续正常进行。

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

UUID=XXXXXXXXXXXXXXX    /myhdd ntfs  nofail,auto,noatime,rw,user    0   0

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

我没有实现的是在启动后插入磁盘时自动挂载(在启动时没有插入时)。我必须使用mount -a作为root再次挂载。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1499.html,未经允许,请勿转载。