【问题标题】:VirtualBox: extend partitionVirtualBox:扩展分区
【发布时间】:2011-12-29 18:35:37
【问题描述】:

我有安装了centos-5.6的virtualbox-4.1.0。现在我想扩展我之前分配用于虚拟机安装的VM映像,它是8Gb,现在还不够。有没有办法在不丢失信息的情况下扩展分区?

实际上,在 centos 中,我有一个根 fs 和我的主目录等,所以这个分区最终需要调整大小。

提前感谢您的建议!

【问题讨论】:

    标签: virtual-machine virtualbox


    【解决方案1】:

    可以分4步完成:

    1. 使用 VBoxManage 工具将您的 VMDK 克隆为 VDI 格式。
    2. 使用 VBoxManage 工具调整磁盘大小以创建可用空间。
    3. 修改文件系统以使用 GParted 为您的驱动器分配可用空间。
    4. 将创建的磁盘空间添加到 Linux 文件系统。

    详细步骤如下(用“Virtual Machine CentOS 6.4”和“VirtualBox 4.2.18”测试);

    1. 观察virtualbox文件的磁盘格式,如果不是*.vdi,则将磁盘格式从*.wmdk转换为*.vdi。打开windows终端:
      $ VBoxManage clonehd --format VDI "path_of_wmdk_file" "path_of_vdi_file"

    2. 调整 vdi 文件的磁盘大小。打开windows终端。例如做磁盘大小 ~500 GB => 512000;
      $ VBoxManage modifymedium "path_of_vdi_file" --resize 512000

    3. 选择 *.vdi 文件而不是 *.wmdk 文件作为磁盘
      Virtual Machine -> Settings -> Storage -> Controller : SATA (Right Click on *.wmdk file) -> Remove Attachment -> Add HardDisk and choose newly created *.vdi file

    4. http://gparted.sourceforge.net/download.php 下载“gparted-live-x.xx.x-x-ixxx.iso”文件。将此 iso 文件挂载为 CD。
      Virtual Machine -> Settings -> Storage -> Controller IDE (Right Click) -> Add CD/DVD -> Select gparted-live-x.xx.x-x-ixxx.iso file

    5. 运行虚拟机,虚拟机将从这张 CD 启动。按“Enter”、“Enter”...选择默认值,直到 Gpart ISO GUI 启动。选择工具gpart程序并启动。

    6. 如下扩展磁盘大小;

      • 右键单击分区,如果“可能”单击“禁用活动分区”。
      • 尽可能从 GUI 扩展分区(本例为 500GB)。
      • 右键单击已禁用的分区,然后选择“启用活动分区”。
      • 申请并等待操作完成。
      • 关闭虚拟机。
      • 卸载 gparted-live-x.xx.x-x-ixxx.iso。
        Virtual Machine -> Settings -> Storage-> Controller IDE (Right Click on gparted-live-x.xx.x-x-ixxx.iso) -> Remove Attachement
      • 启动虚拟机。

    7. 打开 linux 终端并以 root 身份登录。运行以下命令;

    lvm vgdisplay => 免费 PE / 大小 122880 / 480.00 GiB lvm lvdisplay /dev/VolGroup/lv_root => 当前 LE 3978
    • 计算上述值的总和。在这种情况下:122880 + 3978 = 126858
    lvm lvresize -l 126858 /dev/VolGroup/lv_root resize2fs /dev/VolGroup/lv_root lsblk ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++ 名称 MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 只读存储器 sda 8:0 0 500G 0 磁盘 +¦sda1 8:1 0 500M 0 部分 /boot L¦sda2 8:2 0 499.5G 0 部分 +¦VolGroup-lv_root (dm-0) 253:0 0 480G 0 lvm / L¦VolGroup-lv_swap (dm-1) 253:1 0 4G 0 lvm [SWAP] ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++
    • 通过创建大文件检查文件系统是否扩展:
    fallocate -l 480G /test_file
    • 当然要删除测试文件:
    rm -rif /test_file

    【讨论】:

    • 谢谢,在 Kubuntu 14.04 主机上使用 CentOS 6.6 对我来说效果很好。三个注意事项: VBoxManage 对我来说是小写的; --resize 是总大小,而不是增加(在您的情况下,总大小约为 500 GB);我没有看到任何“禁用活动分区”菜单,所以我没有使用 gparted 禁用或激活分区,它似乎工作正常。
    • 谢谢。对我有用,但我需要用 xfs_growfs 替换 resize2fs,因为我的分区使用 xfs 文件系统。
    • gparted 不适用于 CentOS7 及更高版本。这是一个完整的解决方案:unix.stackexchange.com/a/659099/352647
    【解决方案2】:

    我正在使用 CentOS7 虚拟机,最后我扩大了我的分区 /dev/mapper/centos-root - gparted 对我不起作用,因为我在 CentOS7 虚拟机上没有桌面。

    1. 关闭您的 CentOS 虚拟机
    2. 进入 *.vdi 映像的目录。如果您不知道它在哪里,请查看您的 Virtualbox Manager GUI virtualbox -> settings -> storage -> *.vdi -> location,例如我的位于~/VirtualBox VMs/CentOS7/CentOS.vdi
    3. 备份您的图像以防万一出现问题

      $ cp CentOS7.vdi CentOS7.backup.vdi

    4. 调整您的虚拟存储大小,例如200 GB

      $ VBoxManage modifyhd CentOS7.vdi --resize 204800

    5. 打开你的 CentOS 虚拟机,发出

      $ sudo fdisk -l

       Device Boot      Start         End      Blocks   Id  System
        /dev/sda1   *        2048     1026047      512000   83  Linux
        /dev/sda2         1026048   209715199   104344576   8e  Linux LVM
    
    1. 使用 fdisk 工具删除/创建分区

      $ sudo fdisk /dev/sda

    2. 您处于 fdisk 实用程序交互模式下,发出以下命令:(大多只是遵循默认建议)

      d - 删除一个分区

      2 - 选择要删除的分区(这里是/dev/sda2)

      n - 创建一个新分区

      p - 将其设为主分区

      2 - 使其与我们删除的分区号相同

      <return> - 设置起始块(默认)

      <return> - 设置结束块(默认)

      w - 写入分区并离开fdisk交互模式

    3. 重启你的 CentOS 机器

      $ sudo reboot

    4. 调整物理卷的大小并验证新的大小

      $ sudo pvresize /dev/sda2

      $ sudo pvscan

    5. 看看你的逻辑映射卷,看看你想放大哪个卷,在我的例子中,/dev/mapper/centos-root

    6. 通过添加-r选项来调整文件系统的大小,它会帮你调整大小

      $lvextend -r -l +100%FREE /dev/mapper/centos-root

    7. 调整文件系统大小:

      $resize2fs /dev/mapper/fedora-root

      对于 CentOS 7:$xfs_growfs /dev/mapper/fedora-root

    8. 最后检查:

      $df -h

    参考:https://blog.jyore.com/2013/06/virtualbox-increase-size-of-rhelfedoracentosscientificos-guest-file-system/#comment-2879

    【讨论】:

    • 这很有魅力。一点点:带有快照树的虚拟机无法调整大小,但您可以从快照中克隆虚拟机,然后按照本指南进行操作!
    • 这完全有效!让我感到困惑的部分是删除分区 - 显然这不会删除分区上的数据。生活和学习。
    【解决方案3】:

    我在下面的链接中找到了这个金块。我的工作非常适合我,只用了 5 秒。

    从 VirtualBox 4 开始,它们增加了对扩展的支持。

    VBoxManage modifyhd filename.vdi --resize 46080
    

    这会将虚拟磁盘映像的大小调整为 45GB。

    https://superuser.com/questions/172651/increasing-disk-space-on-virtualbox

    【讨论】:

    • 如果您使用的是 snapshosts,如何调整大小?现在我有一个快照附加到我的硬盘上。我不认为是以同样的方式完成的。
    【解决方案4】:

    这可以通过 3 个步骤完成:

    • 使用 VBoxManage 将您的 VMDK 克隆为 VDI 格式
    • 使用 VBoxManage 调整磁盘大小以创建可用空间
    • 使用 GParted 修改文件系统以将可用空间分配给您的驱动器

    不要忘记最后一部分,否则,您将有未分配的可用空间,并且您的磁盘仍将显示为已满。

    我在这里写了一个教程给resize your VM Disk

    【讨论】:

    • 非常重要的是强调为了扩展*.vdi磁盘,还需要在内部修改分区(第三步) .您的教程非常有用,尽管有时只创建一个共享文件夹并让 simlink 指向它并不那么麻烦:)
    • 是的,但这可能不是同一个需求。假设您需要通过 apt(或其他方式)安装一些软件包,它们将安装在“/”上,而不是您放置数据/网站/应用程序的共享文件夹。
    • 我找到了how to do the first two steps,但是没有关于如何做最后一个的明确文档
    【解决方案5】:

    在某些时候,VBoxManage 实用程序稍微改变了语法。值得注意的是,这并不适用于所有 vm 类型,因此如果您有 *.vmdk,请小心。将 HD 更改为 40GB 的示例命令是:

    $ VBoxManage modifyhd MyVirtualImage --resize 40960
    

    作为参考,我使用的是 VirtualBox 4.2.1,Mac 10.8.2

    【讨论】:

      【解决方案6】:

      来自VirtualBox FAQ

      您必须将数据从已有的 VDI 克隆到一个新的、更大的 VDI 并扩展分区。您可以使用 CloneZilla 之类的工具将虚拟硬盘克隆到更大的硬盘,并使用 Gparted 来增加分区大小。另一种方法是通过 mpack 使用 CloneVDI 并克隆更大尺寸的 VDI,然后使用 Gparted 调整分区大小。

      从 4.0.0 开始,您可以使用 VBoxManage modifyhd --resize 来调整 VDI 的最大大小。你只能让它变大。之后,使用 Gparted 增加 VDI 内的分区大小。

      或者,您可以附加另一个 VDI 并将您的 /home 挂载到那里。

      【讨论】:

        【解决方案7】:

        在 Oracle VirtualBox 论坛上搜索 CloneVDI 工具。它对我有用,对于任何在命令行紧张的人来说,它都是一个更简单的基于 GUI 的程序。还允许从 VBoxManage.exe 不支持的固定模式转换为动态模式(目前)。

        https://forums.virtualbox.org/viewtopic.php?f=6&t=22422

        【讨论】:

          【解决方案8】:

          我花了很长时间在谷歌上搜索,终于让它为我工作了。 (在我找到这个之前)我想要一个地方来保存我的工作

          使用 vboxmanage 为磁盘映像添加空间

          使用 gparted 调整大小以便使用所有空间

          使用 blivet-gui 创建一个新卷:

          以下是我从 fedora 终端复制的命令:

          dnf install blivet-gui  
          blivet-gui  
          lvremove /dev/mapper/fedora00-00  
          lvextend -l +100%FREE /dev/mapper/fedora00-root
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-11-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-08-30
            相关资源
            最近更新 更多