我使用带有 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
。