阿里云ECS云服务器磁盘如果不够用了,可以额外买一块磁盘挂载,也可以直接在系统盘扩容,这两者是有区别的。购买阿里云服务器时默认给一款系统盘 40G,如果你选择了扩容到500G,完成后还是只有一块磁盘;而假如你额外购买了数据盘,那么现在你就有两款磁盘了(一块系统盘,一块数据盘)。今天的案例来讲解的是直接在系统盘上扩容的详细操作过程。
相关文章:BT-Panel Linux 自动磁盘挂载工具 自动将分区挂载到/www 目录
老魏之前操作的都是额外买数据盘挂载,今天一位用户@HGFF 告知宝塔面板显示磁盘已用空间36G(一共40G系统盘),而且网站文章快要达到上万条了,所以一定要扩容磁盘。
一、购买扩容磁盘
在开始对服务器的折腾之前,老魏提醒大家一定、一定、一定要提前备份网站数据。在这里老魏选择了阿里云快照功能,等待了一会就显示完成了(时间长短看你数据多少)。然后我才敢继续下面的折腾之旅。
点我进入阿里云控制台的【云服务器】中左侧列表栏,选择【存储于快照】【云盘】,查看要扩容的磁盘大小为 40G,在右侧找到【更多】【磁盘扩容】。

之后选择要扩容到 500G(之前40G,之后500G),如果此时你的服务器是开启状态,那么就勾选【在线扩容】(因为用户的业务不能停止,所以老魏选择了在线扩容),点击【确定扩容】付款后就购买成功了。
二、扩容磁盘
1、官方文档
买了500G之后还没有结束整个工作,扩容到500G容量不假,扩容后云盘容量立即生效(在阿里云控制台磁盘查询也是500G),但是还需要手工分配一下才行。还要执行分区扩容和文件系统扩展操作。
打个比方,你买了一块硬盘1TB,只分了一个区 C盘。后来你扩容到2TB代表磁盘容量,但是C盘容量还是没改变,下面还要通过命令把 2TB都划给 C盘。这就是 linux系统的磁盘逻辑规则。
感兴趣的可以去查看阿里云官方文档 在线扩容云盘与扩展分区和文件系统_Linux系统盘的详细描述。或者看下面老魏的简单操作。
2、查找操作系统版本
在阿里云控制台找到你当前使用操作系统版本。具体位置在【云服务器】【实例与镜像】【实例】在已经扩容的服务器列表最右侧点击【管理】,在页面中看到【实例详情】,右侧【基本信息】中的【镜像ID】显示的就是你当前使用的操作系统。不同操作系统的扩容磁盘命令是不同的,哪怕 CentOS7 和 6 也不同。要先确认系统后在上面官方文档中查找对应的命令。
3、扩容磁盘
老魏这里是 CentOS7.06,使用 SSH 登录服务器(有宝塔面板可以用SSH终端),开始输入命令:
fdisk -l
看到磁盘容量是 500G。
接着输入命令:
df-h
看到磁盘扩展分区大小是 40G。

为了记录操作过程备用,老魏贴出上图命令结果如下:
[root@iZfl9nked018Z ~]# fdisk -l Disk /dev/vda: 536.9 GB, 536870912000 bytes, 1048576000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000b2d99 Device Boot Start End Blocks Id System /dev/vda1 * 2048 83875364 41936658+ 83 Linux [root@iZfl9nked018Z ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 16G 22G 43% / devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 44K 3.9G 1% /dev/shm tmpfs 3.9G 532K 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup tmpfs 783M 0 783M 0% /run/user/0
再输入命令:
growpart /dev/vda 1
意思是给磁盘第一分区扩容。要注意数字 1 前面是有空格的。
最后输入命令:
resize2fs /dev/vda1
意思是调用resize2fs扩容文件系统,目标是磁盘第一个分区。要注意这次数字 1 前面无空格。
再次执行 df -h 命令检查扩容结果,目前只有一个系统盘,容量为 493G,说明操作成功了。

同样贴出上图的命令操作结果如下:
[root@iZfl9nked018Z ~]# growpart /dev/vda 1 CHANGED: partition=1 start=2048 old: size=83873317 end=83875365 new: size=1048560502,end=1048562550 [root@iZfl9nked018Z ~]# resize2fs /dev/vda1 resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/vda1 is mounted on /; on-line resizing required old_desc_blocks = 3, new_desc_blocks = 32 The filesystem on /dev/vda1 is now 131070062 blocks long. [root@iZfl9nked018Z ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 493G 16G 456G 4% / devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 44K 3.9G 1% /dev/shm tmpfs 3.9G 532K 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup tmpfs 783M 0 783M 0% /run/user/0
这时候去宝塔面板检查磁盘也显示为 493G,网站打开正常,退出SSH 就算是结束收工了。
对于新手来说看到命令行很蒙圈,其实上面的扩容命令只有 2条(growpart和resize2fs),其他都是检查磁盘和分区容量的。
以后再遇到这种情况我就知道了,给系统盘扩容的过程和详细操作是这样子的。