我在 Chromebook 上的自定义 Chromium OS (cros) 内核上运行 Debian。Cros 内核默认禁用基于磁盘的交换文件(因为它更喜欢zram
),要启用它,必须将sysctl
变量vm.disk_based_swap
设置为 1,否则挂载交换文件将失败。但是,在 /etc/sysctl.d 中添加vm.disk_based_swap=1
文件.conf
似乎只有大约一半的时间有效;其余时间交换挂载失败,即使可以验证启动后vm.disk_based_swap
设置为 1,我猜想在这些情况下内核启动参数应用得不够快。基于这种特定场景,一般问题是如何确保在执行依赖进程之前设置内核启动参数,通过以下任一方式:
- 通过任何可用方法将内核启动参数提升到足够的优先级(顺便说一句,
sysctl.vm.disk_based_swap=1
在 GRUB 中输入内核命令行不起作用) - 依赖过程可以通过任何可用方法充分延迟(
systemd
也许进行一些修补?)