本文将介绍如何调整file system 分区的大小以利用TF卡的全部容量。
为什么要调整
在对TF卡烧录镜像时为了能更快的写入镜像,root file system 在制作的过程中就尽可能的让 image 保持较小尺寸,这就导致TF卡有很多容量是被闲置没有利用的(如下图最右边未被使用的部分)。所以才有了本章节内容,调整file system 分区的大小以利用TF卡的全部容量
因为调整 file system 的大小,存在擦除整个TF卡的风险(导致之前写入的系统损坏),所以在系统可以启动之后请尽快完成此项操作。(当然如果TF被意外擦除不能启动了,您只需要重复前几个章节的操作重新写入一遍系统即可)
信息参考
本文全部内容均参考Xillybus 官方手册的第4.4章节
https://xillybus.com/downloads/doc/zh/xillybus_getting_started_zynq_zh.pdf
详细操作
首先在命令行终端中输入 df -h 查看当前的空间分配 (本文是使用putty 通过串口来进行配置,直接在xillinux 桌面系统里的命令行上操作应该也是可以的)
所以当前的 root filesystem 总共空间是3.4G ,已使用2.8 GB,加上388 MB 可以空间,使用率达到89% 。
1、重新对TF卡进行分区。在终端命令行中输入 fdisk /dev/mmcblk0
fdisk /dev/mmcblk0
- 然后键入以下内容(另请参阅下面的会话记录):
- d [回车]–删除 分区
- 2 [回车]–选择 第二分区
- n [回车]- 创建一个新的分区
- 按 [回车] 4 次以选择默认值:分别代表 : 创建的分区类型 主分区 ,第二分区,从可能的最低 sector 开始,到可能最高的sector 结束。
- w [ 回车] – 保存并退出。
如果在这中途出现任何问题,只需按CTRL-C (或q [回车] )退出fdisk 功能(退出不保存)。此时TF卡不会有任何改动
2. 此时系统提示 kernel 现在仍旧使用旧的分区表 ,新做的更改只有在下次重新启动,或者按下partprobe 后才会生效 ,这里我们输入命令 partprobe
partprobe
如果如下图所示,输入partprobe后,系统没有任何反馈,则证明分区表没有任何问题
3. 现在我们仅仅只是调整了分区的大小,并没有调整file system的大小,相当于我们只被赋予了调整大小的空间,这里我们输入 resize2fs /dev/mmcblk0p2来调整file system 的大小,结果如下图所示
resize2fs /dev/mmcblk0p2
新调整后的 filesystem空间大小取决于分区的大小(也即和TF的容量有关),所以大家看到的结果可能会有所不同。操作结果是立刻生效的,不需要重新启动系统。
4. 验证结果
这时我们再输入 df -h 查看 空间分配,如下图所示,此时的root file 空间大小已拓展成58G了,可用空间53G(备注 我演示的TF卡是64G的TF卡)
经过上述的操作后,TF卡剩余未被利用的空间也都归并到file system中了。 在windows下查看TF卡的分区结构 如下图所示(插入windows 系统会提示格式化分区,切记不可格式化)