【全志T113-S3_100ask】SD卡扩容

文章介绍了全志T113开发板SD卡扩容的两种方法,包括不推荐的修改系统配置文件方法和推荐的使用gdisk删除与重建分区、调整文件系统大小的方法。通过gdisk进行GPT分区管理,删除share分区,扩容rootfs分区,并使用resize2fs在线调整文件系统大小,以充分利用SD卡空间。
摘要由CSDN通过智能技术生成

前言

一. 为什么要进行SD卡扩容

在全志T113实际使用当中,我们会发现SD卡本身32G的内存,但是SD的存储并没有得到充分的利用,在启动开发板系统后,df -h就会发现,根文件系统的大小只有不足以256M(如下图所示),像一些摄像头的使用,想保存一些图片到本地,也会受到内存的限制。那是否有办法让可用空间变的更大,毫无疑问肯定是有的。

在这里插入图片描述

二. 方法一(不推荐)

通过修改配置文件,使根文件系统大小增大

2.1 找到系统配置文件

首先找到SDK包,进入目录:

在这里插入图片描述
在路径**buildroot-100ask_t113-pro/br2t113pro/configs/**下,有两个系统配置文件,修改哪个?取决于你的开发板系统是通过什么启动的,我这里是通过SD卡启动,所以我将修改100ask_t113-pro_sdcard_core_defconfig这个文件。

在这里插入图片描述

2.2 修改系统配置文件

用vim打开100ask_t113-pro_sdcard_core_defconfig,紧接着左斜杆搜索BR2_TARGET_ROOTFS_EXT2_SIZE,将对应参数256M修改成你想要的一个值就好了。
在这里插入图片描述

这个方法虽然简单方便,但是缺点也是很明显的,通过修改这个值,那么编译后生成的镜像文件也会随之增大,这就会导致你烧录也会变慢,所以这个方法是治标不治本的。假设你把SD卡剩下的内存全用上,那么这个镜像文件就会接近30个G,这得烧录多久啊…

三. 方法二(推荐)

3.1 安装gdisk

首先为什么要用gdisk而不用fdisk呢?

genimage工具打包的镜像分区是hybrid混合分区,fdisk只支持MBR分区,不支持GPT分区,所以使用fdisk -l命令查看的分区信息和cat /proc/partitions查看的设备信息不一致,使用fdisk分区也无效。

在此之前我的开发板系统里面是没有gdisk工具的,如果你的开发板有的话,就可以跳过这个步骤。

进入到buildroot目录下,执行make menuconfig
在这里插入图片描述

进入到图形化界面后,左斜杠搜索BR2_PACKAGE_GPTFDISK,*号选中退出保存:

在这里插入图片描述

然后在bulidroot目录下执行编译:

make V=1

然后把系统烧录到开发板启动。

以下是gdisk使用帮助信息:

Command (? for help): ?                #输入?号查看可用的指令
b   back up GPT data to a file          #将GPT数据备份到文件中
c   change a partition's name           #更改分区的名称
d   delete a partition               #删除分区
i   show detailed information on a partition #将显示分区的详细信息
l   list known partition types           #列出已知的分区类型
n   add a new partition               #添加一个新的分区
o   create a new empty GUID partition table (GPT)       #创建一个新的空GUID分区表(GPT)
p   print the partition table                  #打印分区表
q   quit without saving changes               #不保存更改就退出
r   recovery and transformation options (experts only)      #恢复和转换选项(仅限专家使用)
s   sort partitions                      #分类分区
t   change a partition's type code           #更改分区的类型
v   verify disk                       #验证磁盘
w   write table to disk and exit            #将表写入磁盘并退出
x   extra functionality (experts only)       #额外功能(仅限专家使用)
?   print this menu                   #查看可用的指令

3.2 删除share分区

启动系统后,执行下面命令进入交互:

gdisk /dev/mmcblk0

在这里插入图片描述

紧接着输入p回车,即可打印分区表:
在这里插入图片描述

我们要进行删除分区的操作,输入d回车,选择删除第6分区:
在这里插入图片描述

3.3 扩容rootfs分区

在删除完share分区后,我们再删除rootfs分区,输入d回车,选择删除第5分区:
在这里插入图片描述

在删除rootfs分区后,我们再进行新建分区,输入n回车:

在这里插入图片描述
在这里一直回车(回车默认选择default的值)即可。

3.3.1 小插曲

可以看到,目前1154118是可选择的最大值。这个时候就会觉得很奇怪,明明有29G的内存,为什么可用的只能到1154118呢。那剩下的29G跑哪去了?
在这里插入图片描述

这个时候我们输入p回车再打印分区表,可见我们第五个分区已经建立好了,而且比之前rootfs分区大,但是分区名字不是rootfs,这里我们可以输入c回车进行改名。
在这里插入图片描述
在这里插入图片描述
修改好之后,我们输入w回车保存。然后重启系统,执行如下命令:

reboot

3.4 在线调整文件系统大小

在系统重启之后,我们df -h查看发现rootfs还是跟之前的大小一样,没有发生变化,这个时候我们执行如下命令,对文件系统进行一个在线调整:

resize2fs /dev/mmcblk0p5

执行完上面的命令后,再次df -h就可以看到size发生变化了:
在这里插入图片描述
但是这个大小还并没有满足我们的需求,因为我们的目的是充分利用SD的空间,有大约29G的大小,但是上面我们扩容rootfs分区的时候,不是只能选择到1154118吗?但是,在我们将之前的share分区扩容到rootfs分区后,并且重启和在线调整文件系统后,当我们再次进入到gdisk交互,打印出分区表,就可以看到之前消失的29G跑回来了。这个时候最后一个可用扇区也从1154118变成了62322112
在这里插入图片描述

3.5 最后再次扩容rootfs

所以我们还要进行一次扩容,将所有可用扇区全扩到rootfs分区
在这里插入图片描述

这个时候,就可以看到第5分区的大小已经高达29.7G了,那么接下来我们进行改名(改回rootfs)保存退出,然后重启系统之后,再次执行下面命令在线调整文件系统:

resize2fs /dev/mmcblk0p5

执行完后,df -h查看:
在这里插入图片描述

最后

至于在没经过第一次扩容前,为啥29G的空间会没显示出来的原因,我也不是很清楚,如果有大佬知道,欢迎您留言。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点灯学徒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值