使用https://gitee.com/weidongshan/100ASK_T113-Pro_TinaSDK.git的板级扩展补丁,编译T113_PRO开发板的NAND FLASH镜像,镜像有44Mb,但是root的36Mb占用100%,只有overlay的1.4Mb可用,我想修改rootfs的分区大小应该在哪里修改呢
你好,拍照看一下主板 和 spi flash 部分
板子这会没有带在身边,买的是这款链接的红色基础套餐,spi flash是128Mb的nand flash
这种情况是正常情况.
因为Tina 打包工具 打包的root 目录 分区默认就是按照最大占用量进行打包的,为了确保固件的准确。
原本的固件虽然看上去跟文件系统有空间,事实上通过 mount
来查看文件系统的挂载情况
root@TinaLinux:/# mount
/dev/root on /rom type squashfs (ro,noatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=503920k,nr_inodes=125980,mode=755)
proc on /proc type proc (rw,nosuid,nodev,noexec,noatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,noatime)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,noatime)
/dev/by-name/UDISK on /overlay type ubifs (rw,relatime,assert=read-only,ubi=0,vol=8)
overlayfs:/overlay on / type overlay (rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600,ptmxmode=000)
debugfs on /sys/kernel/debug type debugfs (rw,noatime)
none on /sys/kernel/config type configfs (rw,relatime)
adb on /dev/usb-ffs/adb type functionfs (rw,relatime)
其中root 为固件打包分区,默认为全部占用的,而在刚开始看到的/
目录,此时则挂载在/overlay
目录,而/overlay
目录则又是在/
根目录中,是怎么回事呢?
我们再来测试一下
使用dd if=/dev/zero of=test
读取该节点数据写入 test
文件,of =
指定了文件名在当前文件夹下。
等待写入一会。查看当前文件ls
root@TinaLinux:/# ls
base rom
bin root
dev sbin
etc spec
lib stress
lib64xthead sys
mnt test
overlay tmp
proc usr
rdinit var
riscv64-unknown-linux-gnu www
根文件系统中多了 test 文件,他真的 在跟文件系统中吗?
不是!!!!
是不是觉得被忽悠了?别怕 我们再进到 overlay/upper/
查看文件 ls
ohhhhhhhhhh 你发现了 Tina 系统跟文件的真谛!!!
root@TinaLinux:/# cd overlay/upper/
root@TinaLinux:/overlay/upper# ls
etc test
总结:Tina打包默认会将rootfs即root目录全部打包完整,而系统剩余的容量会在overlay
目录中,在最开始的固件,只是将overlay
也映射到了跟文件系统中,铁汁们,后面更新的固件就不要被骗了哦 结束
关于overlay和rootfs的关系我已经了解,我现在是想修改overlay分区的大小,这个分区从启动log来看是从rootfs_data上挂载出来的,关于rootfs_data分区的大小设置,我的理解应该是在device/config/chips/t113/configs/100ask/sys_partition.fex文件中,事实上我修改此文件中的62行的rootfs分区大小之后可以明显看到最终pack的img的size发生改变,说明此文件确实就是T113_Pro开发板的分区设置文件,但是我修改此文件的86行rootfs_data的size大小,对最终的overlay分区并不产生影响,所以我的疑问是overlay分区的size是在哪里修改呢?
准确来说 是自动 填充的,无法进行设置,除非 拟增加新的分区, 指定特定的大小 才可以
与楼主遇到同样问题,查到此贴,楼主的overlayfs挂的是rootfs_data,而Yuxuan挂的是 ```
/dev/by-name/UDISK
原因就在这儿