SD卡image 的文件系统分区太小无法安装更多库(如何扩大SD卡rootfs分区)

一、SD卡image 的启动过程

SD卡image 的启动过程是:

image-20210323151640394

( 以上截图来自:https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide)

也就是开发板复位以后先执行boot ROM 里面的code, 这里面的code是芯片开发商已经内置的内容。然后boot ROM里面的code 会指引去加载preloader, 然后是u-boot(也称之为bootloader,这个过程会加载rbf和dtb), 然后是Linux kernel, 最后是根文件系统的加载。

img

二、SD卡image分区

SD卡image 是被分为了三个区(关于image制作与分区 请参考 https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide 第7小节,https://rocketboards.org/foswiki/Documentation/GSRDSdCard 第4小节): fat区,ext区,raw区。
fat区在windows系统下可见,这个区一般存放的文件是zimage、rbf、dtb、uboot.scr(该文件是uboot启动的脚本文件,内容参考:https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide 第5小节)等文件;
ext区在windows系统下不可见,在linux系统下可见,存放根文件系统;
raw分区在windows或linux下都不可见,存放uboot和preloader文件。(关于为啥放uboot和preloader只能放在raw分区,请参考我之前的博客:https://www.cnblogs.com/DoreenLiu/p/14452099.html

img

(以上截图来自:https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide)

三、 如何扩大SD卡rootfs分区

因为友晶官网提供的SD卡image的根文件系统分区分得比较小(才2G),无法安装更多库,这给应用带来局限。那如何扩大SD卡rootfs分区?

如果要将root分区增大,就需要重新制作image(即可以尝试制作一个空的image),把rootfs分区分大一些,然后把各个分区的文件拷贝进去。

可是我们在友晶科技官网上只能下载到 image压缩包,没有各个分区的文件(即没有image打包之前的文件)怎么办呢? 有办法——用命令先将之前image的各个分区的文件提取出来!

具体操作如下:

  1. 提取官网image各分区文件:

    (1)reloader和 uboot 的提取:用dd指令把整个boot分区提取出来,作为一个image(命令:dd if=/dev/sdb3 of=image)。

    (2)fat分区文件直接复制就可以提取出来。

    (3)根文件系统的提取:rootfs分区用tar 指令备份(命令:mkdir temp_mount1
    mount /dev/sdb2 ./temp_mount1
    tar -zcvf rootfs.rar temp_mount1/ )

  2. 参考前面 link 重新制作一个空的SD卡image,将rootfs分区增大到你需要的容量。然后将空image烧写到SD卡:

    image-20210323155815732
  3. 将提取出来的文件拷贝到新的image的各个分区:

    (1)preloader和 uboot 的拷贝:用dd指令将之前提取的image拷贝到raw分区即可(命令:dd if=image of=/dev/sdb3 bs=64k seek=0)

    (2)fat分区文件直接复制进去。

    (3)根文件系统的拷贝:将前面提取的根文件系统文件解压到空image的rootfs分区即可(命令:mkdir temp_mount2
    mount /dev/sdb2 ./temp_mount2

    tar -xvf rootfs.tar -C /temp_mount2)

四、 查看SD卡分区排列

提取和拷贝的时候涉及到查看SD卡分区排列:

命令:lsblk

img

或者命令:fdisk -l /dev/sdb

img
原文地址:https://www.cnblogs.com/DoreenLiu/p/14569983.html