1. /dev/ram0 是什么

Linux 里有一种 ramdisk (RAM block device),对应设备节点是 /dev/ram0, /dev/ram1 …

它们本质上是把一段内存当成一个“虚拟磁盘”。

大小由内核参数控制,比如:
    modprobe brd rd_nr=1 rd_size=1048576

        rd_nr=1 → 创建 1 个 ramdisk(/dev/ram0)

        rd_size=1048576 → 大小 = 1048576 KB = 1 GB

在你截图的 Makefile 里就有这一句:

echo ${ROOT_PWD} | sudo -S modprobe brd rd_nr=1 rd_size=1048576

👉 这行命令就是在加载 brd (block ramdisk) 模块,并生成 /dev/ram0,大小 1GB。

2. 本机默认有没有 /dev/ram0

有些 Linux 发行版启动时就会创建 /dev/ram0,但大小可能很小(几 MB)。

如果你用的发行版没启用 ramdisk 模块,那默认可能没有 /dev/ram0。

但你可以通过 modprobe brd 命令自己加载内核模块,马上就能看到。

测试一下:
ls -lh /dev/ram*

如果你能看到 /dev/ram0,说明有。
3. 为什么这里用 ram0

在 build-rootfs.mk 里:

    它想做一个“虚拟磁盘”,在 RAM 里先分区、写 u-boot、写 rootfs。

    全部完成后,再 dd 这个 RAM 磁盘内容到一个镜像文件,或者再写到真实 SD/eMMC。

好处是:

    不会破坏你主机的真磁盘。

    编译环境和打包更安全。

    操作速度快(直接在内存里)。
    

✅ 总结

ram0 是内存模拟的磁盘设备,由 brd 模块创建。

本机不一定默认有,需要 modprobe brd rd_nr=1 rd_size=xxxx 才生成。

脚本里就是为了在内存里虚拟一个盘,做分区、写 uboot、打包 rootfs。

更多推荐