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

相关推荐
知行合一。。。14 小时前
Python--03--函数入门
android·数据库·python
qq_ceiling14 小时前
H3C交换机配置M-LAG
运维·服务器·网络
X***078814 小时前
理解 MySQL 的索引设计逻辑:从数据结构到实际查询性能的系统分析
数据库·mysql·sqlite
爬山算法14 小时前
Hibernate(31)Hibernate的原生SQL查询是什么?
数据库·sql·hibernate
warton8814 小时前
ubuntu24 安装 proxsql 实现数据库代理
linux·运维·mysql·ubuntu
Yuiiii__14 小时前
一次并不简单的 Spring 循环依赖排查
java·开发语言·数据库
-曾牛14 小时前
Yak语言核心基础:语句、变量与表达式详解
数据库·python·网络安全·golang·渗透测试·安全开发·yak
会跑的葫芦怪14 小时前
cursor 打开wsl Ubuntu项目
linux·运维·ubuntu
土星云SaturnCloud15 小时前
液冷技术的未来:相变冷却、喷淋冷却等前沿技术探索
服务器·人工智能·ai