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

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

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

但有时这个驱动器在启动时没有插入。 这让我在开机的一半时间,提示“继续等待,按S或按M”但在此阶段没有按键有任何影响(包括CtrlAlt删除 ,甚至没有大写锁定)。

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

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

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再次挂载。

在引导期间安装的推荐方法是通过fstab文件指示其系统。 看看你的Ask,我可以看到你几乎在那里,只缺少设置设备使用automount选项的指令,允许你的系统在设备可用时挂载。

所以,只需重写fstab中的行,如下所示:

 #       UUID="680C0FE30C0FAAE0" /jgdata ntfs user,auto,rw 0 0 

更改并保存后,尝试手动安装:

$ sudo mount -a

重要的是要注意:

  1. 你需要确定设备的UUID。 创建文件系统时,UUID由make-filesystem实用程序(mkfs。*)生成。
  2. 那些需要按照非常特定的格式编写,用逗号分隔,但每个逗号后没有空格。 小心这个;-)
  3. 我不确定这是否能顺利运行,因为您正在尝试自动挂载NTFS文件系统,可以使用NTFS-3G实用程序进行处理。 虽然我的指令应该正常工作,但我从未尝试过自动挂载NTFS。 因此,如果失败,我建议您查看此安装Windows分区以获取NTFS的其他用途。

谢谢!

 /dev/xvdh1 /myfs xfs defaults,nofail,x-systemd.device-timeout=30 0 0 

为我工作。

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

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

我有同样的问题。 当我知道下次启动时我不打算将驱动器存在时,我一直在编辑fstab注释掉这个条目。 然后,当我确实有驱动器存在时,我只需编辑fstab以删除注释并发出mount -a。 这不是一个完美的解决方案。 如果我找到一种方法让系统自动安装驱动器(如果存在)或者如果不存在则自动跳过它将是很好的。 如果您自动挂载NFS共享且服务器不存在,则会出现同样的问题。