• 关于统信UOS不能使用“modprobe brd”创建内存盘的问题


    前言

    我自用的电脑内存都比较大,因此很早就养成了使用内存做临时盘的习惯

    内存盘的好处很多,比如将系统临时文件夹、浏览器缓存文件等设置到内存盘,不仅可以提升速度,还可以减少对固态硬盘的写入,提升固态盘的使用寿命。。

    问题

    在大多数Linux系统中,可以使用下面这条命令来创建内存盘:

    1. #创建一个最大2G的内存盘
    2. sudo modprobe brd rd_nr=1 rd_size=2048000

    命令执行成功后,会生成一个文件:/dev/ram0  将它格式化、挂载即可使用。

    统信UOS不知从哪个版本开始,开机后会自动生成ram0-ram7 8个文件,而上面那条命令执行后没有反应。这8个文件,每个文件最大只有32M,根本不实用。。

    探索

    执行命令:

    sudo blockdev --report

    可以看到它们的一些信息:

    但是blockdev命令修改不了它们的大小。

    将它们删除,再执行sudo modprobe brd命令也不会有任何作用。

    查看了一下统信的内核编译参数,看到了两个参数:

    1. CONFIG_BLK_DEV_RAM_COUNT=8
    2. CONFIG_BLK_DEV_RAM_SIZE=32768

    显然就是它们,原来ram0-ram7的文件是由内核生成的。

    如果要修改它们的大小,难不成要重新编译内核?

    改一次大小,就要编译一次内核,这显然是不科学的!

    解决

    既然是内核的东西,那是否可以通过调整启动参数来改变?

    答案是肯定的!

    使用文本编辑器修改 /etc/default/grub 文件:

    sudo deepin-editor /etc/default/grub  #注意,deepin-editor 是统信、深度才有的编辑器,其它系统请修改

    找到 GRUB_CMDLINE_LINUX_DEFAULT 开头的一行,在它后面的参数中加入:

    1. #单位为KB
    2. 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命令还能用吗?

    答:我的目的只是使用内存盘,既然系统已经帮我创建好了,我又何必去纠结它呢?

  • 相关阅读:
    qwen微调
    MYSQL之DML(数据库操作语言)
    通过plesk面板的文件管理器上传文件
    NET Core使用Grpc通信(一):一元请求
    企业数字化转型落地实施,应该围绕这三大方向展开
    121. 买卖股票的最佳时机
    Databend 与海外某电信签约:共创海外电信数据仓库新纪元
    OpenJudge NOI题库 1.3 编程基础之算术表达式与顺序执行
    网上流量卡这么便宜,线上申请的流量卡有虚标吗
    PAT 1019 General Palindromic Number
  • 原文地址:https://blog.csdn.net/s806903/article/details/133921003