删除userdata分区将剩余的空间全部分配给根目录
说明
目前的Debian分区如下:
bash
$ df -h
文件系统 大小 已用 可用 已用% 挂载点
/dev/root 14G 3.7G 9.5G 28% /
devtmpfs 1.9G 8.0K 1.9G 1% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 780M 2.1M 778M 1% /run
tmpfs 5.0M 16K 5.0M 1% /run/lock
/dev/mmcblk0p7 104M 12M 84M 13% /oem
/dev/mmcblk0p8 42G 412K 40G 1% /userdata
tmpfs 390M 36K 390M 1% /run/user/1000
tmpfs 390M 28K 390M 1% /run/user/1001
系统在启动的时候,会自动运行 /etc/init.d/resize-disk.sh -> /usr/bin/resize-helper 自动扩展分区。
目前的 userdata 分区的容量太大了,导致用户在使用的时候根目录很容易爆满,所以想着删掉 userdata 分区,把所有的容量都给根目录。
目前的各个镜像烧录的分区是这样的:

我们发现 userdata/ 这个镜像区,是在最后的,所以使用 /etc/init.d/resize-disk.sh -> /usr/bin/resize-helper 自动扩展分区时,会自动的给最后的空间扩容,因为无法转换跨区扩容。
SDK修改
parameter.txt
修改 build/3576L6/device/rockchip/.chips/rk3576/parameter.txt 中 CMDLINE 的参数:
bash
# 原本的参数
CMDLINE:
mtdparts=:0x00002000@0x00004000(uboot),
0x00002000@0x00006000(misc),
0x00020000@0x00008000(boot),
0x00040000@0x00028000(recovery),
0x00010000@0x00068000(backup),
0x01c00000@0x00078000(rootfs),
0x00040000@0x01c78000(oem),-@0x01cb8000(userdata:grow)
# 修改后的参数
CMDLINE:
mtdparts=:0x00002000@0x00004000(uboot),
0x00002000@0x00006000(misc),
0x00020000@0x00008000(boot),
0x00040000@0x00028000(recovery),
0x00010000@0x00068000(backup),
0x00040000@0x00078000(oem),-@0x000B8000(rootfs:grow)
修改点说明:
- 将分区的顺序进行了调整,将rootfs 放置在了最后
- 删除了 userdata 这个参数
rkflash.sh
修改 build/3576L6/device/rockchip/common/scripts/rkflash.sh 脚本:
删除掉 userdata.img 相关的语句。
diff
MISC=$ROCKDEV_DIR/misc.img
ROOTFS=$ROCKDEV_DIR/rootfs.img
- USERDATA=$ROCKDEV_DIR/userdata.img
+ # USERDATA=$ROCKDEV_DIR/userdata.img
UPDATE=$ROCKDEV_DIR/update.img
if [ ! -n "$1" ];then
diff
$UPGRADETOOL di -m $MISC
$UPGRADETOOL di -oem $OEM
- $UPGRADETOOL di -userdata $USERDATA
+ # $UPGRADETOOL di -userdata $USERDATA
$UPGRADETOOL di -rootfs $ROOTFS
$UPGRADETOOL rd
fi
if [ $FLASH_TYPE = tb ]
diff
$UPGRADETOOL di -b $BOOT
$UPGRADETOOL di -oem $OEM
- $UPGRADETOOL di -userdata $USERDATA
+ # $UPGRADETOOL di -userdata $USERDATA
$UPGRADETOOL di -rootfs $ROOTFS
fi
if [ $FLASH_TYPE = loader ]
diff
if [ $FLASH_TYPE = oem ]
then
if [ -n "$2" ];then
OEM=$2
fi
echo "flash oem: $OEM"
$UPGRADETOOL di -oem $OEM
fi
- if [ $FLASH_TYPE = userdata ]
- then
- if [ -n "$2" ];then
- USERDATA=$2
- fi
- echo "flash userdata: $USERDATA"
- $UPGRADETOOL di -userdata $USERDATA
- fi
+ # if [ $FLASH_TYPE = userdata ]
+ # then
+ # if [ -n "$2" ];then
+ # USERDATA=$2
+ # fi
+ # echo "flash userdata: $USERDATA"
+ # $UPGRADETOOL di -userdata $USERDATA
+ # fi
if [ $FLASH_TYPE = rootfs ]
then
if [ -n "$2" ];then
ROOTFS=$2
fi
rk3576-package-file
build/3576L6/tools/linux/Linux_Pack_Firmware/rockdev/rk3576-package-file 此文件是打包 update.img 时的分配文件,因为删除了分区和调整了分区的排布,所以需要修改:
diff
#resource Image/resource.img
#kernel Image/kernel.img
boot Image/boot.img
recovery Image/recovery.img
+ oem Image/oem.img
rootfs Image/rootfs.img
- oem Image/oem.img
- userdata Image/userdata.img
+ #userdata Image/userdata.img
# Ҫд��backup�������ļ�����������update.img��
# SELF �ǹؼ��֣���ʾ�����ļ���update.img������
rkipc.ini
build/3576L6/app/rkipc/src/rk3576_ipc/rkipc.ini 是 Rockchip 提供的 **rkipc(Rockchip IPC / IP Camera)**应用的配置文件。rkipc 典型用于:
- 视频采集、编码(H.264/H.265)
- 图片抓拍
- 循环录像 / 事件录像
- 存储管理(自动清理旧文件)
在其总有一个 [storage] 的 /userdata 策略是挂载在指定底层块设备分区节点 /dev/mmcblk0p6,尽量要修改,将 /userdata 完全转化为一个目录,不绑定底层块设备分区节点:
diff
[isp.0.auto_focus]
af_mode = semi-auto
zoom_level = 0
focus_level = 0
[storage]
mount_path = /userdata
- dev_path = /dev/mmcblk0p6
+ dev_path =
free_size_del_min = 500; MB
free_size_del_max = 1000; MB
[storage.0]
enable = 0
folder_name = video0
fstab
build/3576L6/debian/scripts/rkstage0/02-sys-tweaks/files/fstab 文件,是 " 自动挂载分区 " 配置,用来在系统启动时把带有 GPT 分区标签挂载到目录,因为已经删除了 userdata/ 所以修改这个文件:
diff
/dev/root / ext2 rw,noatime 0 1
proc /proc proc defaults 0 0
/dev/disk/by-partlabel/oem /oem ext2 defaults 0 2
- /dev/disk/by-partlabel/userdata /userdata ext2 defaults 0 2
效果:
bash
$ df -h
文件系统 大小 已用 可用 已用% 挂载点
/dev/root 57G 3.7G 51G 7% /
devtmpfs 1.9G 8.0K 1.9G 1% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 780M 2.0M 778M 1% /run
tmpfs 5.0M 16K 5.0M 1% /run/lock
/dev/mmcblk0p6 104M 12M 84M 13% /oem
tmpfs 390M 40K 390M 1% /run/user/1000
tmpfs 390M 28K 390M 1% /run/user/1001
