最新的内核已经制作了ramdisk模块:
CONFIG_BLK_DEV_RAM=m
哪个模块以及在哪里可以找到它。
是否可以从 initramfs 启动期间加载?
我在带有 SSD 和 Ramdisk (/dev/ram1) 的软件 RAID1 上拥有 root 权限
大部分写入都在 SSD 上。
原始内核中的 CONFIG_BLK_DEV_RAM 是布尔值,现在是模块?!?!
这种改变有什么理由吗?
谢谢
答案1
块ramdisk模块被调用brd
并可以按如下方式加载:
sudo modprobe brd rd_size=100000
其中rd_size
是块数。完成此步骤后,您将拥有一个/dev/ram0
可以放置文件系统的设备:
sudo mkfs /dev/ram0
并安装。
答案2
RAM 磁盘的另一个选项是兹拉姆。将文件放入 zram RAM 磁盘后,文件在传输过程中会快速压缩,在检索过程中会透明地解压缩。当您的系统没有足够的 RAM 容量用于 RAM 磁盘时,这会很有用。
创建 zram RAM 磁盘的方法如下:
创建一个文件夹,用于安装 RAM 磁盘:
sudo mkdir /tmp/ramdisk
更改该文件夹的所有权,以便我们稍后挂载 RAM 磁盘时,您的用户将拥有对该磁盘的完全访问权限:
sudo chown -R yourUserName:yourGroupName /tmp/ramdisk
使文件夹不可变,这样您就不会意外地用 RAM 磁盘的数据填满您的 OS 分区:
sudo chattr +i /tmp/ramdisk
加载zram模块:
sudo modprobe zram
创建一个1GB的ram磁盘:
sudo zramctl --find --size 1G
上述命令将输出您创建的 RAM 磁盘的设备路径。它很可能是/dev/zram0
,这也是我们接下来假设的。
将 RAM 磁盘格式化为 EXT4:
sudo mke2fs -t ext4 -O ^has_journal -L "zram device" /dev/zram0
将 RAM 磁盘挂载到我们创建的不可变挂载点文件夹:
sudo mount /dev/zram0 /tmp/ramdisk
现在您应该能够将文件移至位于的 RAM 磁盘或从其中移出/tmp/ramdisk/
。
如果你已经玩够了,请将其卸载:
sudo umount /tmp/ramdisk/
最后,让我们销毁 RAM 磁盘并释放它正在使用的所有内存:
sudo zramctl --reset /dev/zram0
如果您还想删除该文件夹/tmp/ramdisk
,请首先使其可变:
sudo chattr -i /tmp/ramdisk
现在您可以删除该文件夹:
rm -rf /tmp/ramdisk