树莓派更新rootfs记录

Posted by 婷 on December 28, 2025 本文总阅读量

简介

记录下自己的树莓派更新rootfs的过程,防止忘记原理跟步骤了

原理

因为rootfs镜像太大了,uboot下可用的内存不足以支持把镜像通过网络写到emmc中,所以将emmc划分出mmcblk0p5分区,放置一个小的根文件系统用来做升级(有点像为了专门升级而做的小系统)。升级文件可以选择放在p5或者p6都可以,这里我选择放在p6。需要升级的时候就设置好ubootbootargs命令,将根文件系统切换到p5分区,就能对p3裸分区进行dd操作了。

image-20251228170711434

步骤

打包rootfs,执行buildroot下的pack_rootfs脚本

img

树莓派端挂载nfs,将打包好后的raspi_rootfs.ext4文件拷贝放到/dav目录下,该目录挂载的是mmcblk0p6节点

img

重启,进入uboot,输入下列命令,将根文件系统切换到mmcblk0p5去,不需要保存参数,直接启动

U-Boot> setenv bootargs 'coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0 rootfstype=ext4 root=/dev/mmcblk0p5 rootwait rw'
U-Boot> run bootcmd

img

重启后,直接对mmcblk0p3分区进行dd操作,这里操作前先看下ext4文件多大

img

# cd /dav
# ls -lh raspi_rootfs.ext4
# dd if=raspi_rootfs.ext4 of=/dev/mmcblk0p3 bs=50M count=8

直接重启后,给mmcblk0p3调整文件系统的大小(或者在上一步重启前直接执行命令也是可行的)

# resize2fs /dev/mmcblk0p3

可以看到/dev/rootavailable跟实际的硬件分区一样了

img