操作系统版本: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
新的默认值。
对我有用的是使用 .hookzstd
在build()
钩子函数中添加模块add_module zstd
。
当然,如果zstd
您不打算使用其他任何东西,请添加该模块。
该错误消息非常具有误导性,但我能够根据这