Arch Boot Hook:分配 zramctl 分配失败

Arch Boot Hook:分配 zramctl 分配失败

操作系统版本:5.9.14-arch1-1 内核

我试图弄清楚如何/在启动时将整个目录加载到 RAM 中。我在这里找到了一个小帮手: https://github.com/arcmags/ramroot

因此,当ramroot钩子开始运行时,它将设置 zram 模块:

modprobe zram

接下来,我们将分配一些内存......

zramctl -f -s 10M

当我的操作系统启动时,此命令运行良好,我可以安装设备zram0。但在这种启动模式下,我收到此错误:

/dev/zram0: failed to set disksize (.... bytes): Cannot allocate memory

有谁知道问题可能出在哪里?是否缺少模块来完成操作?

这是我当前的挂钩订单:

HOOKS=(base udev ramroot autodetect modconf block filesystems keyboard fsck)

答案1

我创建了一个钩子,它可以完成与您想做的相同的事情,尽管一开始它有效,但在内核更新后我开始收到相同的错误消息。

我认为罪魁祸首可能是zram默认压缩算法的改变。我相信较新的内核版本开始用作zstd新的默认值。

对我有用的是使用 .hookzstdbuild()钩子函数中添加模块add_module zstd

当然,如果zstd您不打算使用其他任何东西,请添加该模块。

该错误消息非常具有误导性,但我能够根据

相关内容