为虚拟机中的 Ubuntu 20.04 扩容磁盘

群晖虚拟机(Synology Virtual Machine Manager (VMM))中有一台 Ubuntu 只有 15GB 空间,但却承担着非常繁重的任务,比如路由转发、测速、编译等功能,实在是不够用。

于是准备扩容,但这个活不太熟练,就找了找教程,发现居然很多篇都不合适,直到…这个: ubuntu 主分区扩容

所以我觉得有必要记录一下,基本上和里面说的一样,就是先关闭 swap 分区,然后依次删除 swap、扩展、主分区,再重建,保存,resize 就可以了。

直接抄一下吧。

fdisk 打开磁盘

使用命令:fdisk /dev/sda 打开硬盘 /dev/sda,然后输入子命令 p,可以看到对应的硬盘信息,如第二张图中所示,可以看到这块硬盘分为3个部分,分别是:

  1. /dev/sda1,挂载的是我们的ubuntu系统根目录
  2. /dev/sda2,扩展分区
  3. /dev/sda5,交换分区

Vmware Ubuntu虚拟机磁盘扩容方法Vmware Ubuntu虚拟机磁盘扩容方法

关闭 swap

输入命令:swapoff /dev/sda5 来关闭交换分区

Vmware Ubuntu虚拟机磁盘扩容方法

删除原有分区

【注意备份数据】

fdisk /dev/sda

使用 d 命令依次删除这3个分区。如下所示:

Vmware Ubuntu虚拟机磁盘扩容方法

重建主分区

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 类型分区。如下面第二张图中所示。

Vmware Ubuntu虚拟机磁盘扩容方法

设置启动分区

输入 p 命令查看一下分区信息,如下所示,和编辑之前唯一的区别就是根分区从18G变成了28G,其他没有任何变化。确认无误后,输入命令 a,然后输入分区编号 1,将分区1设置为启动分区。如下面第二张图中所示,最后输入 w 命令保存配置。这个时候会提示 Deivce or resource are busy,是因为原来的根目录还在挂载中,但是没有影响。

Vmware Ubuntu虚拟机磁盘扩容方法Vmware Ubuntu虚拟机磁盘扩容方法

重启

reboot 重启操作系统,耐心等待系统重启,可能会花费比平时启动更多的时间,等待即可。

调整大小

重启完成后,执行命令:resize2fs /dev/sda1 命令,然后使用 df -h 查看硬盘挂载信息,这个时候看到的已经是28G的根目录了,没有任何错误,完美的将虚拟机硬盘扩大了。

Vmware Ubuntu虚拟机磁盘扩容方法Vmware Ubuntu虚拟机磁盘扩容方法

激活 SWAP 分区

$swapon -a
$mkswap -c /dev/sda5
$swapon -v /dev/sda5
$swapon -s
$free -m 

查看到 swap 就没问题了。

3 个赞

传说中的one boom, all boom?

是的 :sunglasses:

机蛋要放在一个青蛙里
:stuck_out_tongue_winking_eye:

我一般是打开 GParted。。。。点点就完了

1 个赞

既然是虚拟机+虚拟磁盘。。。。要不。。再建个虚拟磁盘挂载上去?
之前自己也遇到过扩容的麻烦,后来再建虚拟机 虚拟磁盘都设800G起步了,反正实际空间还是那么大

有图形化的gparted, 简单多了

然后swap空间不足,再建个swapfile挂上去?

最近遇到类似的情况 不敢扩

大不了重装。