前言
我自用的电脑内存都比较大,因此很早就养成了使用内存做临时盘的习惯
内存盘的好处很多,比如将系统临时文件夹、浏览器缓存文件等设置到内存盘,不仅可以提升速度,还可以减少对固态硬盘的写入,提升固态盘的使用寿命。。
问题
在大多数Linux系统中,可以使用下面这条命令来创建内存盘:
#创建一个最大2G的内存盘
sudo modprobe brd rd_nr=1 rd_size=2048000
命令执行成功后,会生成一个文件:/dev/ram0 将它格式化、挂载即可使用。
统信UOS不知从哪个版本开始,开机后会自动生成ram0-ram7 8个文件,而上面那条命令执行后没有反应。这8个文件,每个文件最大只有32M,根本不实用。。
探索
执行命令:
sudo blockdev --report
可以看到它们的一些信息:
但是blockdev命令修改不了它们的大小。
将它们删除,再执行sudo modprobe brd命令也不会有任何作用。
查看了一下统信的内核编译参数,看到了两个参数:
CONFIG_BLK_DEV_RAM_COUNT=8
CONFIG_BLK_DEV_RAM_SIZE=32768
显然就是它们,原来ram0-ram7的文件是由内核生成的。
如果要修改它们的大小,难不成要重新编译内核?
改一次大小,就要编译一次内核,这显然是不科学的!
解决
既然是内核的东西,那是否可以通过调整启动参数来改变?
答案是肯定的!
使用文本编辑器修改 /etc/default/grub 文件:
sudo deepin-editor /etc/default/grub #注意,deepin-editor 是统信、深度才有的编辑器,其它系统请修改
找到 GRUB_CMDLINE_LINUX_DEFAULT 开头的一行,在它后面的参数中加入:
#单位为KB
ramdisk_size=2048000
如图:
保存文件后,执行命令:
sudo update-grub
重完成后重启电脑。
再用blockdev命令查看一下:
发现ram0-ram7的大小都变成了2097152000(2G)
大功告成,将它们格式化后挂载即可使用。
答疑
问题1:8个内存盘文件都是2G大小,那是否开机内存就会被占用16G?
答:这是不会的!ram文件的大小,决定的是它们的上限。如果你不使用它们,那它们是不会占内存的!如果只使用其中一个,那它最多就占2G..
问题2:ram文件的数量是否也可以使用参数修改?
答:按道理、逻辑说是可以的,文心一言告诉我一个参数:ramdisk_count ,而chatGPT说没有参数可以修改。实际测试发现 ramdisk_count 参数并不能修改...
目前来看,想要修改数量,需要重新编译内核
问题3:modprobe brd命令还能用吗?
答:我的目的只是使用内存盘,既然系统已经帮我创建好了,我又何必去纠结它呢?