随着业务的逐渐扩展,我们以往所购买的 VPS 配置终将迎来需要扩容的一天。不过众所周知内存和 CPU 只需要关机再启动即可升级完毕,但硬盘却是不会自动扩容的。本文将介绍 Linux 下硬盘无损扩容的一种方案,避免了重装或是数据迁移的麻烦。
一如既往的,教程基于 Debian 系统。所需软件只有一个:MobaXterm ,在官网下载免费版即可。我们会使用它来远程运行图形化分区程序。虽然命令行的优点很多,但分区软件还是图形化比较直观。
当然,如果机器上并没有什么数据的话,直接重装要方便得多。
1.安装运行GParted
GParted 是一款带有图形界面的硬盘分区软件,没什么费事的直接从软件源安装即可:
apt install --no-install-recommends gparted
安装完成后直接运行:gparted
,或者也可以手动指定硬盘:gparted /dev/sda
。由于是远程运行的缘故,本地的图形界面响应可能比较慢,属于正常现象。
2.扩容逻辑分区
待 GParted 加载完硬盘分区后,根据系统安装时的不同,你可能会看到一块主分区,一块扩展分区和一块空闲空间。但也有可能会看到两块主分区,不过这种情况较为简单,只需要直接选中后进行移动即可,这里便不再额外额外进行说明。
下面我们的教程都是基于一块主分区,一块扩展分区(其中包含 SWAP )和一块空闲空间的情形。这种情况相对复杂,并不能直接移动 SWAP 分区来达到扩容数据分区的目的。
以上图为例,原有的磁盘分区为一块 49GB 的数据分区,一块 975MB 的扩展分区,以及新扩容的 50GB 空闲空间。保险起见首先将 SWAP 分区卸载,选中 /dev/sda5
后,在菜单中点选:Partition - Swapoff
。
现在我们开始扩容扩展分区,首先点击选中 /dev/sda2
,在菜单中点选:Partition - Resize/Move
。在随后的弹出窗口中,将 New size 增加至最大值,点击 Resize/Move
,最后回到主页面点击对勾图标保存更改。
3.移动 SWAP
接下来我们便可以移动 SWAP 分区了,在选中 /dev/sda5
后,点选菜单:Partition - Resize/Move
。此时可以直接使用鼠标将 SWAP 拖动至最右侧,也可以将 Free space preceding 增至最大来移动分区,如上图所示。
同样的,修改后点击 Resize/Move
,最后回到主页面点击对勾图标保存更改。
4.压缩扩展分区
在移动好 SWAP 分区后,外层的扩展分区依然占用着大量的空闲空间。这并不是我们想要的,所以接下来对扩展分区进行裁剪。在选中 /dev/sda2
后,点选菜单:Partition - Resize/Move
。在弹出窗口中,使用鼠标将分区减至最小,或将 Free space preceding 增至最大,并调整选项 Align to: None
。
如上图所示,修改后点击 Resize/Move
,最后回到主页面点击对勾图标保存更改。
5.扩容数据分区
做完了所有的准备工作,接下来这一步是最简单的了。在选中 /dev/sda1 后,点选菜单:Partition - Resize/Move
。按照与之前同样的操作方法,将数据分区扩容至最大,并保存应用即可。
最后也别忘了选中 /dev/sda5
,点选菜单:Partition - Swapon
来恢复 SWAP 分区。