rock3a扩大根文件系统大小

Posted by 婷 on January 17, 2024 本文总阅读量

前言

rock3a编译的镜像,烧录到128GBSD卡中,根文件系统就只有3.5GB大小,放个内核源码都不够用了,于是直接在内核下fdiskresize2fs进行扩容,结果重启后,根文件系统无法起来,对比正常的SD卡启动打印,发现了有一行Waiting for root device PARTUUID=614e0000-00... 的打印。

image-20240117180127935

根据关键字符串搜索,发现在rockchip-bsp/build/extlinux/rk3568.conf中,追加了uuidcmdline的操作

image-20240114165045021

image-20240117180343417

uboot启动过程中也可以看到

image-20240117171021163

大概猜到可能是rootfs的分区的guid因为扩容后改变的问题,下面则正式演示一下如何正确扩容的过程。

过程

我们128GBSD卡,此时还没扩容前,进入uboot,输入part list mmc 1,记录此时rootfs分区的guid614e0000-0000-4b53-8000-1d28000054a9

image-20240114210329911

然后进入内核,先输入fdisk -l查看我们的SD卡是哪个dev节点,如图中所示为/dev/mmcblk1

image-20240115223128427

然后fdisk工具扩容,具体内容就不阐述了,按照下面截图来即可

image-20240117120147369

image-20240114164304593

fdisk扩容完成后,用下列命令,修复下rootfs分区(注意是rootfs分区,不是整个SD卡)

resize2fs /dev/mmcblk1p2

image-20240114221553569

此时df -hlsblk查看,都可以看到内核下已经是扩容成功了

image-20240114221608453

image-20240114221623241

不过如果这个时候重启,根文件系统是起不来的,还需要在uboot下重写下rootfs分区的guid

这时候断电进入uboot,输入part list mmc 1,可以看到rootfs分区此刻是异常的,分区名不见了,guid也发生改变

image-20240114170036505

根据官方的分区分布

image-20240117174925152

输入以下命令

setenv uuid_rootfs 614e0000-0000-4b53-8000-1d28000054a9
setenv uuid_boot  f88ea47f-8b2b-4fe6-a5aa-47d93bb2eea3
env set testpart name=boot,start=16MB,size=512MB,bootable,uuid=${uuid_boot}
setenv testpart "$testpart;name=rootfs,size=-,type=linux,uuid=$uuid_rootfs"
gpt write mmc 1 $testpart

image-20240117175332494

这时候重启即可恢复正常

其他

有空可以研究下gpt,可以参考build/mk-image.sh

image-20240117175731113

参考链接