仅当驱动器可用时才使用外部交换分区

仅当驱动器可用时才使用外部交换分区

我使用带有 Debian Buster 的单板计算机(臂氢夫)安装在 SD 卡上。它有 1 GB 焊接 RAM,无法增加。我禁用了 Linux 交换,通常工作正常。

但我有一个应用程序,我希望可以使用交换。我想在 USB 硬盘上有一个交换分区,并且仅在需要使用交换分区时插入驱动器。该应用程序需要存在该驱动器,因此添加交换功能将非常方便。

到目前为止,一切都很好。

但是,我希望 Debian 能够自动检测并使用可用的交换空间,而无需用户交互。

有没有一种好的方法可以在用户不调用脚本的情况下执行此操作?重新启动是可以接受的,但我不想要求它。如果我只是将交换分区放入系统表,如果启动时未插入驱动器,则启动失败。

最后,我不担心禁用交换。申请完成后系统将关闭。

答案1

如果您想使用自动fstab挂载条目,您可以添加挂载选项nofail和 systemd timeout x-systemd.device-timeout=XX。这样就不会报告错误,并且在指定的超时设置后继续启动。否则默认超时为 90 秒。

fstab具有 3 秒超时的示例条目:

/dev/sdb1   none    swap    nofail,sw,x-systemd.device-timeout=3s   0   0

要在启动后安装交换分区,您必须创建udev规则或手动运行swapon -a或创建脚本来启动检查设备并运行的应用程序swapon -a

相关内容