我正在尝试将 vagrant box 上的存储空间从 18 GB 增加到 50 GB。vagrant box 运行的是 Ubuntu,主机是 Windows 10。这个论坛上有类似的问题,用于扩展在 Mac 或 Ubuntu 主机上运行的 VM,但我无法为 Windows 主机提供此类信息。我按照这博客文章,其中涉及 1)使用 clonehd 将机器的 .vmdk 文件转换为 .vmi 文件,2)使用 modifiedhd 调整磁盘大小 3)将其转换回 .vmdk 文件 4)将新磁盘连接到虚拟机。
完成这些步骤后,VM Virtualbox Manager 显示磁盘具有 50 GB 的“虚拟”存储空间和 18 GB 的“实际”存储空间,这个图片显示。运行“df -h”显示完全相同结果与之前一样,我按照步骤扩展了存储空间(“/” 中的 18 GB)。
据我所知,虚拟存储意味着存储空间应该随着数据的增加而扩大。但就我而言,当我尝试向虚拟磁盘添加超过 18 GB 的数据时,它会抛出“空间不足”错误。我还能做些什么来将实际存储设置为 50 GB?我知道这可能涉及扩展 Windows 主机上的分区,但我该怎么做呢?
答案1
从 HOST 和 Vagrant 的角度来看你做得对,但现在你需要调整客户操作系统内的磁盘文件系统的大小,在本例中是 Ubuntu 根/分区。
默认情况下使用 ext4 文件系统,但要检查,请运行命令
$ mount
...
/dev/sda1 on / type ext4 (rw)
...
然后运行命令将 Ext4 文件系统调整为其最大大小(选择匹配的设备,例如 sda1 或其他您拥有的设备):
$ sudo resize2fs /dev/sda1
然后运行命令:
df -h
并查看磁盘可用空间量。
如果你在安装过程中使用了 LVM
检查物理卷的大小和可用空间:
pvs
它将显示类似
PV VG Fmt Attr PSize PFree
/dev/sda vg-root lvm2 a-- 7.27t 1.08t
在这种情况下,我们知道 LVM 卷已被使用,第二个数字是可用量。如果 PFree 为零,请检查磁盘布局,可能需要先调整磁盘分区大小:
sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
如果 PSize 不符合您的预期,第一步您需要将物理卷调整为其最大大小:
pvresize /dev/sda
然后使用命令列出卷:
lvs
您应该从列表中选择根卷的名称,在本例中是/dev/mapper/vagrant--vg-root
执行 LV 调整大小命令:
lvresize -rl +100%FREE /dev/mapper/vagrant--vg-root
该-r
开关应该告诉 LVM 自动调整底层文件系统的大小。