Ubuntu:调整根LVM(2?)分区的大小

我有一个在VirtualBox 2.2.4中运行的Ubuntu虚拟机,并且我在一个太小的8gb虚拟磁盘上创build了它。

所以,我试图增加磁盘的大小。 到目前为止,我已经这样做了:

  1. 创build一个新的更大的虚拟磁盘
  2. 将第二个磁盘添加到机器
  3. 使用CloneZilla将第一个磁盘克隆到第二个磁盘上
  4. 删除了第一个磁盘
  5. 启动第二个(更大的磁盘)

但现在我仍然坚持我的新的100GB虚拟磁盘上的8GB分区

什么是从这里到100gb分区最简单的path? :)我收集GPart可以调整分区大小,但它似乎并不支持LVM2分区,这似乎是我的。

谢谢

  • 亚历克斯

一般来说,以下是如何调整LVM卷的大小:

假设/mountpoint位于/dev/VolGroup00/mountpoint 。 你可以通过检出/etc/fstab或者运行mount -l来find它。

您可能还需要调整实际物理卷的大小,具体取决于您的设置。 使用pvdisplay来查看它是否足够大,如果需要的话使用pvresize (很像下面的lvresize )。

 umount /mountpoint lvresize -L +<HOW MUCH BIGGER> /dev/VolGroup00/mountpoint e2fsck -f /dev/VolGroup00/mountpoint resize2fs /dev/VolGroup00/mountpoint <TOTAL SIZE> mount /mountpoint 

这相当于卸载,调整底层LVM的大小,然后调整实际的ext3分区的大小。

有几件事要注意:

  1. 显然玩/将不同于数据分区。 您可能需要启动磁盘(如Sysrescuecd)而不是执行此操作。 另请参阅下面的Kristof的评论 – 你实际上可以在不卸载/情况下做到这一点。
  2. lvresize有几个不同的语法选项,减less逻辑卷可能会损害覆盖分区。 请咨询您当地的手册页以获取更多信息。

有一个(也是唯一的一个)我发现这样做的方式,我尝试了无数。

首先,通过右键单击虚拟机,并将虚拟机克隆到“克隆”。 克隆完成后,使用(在主机操作系统上)扩展克隆的vdi,

VBoxManage modifyhd“name_of_cloned_vdi” – resize“size_of_new_root_partition_in_MB”

然后 – 按照这篇文章中的步骤去信(他指的是VMware作为一个平台,但忽略)

http://blog.campodoro.org/?p=36

这将创build另一个lvm,大小与您已添加的额外空间大小完全相同,并将其粘贴到现有空间的末尾。

一旦你检查了一切都很好,那么你可以删除原来的虚拟机,并推广你的克隆!

不需要与fdisk混淆,并担心删除或拧错了分区。

我一定已经破解了大约4个克隆的操作系统,直到我find这个解决scheme!

刚刚做了这个,并且遇到了同样的问题,但不是创build一个新的LVM并将其添加到卷组中,而是强调我的当前LVM的大小,从而以简单的名义保留一个分区。 注意:如果可用空间不会立即跟随您正在resize的分区,我不相信这是可能的!

为了做到这一点,你需要一个可以删除和创build分区表的工具。 由于我使用GPT,这意味着我需要gdisk 。 您还需要在未安装分区的情况下执行此操作,因此您可能需要启动到Ubuntu LiveCD并从此运行。

以粗体显示的以下步骤是针对设备/ dev / sda上的示例LVM / dev / mms / root的示例,其中我想扩展分区/ dev / sda3以占用新发现的可用空间。

这些可能是非常具有破坏性的,所以请确保您的input是正确的!

  1. gdisk / dev / sda (确保input正确的设备!)这会将您带入gdisk,然后您可以按顺序执行以下步骤
    1. p – 打印出你当前的分区信息(供参考)
    2. d – 用于删除分区表
    3. 3 – 代表您想要删除的分区表的设备编号(重要!)
    4. n – 用于创build分区表
    5. 3 – 表示您想要创build的分区表的设备编号(您可能希望在步骤3中使用相同的方式)
    6. p – 打印出你当前的分区信息(再次作为参考,比较它与你开始的!)
    7. w – 将您的更改保存到磁盘(您确定吗?!)
  2. pvresize / dev / sda3 – 你可能需要重新启动之前这样做,使您的操作系统识别新的分区大小
  3. pvdisplay – 打印出你的当前信息(它应该显示它现在正在使用整个空间!)
  4. lvresize -l + 100%FREE / dev / mms / root – 调整我的LVM的大小以占据我的新空间的100%
  5. e2fsck -f / dev / mms / root – 执行完整性检查
  6. resize2fs -p / dev / mms / root – 调整文件系统的大小以占用完整的LVM

完成上述操作后,重新启动到调整后的操作系统,一切按预期工作,我有我的额外自由空间在我的处置!

我以前的其他参考资料全都是这样的:

http://www.jethrocarr.com/2012/08/10/gdisk-oh-glorious-gdisk/ http://people.virginia.edu/~ll2bf/docs/quickref/lvm.html

在这里看到相关的答案 。

(摘抄)

调整物理卷的大小:

 pvresize --verbose --test /dev/md0 

调整逻辑卷大小:

 lvresize --verbose -L <SIZE> --test /dev/VG1/LV1 

最后,调整ext3 FS的大小:

 resize2fs /dev/VG1/LV1 

请注意,您实际上并不需要像CloneZilla那样使用克隆工具,您可以将分区放在新的虚拟磁盘上(可选),然后使用pvcreate命令将该分区(或虚拟磁盘本身)初始化为LVM。 然后使用vgextend将其添加到支持您的逻辑卷的卷组,然后使用vgreduce从卷组中删除原始虚拟磁盘。 这将执行迁移,并且可以在逻辑卷正在使用时实时完成,这就是存储虚拟化的美妙之处。 一旦完成,你只需要像上面那样扩展逻辑卷,这也可以用比ext3更现代的文件系统来实现。

I.如果你的虚拟硬盘有固定的大小,你不能做得更大。 在这种情况下,你必须先克隆它。

(1)通过VB GUI克隆硬盘: File -> Virtual Media Manager... -> [tab] Hard Drives -> select your HDD -> [button] Next -> [button] Next -> select "Dynamically allocated" on the step "Storage on physical hard drive"-> ...

或者在命令行上:

 # VBoxManage clonehd "/path/to/the/HDD.vdi" "/path/to/the/HDD_NEW.vdi" 

(2)将新的硬盘添加到已知硬盘的列表中。

(3)在VB机器设置中,将旧的硬盘从控制器下的VDI列表中删除,然后添加新的硬盘。

II。 调整硬盘的大小

(1)调整新硬盘的大小。

 # VBoxManage modifyhd 463c7bd4-9b9c-4cf8-bee4-e14e10c0d462 --resize 25600 

您使用VBoxManage list hdds命令获得密钥。

III。 添加新分配的空间。

(1)在Machine Settings -> Storage -> [rightclick] Controller IDE -> Add CD / DVD Device -> ...select一个GParted ISO作为新的媒体,然后selectLive CD/DVDcheckbox。

(2)启动VM并将未分配的可用空间添加到您的工作分区。

(3)停止虚拟机。

(4)拆开GParted ISO。

请享用! 🙂

看看这个其他serverfault问题的答案, 你如何增加一个KVM guest虚拟机的磁盘空间? 。 用于增加此KVM guest虚拟机中LVM分区的技术与您正在尝试完成的操作类似。

当调整LV2分区的大小时,这个参考帮助了我很多:

http://people.virginia.edu/~ll2bf/docs/quickref/lvm.html

请注意,您不需要使用任何live CD,您可以在已安装的实时系统上resize,即时resize。