现在如何加载 ramdisk?

现在如何加载 ramdisk?

最新的内核已经制作了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

相关内容