经过一段时间的运行,香蕉派里磁盘空间很快就满了。使用 df -lh 命令,可以看到 /dev/root 占用率已经达到 100%。这个现象让我很是迷惑,当初买SD卡时我买的是8G大小,难道这么快就用光光了?对于 Linux 我不懂,顿时慌了手脚,于是就在考虑是买一个更大容量的SD卡,还是考虑采用移动硬盘的方式,还是把香蕉派扔掉的犹豫中渡过了几个不眠夜。
目前我的香蕉派里就安装了Nginx、PHP、Mysql,加上系统本身的空间,内容应该没有特别大。
在一次偶然的过程中,我打开了Disks程序,突然发现SD卡,里面还有大约4G的空白空间。我的第一反应是还好自己放在购物车里的订单还没有支付。既然有剩余空间就比较好处理了,用一些工具应该可以实现。可惜我不会,只好求助网络。
网上搜索有帖子说,对于Linux系统一旦安装好,那么分区就是固定的了,一个处理不好连系统无法启动。我这边看到有2个分区,第一个分区不到100M,应该是引导分区,第二个分区就是实际用的。剩余4.3G是剩余空间,还没有分区。
以root登录系统,使用 Disks 工具,选中那个4.3G的空白空间,然后格式化并添加。记得是快速格式化,磁盘格式选择和主分区一致的Ext4格式。
现在就该使用解决问题的命令fdisk了,命令格式:fdisk <存储设备名> //如: fdisk /dev/sda
进入fdisk 后,使用单键命令
m 显示Help
p 列出所有分区
d 删除分区
n 新建分区
w 存盘退出
q 不存盘退出
对主设备进行fdisk,对于香蕉派,命令是:sudo fdisk /dev/mmcblk0。
按 p 键 列出所有分区,可见有三个分区。第一个分区是 FAT32分区,是引导用的,第二个分区是Linux 主分区,第三个分区是刚添加的那个4.3G的空白分区。记下Linux 主分区的Start Sector号 ,我的是102400。
按 d 键 Partition Number (分区号) 选 2, 删除linux主分区(第2个区)。再按d键, Partition Number (分区号) 选 3, 删除4.3G的空白分区(第3个区)
按 p 键 列出所有分区,可见只剩第一个分区了
按 n 键,重新创建linux主分区
Partition Type(分类类型) 选 P (Primary)
Partition Number (分区号) 选 2
First Sector(起始Sector) 一定要输入刚才记下来的Start Sector号(我的是102400),默认直接回车也可以。Last Sector (终止Sector)用默认值,直接回车。
按 p 键 列出所有分区,可见有两个分区,linux主分区在第2个,起始位置是原位置。 按 w 键 存盘退出fdisk。
接下来,立即重启,不要做任何其它事情
sudo reboot
重启并登录后,立即用以下命令sudo resize2fs /dev/mmcblk0p2 ,该命令将把第二个分区扩展到新的空间中。现在查看一下硬盘使用情况,OK了。无论是用 Disks 程序还是 df -lh 命令,都可以看到主分区有7G多了。
上述操作的原理是:首先删除了linux主分区和空白,重建的主分区起始Sector位置与原主分区一致,再resize2fs,则原主分区数据完全没变,但改变了主分区的大小。
至此,香蕉派的分区合并就完成了,衣服自己洗很是高兴,希望对手头上有树莓派/香蕉派的同学有帮助。