使用Linux云服务器的朋友可能会碰到磁盘分区已满的情况,这时候一般我们会对云服务器的磁盘进行扩容,但是磁盘扩容后,分区并没有扩大,还无法使用扩容的部分,该如何使旧分区原地扩容呢?
提示:需要操作扩容的分区是非系统分区,系统分区无需进行扩容操作,仅需在磁盘扩容重启下系统,分区就会自动占满整个系统盘(CentOS6.x系列系统除外,centos6.x系统分区默认只占有10G)。
举例场景:举例对象 硅云云服务器CVM、数据盘/dev/vdb 已有分区/dev/vdb1 容量约11.5GB,该分区已挂载到了/www目录,并且有数据,因为后期升级磁盘到了21.5GB,现在相对分区进行扩容,但不想影响分区内的数据。以下方法是可行的,不会影响原数据,但如果操作不慎,可能会导致数据丢失,所以操作要谨慎点(最好自行做好备份)。
1. 命令 df -h 查看现有分区挂载信息,可以看到 /dev/vdb1 已挂载/www 大概 11GB
命令 fdisk -l 查看已有磁盘分区情况,如下图,我们可以看到/dev/vdb1分区,记住开始位置(start),这里为2048 sectors。
使用命令 parted -l 查看分区的容量情况,可以看到分区/dev/vdb1容量为11.2GB,而整块磁盘是21.5GB。
2、卸载磁盘,命令如下
cd / 进入根目录
umount /dev/vdb1 开始卸载与/dev/vdb1的挂载关系
df -h 检查分区挂载目录的情况,可以看到/dev/vdb1 已经不存在挂载。
3、删除就分区,并新建一个分区
fdisk /dev/vdb
d 删除原有分区(如有多个分区,还多一步选择分区号的输入项)
n 新建分区
p 主分区
1 新分区号
2048 (默认回车即可)这个是跟之前分区的开始位置保持一致。
41943039 (如果想把剩余容量全部分配完,默认回车即可)注意:这是磁盘结束位置,这个得根据自己磁盘容量情况来写,不输入而直接默认回车表示将剩余容量全部分配到分区中。
w 保存变更
4、命令 fdisk -l 查看分区后的情况
命令 e2fsck -f /dev/vdb1 对新分区进行检测(仅针对ext2/2xt3/ext4文件系统格式,如果分区是xfs文件系统格式,忽略此步骤)
5、 命令 resize2fs /dev/vdb1 对新分区进行扩容更正
注:以上resize2fs 命令仅仅针对 ext2/ext3/ext4 文件格式,如果你的分区文件格式为xfs(比如备份的系统盘就是这种格式),应使用命令 xfs_growfs [磁盘分区名称,如/dev/vdc1] 对新分区进行扩容更正。(如何查看分区的文件系统格式:使用命令 parted -l )。
6、命令 mount -a 重新加载挂载信息
命令 df -h 可以看到分区已挂载到了原来的/www目录,且容量已经扩容了,原有数据没有受到影响。
完~