调整虚拟磁盘大小并不一定会导致磁盘文件增大。

调整虚拟磁盘大小并不一定会导致磁盘文件增大。

继续无法调整 VirtualBox 卷的大小 我使用以下命令来增加虚拟机(Ubuntu)中的可用空间:

VBoxManage.exe clonehd "c:\users\a_b\VirtualBox VMs\MyBox_default_1510839571239_2193\Box1.vmdk" "C:\Users\a_b\VirtualBox VMs\MyBox_default_1510839571239_2193\clone.vdi" --format vdi

VBoxManage.exe modifyhd "c:\users\a_b\VirtualBox VMs\MyBox_default_1510839571239_2193\clone.vdi" --resize 102400

VBoxManage.exe clonehd "c:\users\a_b\VirtualBox VMs\MyBox_default_1510839571239_2193\clone.vdi" "C:\Users\a_b\VirtualBox VMs\MyBox_default_1510839571239_2193\Box2.vmdk" --format vmdk

过程中没有输出任何错误。但是,clone.vdi 和 Box2.vmdk 文件的大小都没有增加到 100GB(这应该是我第一次意识到有什么不对劲)。

我用 Box2.vmdk 替换了 Box1.vmdk,作为使用 VirtualBox GUI 的 VM 访问的存储。

当我通过 Vagrant 激活并进入虚拟机时,我使用以下方法检查了它的大小

df 

并发现虚拟机的可用空间并没有增加。

事实上,两个虚拟机可用的大小(“调整大小”之前和之后)是相似的:

方框1:

/dev/mapper/vagrant--vg-root  39625324  13644568  23944840  37% /

框2:

/dev/mapper/vagrant--vg-root  39625324  13644564  23944844  37% /

我应该如何实际调整虚拟机的大小?如果由于分区需要调整大小而导致空间不可用,我应该如何调整其大小?

使用

sudo resize2fs /dev/mapper/vagrant--vg-root

就像建议的那样https://askubuntu.com/questions/390769/how-do-i-resize-partitions-using-command-line-without-using-a-gui-on-a-server

仅产生

resize2fs 1.42.13 (17-May-2015)
The filesystem is already 498688 (1k) blocks long.  Nothing to do!

sudo resize2fs /dev/sda1

收益

    resize2fs 1.42.13 (17-May-2015)
The filesystem is already 498688 (1k) blocks long.  Nothing to do!

尺寸没有变化(从使用中可以看出df

答案1

你的思路中存在一些误解,可能是由多层抽象引起的。

调整虚拟磁盘大小并不一定会导致磁盘文件增大。

默认情况下,虚拟磁盘是稀疏的,即磁盘文件实际上不占用虚拟磁盘上未占用的空间。这就是为什么增加虚拟磁盘根本不会影响文件大小的原因——它只会改变表示磁盘大小的数字。

调整虚拟磁盘的大小不会以任何方式改变其内容。

磁盘内容中的第一层抽象是分区表。调整硬盘大小的命令并不关心它。它将磁盘视为一系列字节,甚至不知道分区表是什么。

调整磁盘大小后,您必须找到一个能够理解分区表并调整适当分区大小的工具。

resize2fs不调整分区大小。

还有一层抽象 - 位于分区上的文件系统 (FS)。对于所有合理的应用程序,其大小应与分区大小匹配,但也可以更小。但是,额外的空间将被浪费,因为您无法将文件存储在 FS 之外。

它的作用resize2fs是调整文件系统的大小。当不带任何额外参数运行时,它会调整文件系统大小以使用其所在的整个设备。

resize2fs也不知道分区是什么。正如我所说,它对设备进行操作,即已知长度的字节序列。分区是一种设备,但硬盘也是。resize2fs不关心。它只适用于文件系统,不适用于分区。

增加虚拟机可用磁盘空间的步骤

  1. 增大虚拟硬盘。
  2. 扩大适当的分区。
  3. 调整文件系统大小。

您执行了 #1 并尝试了 #3,但忘记了 #2,因此 #3 没有任何作用。#2 可以使用fdisk(对于 MBR 分区方案)或 `gdisk(对于 GPT 分区方案)来完成。如果您可以使用带图形界面的工具,我强烈建议您使用 GParted,它适用于两种分区方案,并且可以同时执行 #2 和 #3。

相关内容