【瑞芯微rk3576刷ubuntu根文件系统容量不足问题解决】

文章目录

    • [1 问题引入](#1 问题引入)
    • [2 思考------剩余分区去哪里了??](#2 思考——剩余分区去哪里了??)
    • [3 注意:需要在启动时更改分区,对mmcblk1p6分区进行扩容](#3 注意:需要在启动时更改分区,对mmcblk1p6分区进行扩容)
    • [4 成功啦](#4 成功啦)

1 问题引入

  • 在做rk3576bsp开发项目中,我已经通过了buildroot最下系统验证。现在希望在板卡上进行rk3576刷入ubuntu22.04.5
  • 内核:6.1.99版本
  • 板卡存储 :2G+16G
  • 遇到的problem:在使用过程中,我发现根文件系统占用emmc的存储空间只有4.9G,而我的emmc是16G的,但显然很多空间没有被使用!此时我已经完成"3 需要在启动时更改分区,对mmcblk1p6分区进行扩容"这步操作,问题依旧存在!

2 思考------剩余分区去哪里了??

  • 原来,剩余分区分给了userdata
  • 修改parameter.txt分区文件,把剩余分区全给rootfs根文件系统(Ubuntu)。userdata和oem分区我直接不要了(buildroot最小系统需要使用userdata oem分区)
c 复制代码
下面是修改后的parameter.txt分区文件
c 复制代码
FIRMWARE_VER: 1.0
MACHINE_MODEL: RK3576
MACHINE_ID: 007
MANUFACTURER: RK3576
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: 0xffffffff
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
TYPE: GPT
GROW_ALIGN: 0
CMDLINE: mtdparts=:0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00020000@0x00008000(boot),0x00040000@0x00028000(recovery),0x00010000@0x00068000(backup),-@0x00078000(rootfs:grow)
uuid:rootfs=614e0000-0000-4b53-8000-1d28000054a9

3 注意:需要在启动时更改分区,对mmcblk1p6分区进行扩容

Ubuntu根文件系统打包成镜像并烧录到emmc后,所占分区大小和镜像的大小一样,为了充分利用emmc的空间,需要在第一次运行时扩充分区大小。根据parameter.txt中rootfs分区对应的名称配置, 默认是对/dev/mmcblk1p6分区进行扩充。创建一个脚本和服务来扩充分区。

c 复制代码
vi etc/init.d/firstboot.sh
# 以下是firstboot.sh的内容
#!/bin/bash -e
# first boot configure
# resize filesystem mmcblk1p6
if [ ! -e "/usr/local/first_boot_flag" ] ;
then
  echo "Resizing /dev/mmcblk1p6..."
  resize2fs /dev/mmcblk1p6
  touch /usr/local/first_boot_flag
fi

添加运行权限

c 复制代码
chmod +x etc/init.d/firstboot.sh

添加进启动服务

c 复制代码
vi lib/systemd/system/firstboot.service
# 以下是firstboot.service的内容




#start
[Unit]
Description=Setup rockchip platform environment
Before=lightdm.service
After=resize-helper.service
[Service]
Type=simple
ExecStart=/etc/init.d/firstboot.sh
[Install]
WantedBy=multi-user.target
#end

启动firstboot.service服务。

c 复制代码
systemctl enable firstboot.service

4 成功啦

相关推荐
zone_z3 分钟前
Oracle 数据库基础故障排查系列(12 篇)
数据库·oracle·dba·troubleshooting·blog-series
DBA_G7 分钟前
GBase 8a数据库RANGE分区操作详细解读
数据库·oracle
DevHub10 分钟前
电视盒子刷 Armbian 教程:30 元旧盒子变 NAS 跑 Docker,200+ 机型可刷
linux·嵌入式硬件·docker·容器·开源·电视盒子
某不知名網友1 小时前
MySQL数据表详解|创建、查看、修改、删除实战教程
数据库·mysql
Wang's Blog1 小时前
PostgreSQL笔记20: 实例、集群、模板数据库与表空间 —— 逻辑体系架构深度解析
数据库·笔记·postgresql
Doraemomo2 小时前
Linux编程-线程
linux·运维·服务器
Linux-lucky8 小时前
21-Linux学习之旅之HTTPS和安全加固
linux·运维·学习·ubuntu·https
清水白石0089 小时前
Python 死锁排查全攻略:从线程卡死到锁依赖定位与工程化修复
linux·网络·python
杨运交9 小时前
[060][调度模块]Redisson vs Redis 原生锁:两种分布式锁实现深度对比
数据库·redis·分布式
FungLeo9 小时前
Node 后端实战 · 列表查询到底怎么写?一个通用 DSL 封装,过滤分页排序一次搞定
数据库·node.js·serverless·dsl 封装·通用列表查询