1 宿主系统增加容量

来到 Unraid 的 VMS 管理页面,点击虚拟机的名称,会弹出虚拟机下的磁盘设备:

其中,以 .img 结尾的文件就代表了虚拟机的磁盘。我们停止虚拟机后,这个 .img 文件后面的 CAPACITY 列会变得成蓝色链接样式,点击可以进行编辑。注意这里只能增加容量,而不能减少容量。编辑完成之后回车保存,然后就完成了虚拟机的容量调整。

但是这只是万里长征的第一步。因为磁盘调整目前并不直接带来虚拟机内的操作系统的实际使用的磁盘大小的增加,我们还需要进入虚拟机内部操作。这里我提供了 Ubuntu 下的调整方法。

2 Ubuntu 内容量扩充

这里我们面向操作,不介绍原理,需要了解初步的原理,可以参考这个文章:Ubuntu: Extending a virtualized disk when using LVM

注意一下命令大多数都需要 sudo 权限。

2.1 初始状态

假设初始状态下虚拟机的容量是 24GB,我们已经通过前面的步骤为虚拟机额外增加了 6GB空间,使得总容量增加到 30GB。

在虚拟机内运行 df 命令,此时我们看到的是:

可以看到 df 显示的实际使用空间只有24GB左右,但是 fdisk 告诉我们,实际磁盘的大小已经是 32GB 了。

然后我们使用 vgs 命令查看卷(volume)组信息:

可以看到只有一个名为 ubuntu-vg 的卷组,其大小大约是 24 GB。

然后我们分别用 pvs 以及 lvs 命令查看物理卷和逻辑卷的情况:

pvdisplay可以显示更详细的信息
lvdisplay可以显示更详细的信息

注意这里显示的设备名是sda,对应的路径是 /dev/sda,但是在你的操作系统中,这个名称可能不同。在之后的教程中要注意替换。

2.2 创建物理分区

运行 fdisk /dev/sda。然后输入 n 以创建一个新的分区,选择 p,即 primary,然后选择 3 作为分区号。

分区号不可生搬硬套,要选择和已有分区号不同的。

接下来需要选择分区起始的 Sector,这里我们已经使用的分区的结束为止是 50329599,那么我们需要紧接着这之后创建新的分区,所以新建分区的开始Sector应该是50329600。结束Sector我们使用默认值即可。默认值指向的是磁盘末尾的位置。

然后我们需要确保分区类型是 Linux LVM (注意在新的 Ubuntu 系统上可能被称为 Linux filesystem,这是一样的)。输入命令 t,然后选择之前指定的分区号 3。设置 8e 作为分区类型。

完成之后输入 p 查看分区信息。

最后输入 w 保存分区信息。然后重启系统

1
init 6

2.3 创建 LVM 物理卷

运行 pvcreate /dev/sda3 来创建 LVM 物理卷,创建完成之后用 pvs 确认:

2.4 扩展 LVM 卷组

运行 vgextend ubuntu-vg /dev/sda3

这里的 ubuntu-vg 是你之前用vgs查看到的卷组名称。

2.5 扩展 LVM 逻辑卷

运行 lvextent -l+100%FREE /dev/ubuntu-vg/root /dev/sda3

最后运行 resize2fs /dev/ubuntu-vg/root

至此就完成了!

3 参考链接