vmware虚拟机 ubuntu根目录磁盘扩容

本以为磁盘扩容是个简单的事儿,结果却折腾一个多小时。。搜索引擎的结果各种不靠谱

错误详情

GPT PMBR size mismatch (104857599 != 629145599) will be corrected by w(rite).

1. 先在虚拟机软件上进行常规的扩容操作

虚拟机执行扩容

服务器关机后,粗暴的先直接扩容完事

2. 使用fdisk进行分区修改扩容

废话开篇:

在虚拟机操作完扩容后,重启服务器使用fdisk后便出现错误

fdisk -l

.....
GPT PMBR size mismatch (1439776 != 30031871) will be corrected by write.

这个错误其实可以不用管,大致是gpt分区末尾不在磁盘的末尾的意思(因为扩容了)

然后当时我纠结于此,很多的搜索结果都是用parted -l 修复分区表错误,然而我试了没有效果,并没有Fix/Ignore?问我是否修复

这之后尝试了各种工具gparted gdisk等因为不会用全都不了了之。其中有教程关于gparted的图形化软件,可以像 win的diskgenius一样直接操作,可惜我是服务器版,没有图形桌面,命令行的gparted又完全不会用。。。

后来看到百度经验的一篇帖子,大致浏览后就是把之前分区都删了,然后建立新分区扩容

当时我还嗤之以鼻,这不会把数据弄没吗?我要扩容根目录又不是空白磁盘,而且看他的操作中没有和我一样的错误,就没在关心了

之后在搜索结果的时候无意中发现这样一句话

修改分区表不会删除分区内实际的数据

突然感觉有点意思,给虚拟机拍了个快照,开始操作

操作

fidsk /dev/sda          # 进入目标磁盘

看到以下红色错误,无视

GPT PMBR size mismatch (*** != ***) will be corrected by write.

查看分区表

Command (m for help): p

Device     Start      End  Sectors Size Type
/dev/sda1   2048     4095     2048   1M BIOS boot
/dev/sda2   4096 83886046 83881951  40G Linux filesystem

删除根目录分区

磁盘的扇区都是连续的,扩容后新增加的扇区在末尾增加,如果你想扩容的分区后面还有其他AB分区,那只能同时删掉AB等分区。
将要扩容的分区调大后,在末尾空余一定的空间用来建立AB分区。当然如果AB分区之前有文件的话一定会丢失,先拷贝出来,然后放到新建的AB分区就好

删除根目录分区

Command (m for help): d
Partition number (1,2, default 2):2 

重新建立根目录分区

Command (m for help): n
Partition number (3-128, default *): 分区编号 
First sector (**-**): 起始柱面号 一定要与之前相同
Last sector, +sectors or +size{K,M,G,T,P} (**-**, default *): 结束柱面号 或者 按容量分配:+40g 

放心保存,会有红色错误不用管

Command (m for help): w

此时用 fdisk 再次进入硬盘已经看不到之前的红色错误了。重启服务器

3. 使扩容后的分区容量生效

重启后容量依然没变,执行以下命令

 resize2fs /dev/sda2

然后df查看一下挂载容量,已经扩容成功了

总结

此方法适用于没有其他包含数据的分区,需要备份数据很麻烦。
受限于win上一直使用diskgenius的缘故,以及方便的调整分区自动转移文件,对于Linux的命令行束手无策了

此次额外理解部分:
分区表与分区内数据的关系

转载请注明 Saopanda和简书链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。