群晖虚拟机(Synology Virtual Machine Manager (VMM))中有一台 Ubuntu 只有 15GB 空间,但却承担着非常繁重的任务,比如路由转发、测速、编译等功能,实在是不够用。
于是准备扩容,但这个活不太熟练,就找了找教程,发现居然很多篇都不合适,直到…这个: ubuntu 主分区扩容。
所以我觉得有必要记录一下,基本上和里面说的一样,就是先关闭 swap 分区,然后依次删除 swap、扩展、主分区,再重建,保存,resize 就可以了。
直接抄一下吧。
fdisk 打开磁盘
使用命令:fdisk /dev/sda
打开硬盘 /dev/sda,然后输入子命令 p
,可以看到对应的硬盘信息,如第二张图中所示,可以看到这块硬盘分为3个部分,分别是:
- /dev/sda1,挂载的是我们的ubuntu系统根目录
- /dev/sda2,扩展分区
- /dev/sda5,交换分区
关闭 swap
输入命令:swapoff /dev/sda5 来关闭交换分区
删除原有分区
【注意备份数据】
fdisk /dev/sda
使用 d 命令依次删除这3个分区。如下所示:
重建主分区
3个分区都删除完成后,我们来创建新分区。
命令依次是: n p 回车 +28G
然后28G的根分区创建完毕,如下所示:
注意这里使用你想要的空间,比如 50G 磁盘,想分 48G 给主分区就写 +48G
另外这里可能会提示:
Partition #1 contains a ext4 signature.
选 NO 不要删除签名。
创建扩展 & 交换分区
n e 回车 回车
,将剩下的2G空间创建为了扩展分区。
命令依次是:n 回车 回车 回车
逻辑分区创建完毕,这个时候逻辑分区格式是linux,还不是想要的swap分区,需要修改它的分区标志。输入命令 t
,然后选择分区5
,输入分区编号82
,就将 /dev/sda5 从 linux 格式分区修改为 swap 类型分区。如下面第二张图中所示。

设置启动分区
输入 p
命令查看一下分区信息,如下所示,和编辑之前唯一的区别就是根分区从18G变成了28G,其他没有任何变化。确认无误后,输入命令 a
,然后输入分区编号 1
,将分区1设置为启动分区。如下面第二张图中所示,最后输入 w
命令保存配置。这个时候会提示 Deivce or resource are busy,是因为原来的根目录还在挂载中,但是没有影响。
重启
reboot
重启操作系统,耐心等待系统重启,可能会花费比平时启动更多的时间,等待即可。
调整大小
重启完成后,执行命令:resize2fs /dev/sda1
命令,然后使用 df -h
查看硬盘挂载信息,这个时候看到的已经是28G的根目录了,没有任何错误,完美的将虚拟机硬盘扩大了。
激活 SWAP 分区
$swapon -a
$mkswap -c /dev/sda5
$swapon -v /dev/sda5
$swapon -s
$free -m
查看到 swap 就没问题了。