RK3576-Debian12删除userdata分区

删除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

相关推荐
倔强的石头_15 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
chlk12320 小时前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑21 小时前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件21 小时前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒1 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号1 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash1 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行3 天前
Linux和window共享文件夹
linux