发现问题
在esxi里开了个linux虚拟机做下载机,空间不够遂在esxi里编辑硬盘大小。编辑完开机在mint自带的disk工具中发现剩余空间仍是原来的大小,但是总容量确实变了,也无法分区调整大小。
故障排查
分别使用fdisk -l
命令和df -Th
命令发现大小不一样,前者是扩容后应该的大小,后者是扩容前的大小。
问题修复
以下全部参考 https://jingine.com/fix-fdisk-df-return-different-disk-partition
事件描述
最近lightsail上VPS的外接硬盘满了,通过备份snapshot新建了一个更大的硬盘,并接到了VPS上,但是依旧提示硬盘已满,通过fdisk -l和df -Th指令检查硬盘大小,发现返回不同的数值。一个是新硬盘的大小,一个是原先硬盘的大小并显示已满。
分析
分析原因应该是因为是通过snapshot来创建新的硬盘,里面是老的硬盘区间信息,所以只使用了老的那部分,剩余的空间并未被使用,需要进行partition。
通俗点讲,当你拿到一块新的硬盘的时候,还是用原先的方式格式化,所以只格式化了原先的部分,剩余部分为空白区间,没有被使用和识别,你可以重新在这个区间创建一个新的硬盘,比如D盘,也可以对原先的分区进行扩容,以使用全部空间的目的。
解决方法
注意:我的挂载地址是:/dev/sda3,请根据自己情况修改。以下操作不会损坏数据,但是建议操作前备份。
umount /dev/sda3
fsck -n /dev/sda3 //检查硬盘,输出应该是:/dev/sda3: clean, <SOMESIZE>>
tune2fs -O ^has_journal /dev/sda3 //删除journal
e2fsck -f /dev/sda3
resize2fs /dev/sda3 //重新partition
fsck -n /dev/sda3 //检查是否已经扩容
tune2fs -j /dev/sda3 // 加上journal
reboot or mount /dev/sda3