环境及需求介绍:
环境介绍:当前云服务器上有一块挂载的云硬盘,其大小为20G,里面有一个分区,并且还有数据
#环境分析:原磁盘仅一个分区,并且是默认分区,即(创建磁盘分区时 使用fdisk分区时,起始扇区位是2048,结束扇区是默认结束位,原磁盘小于2T,他的磁盘分区格式是MBR)
需求介绍:把vdc这块磁盘扩容到2.5T,不要丢失数据
#需求分析:老磁盘20G,要求扩容后为2.5T,不超过2T,也就是说我们需要将MBR分区表类型转换成GPT分区表
#扩展介绍:linux查看磁盘分区类型
[root@VM_0_6_centos ~]# partprobe -s
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
/dev/vda: msdos partitions 1
/dev/vdb: msdos partitions 1
第一步:扩展云硬盘容量(万事小心为上,扩容前,请建立磁盘快照)
第二步:卸载 /dev/vdc1的挂载,并在云平台上,卸载云硬盘,然后扩容至2.5T,当我在云平台上再次挂载 到云服务器上时,识别符已经由vdc变成了vdd,容量已完成扩容
第三步:使用gdisk工具将扩容后的硬盘由mbr磁盘格式 转换为 gpt磁盘格式
注:这个方法在大部分场景下都是可以转mbr为gpt的,只有磁盘开头前33个扇区,或最后34个扇区被分区占用的场景不支持。
我们的硬盘分区时,默认是从2048扇区开始的,所以一般前34个扇区不会被占用,客户控制台扩容实体云硬盘之后,后33扇区也不存在被占用。
所以绝大多数情况下前34后33分区都不会被占用。除非客户主动刻意去占用。
这里可以通过parted /dev/vdd >> unit s >> p 查看硬盘前34分区有没有被占用。
第四步:扩展分区,先以扇区的形式找到老分区的起始扇区位置,并删除老分区,然后新建分区,新建完成后千万不要格式化哦,我的图上有点小问题,不推荐磁盘容量扇区-1作为END扇区,你可以磁盘容量扇区-40作为END扇区
#可以使用parted一条命令进行新分区的创建
(parted) mkpart primary 2048s 100%
#扩容分区后,分区类型显示为Microsoft basic data,这是因为你的磁盘是GPT类型,这是正常的现象,对您的数据没有影响
您可以参考该文章了解相关介绍:http://www.rodsbooks.com/linux-fs-code/
第五步:挂载新分区到指定目录,查看文件可读性,并更新xfs文件系统