如何调整LVM分区的大小? (即:物理量)

我想缩小我的第二个(LVM)分区,以便在新释放的空间中创建一个新分区。 我正在使用Live CD这样做,因为我知道在使用它时我无法调整/移动此分区。 当我在Live CD中打开GParted时,我意识到我无法调整分区的大小,因为当我右键单击它时,“resize / move”选项被禁用。

我试图卸载它,“懒惰”卸载它( umount -l /dev/sda2 )但它没有用。

来自GParted的截图:

GParted截图

谷歌似乎有很多结果,人们有类似的问题。 一个例子:

在尝试此操作之前,请备份所有重要数据。 始终假设在调整分区大小时可能会丢失所有数据。

收缩LVM没有dataloss

此论坛post建议以下过程,在此示例中,我们将分区从10G缩小到9G:

首先,我们卸货。

 sudo umount /dev/vg_blah/lv_blah 

检查文件系统。

 sudo e2fsck -f /dev/vg_blah/lv_blah 

调整文件系统和逻辑卷的大小。 一步完成此操作可以避免导致数据丢失的错误。 (注意lvreduce参数-LG解释为2 ^ 30字节, g为10 ^ 9字节。)

 sudo lvreduce --resizefs -L 9G /dev/vg_blah/lv_blah 

(可选)如果需要,从卷组中删除物理驱动器(如果现在有未使用的驱动器)。

 sudo vgreduce vg_blah /dev/sdxy 

所有的功劳都归功于brianmcgee

注意: vgreduce将失败, cannot resize to xxxxx extents as later ones are allocated如果你在磁盘的末尾有另一个lv, cannot resize to xxxxx extents as later ones are allocated – 我有一个交换lv,我删除了。 请参阅如何缩小Ubuntu LVM逻辑和物理卷? 在这种情况下提供帮助。

您可以使用GUI工具轻松缩小/扩展逻辑卷: system-config-lvm 。 因为system-config-lvm没有预先安装,所以一旦从live-cd启动,你必须安装它:

 sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe" sudo apt-get update sudo apt-get install system-config-lvm 

安装完成后,运行程序,在左侧面板中选择要更改的逻辑卷,然后单击“编辑属性”。

主逻辑卷管理程序GUI

现在根据需要更改参数!

编辑逻辑卷窗口

system-config-lvm一个好处是,如果新的分区大小小于你现有的所有数据,它将不允许你继续前进(我刚试过这个并且为自己看过)。

参考文献:

  1. How-To Geek教程 (这是图像的起源)。
  2. 红帽的完整指南 。

注意 :您应该使用Live CD运行几乎所有以下命令。 有时,它希望您卸载已安装在/上的分区(在这种情况下,您无法卸载它)。

这些是调整LVM或LVM2分区大小所需的所有步骤:

 sudo lvresize --verbose --resizefs -L -150G /dev/mapper/ubuntu sudo pvresize --setphysicalvolumesize {some-space} /dev/sda5 

如果第二个命令产生如下内容:

 /dev/sda5: cannot resize to xxxxx extents as later ones are allocated. 

然后,您必须重新排列LVM末尾的未分配空间。 这意味着在root和swap_1分区之后。 因此,最初,您需要使用以下命令检查物理卷的信息:

 sudo pvs -v --segments /dev/sda5 

这将显示如下输出:

 /dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx root 0 linear /dev/sda:0-rrr /dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx sss 0 free /dev/sda5 ubuntu lvm2 a-- 698.04g 150g zzz ttt swap 0 linear /dev/sda5:yyy-www 

注意yyy-www 。 使用以下命令删除外部碎片:

 sudo pvmove --alloc anywhere /dev/sda5:yyy-www 

现在,让我们看看它是怎么回事:

 sudo pvs -v --segments /dev/sda5 

这将显示输出(注意更改):

 /dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx root 0 linear /dev/sda:0-rrr /dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx ttt swap 0 linear /dev/sda5:xxx-sss /dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyy www 0 free 

之后,使用GParted并将LVM的大小调整为最大使用区域,其余部分将位于未分配的空间中。 请享用…

我会推荐另一个GUI工具–KVPM 。 它结合了GParted和system-config-lvm的function。 此外,它允许对system-config-lvm 不允许的实时(已安装)分区执行某些操作。但是,必须卸载卷以进行收缩。

在此处输入图像描述 在此处输入图像描述

它是在Ubuntu 12.04以来的Universe存储库中,所以只需要做sudo apt-get install kvpm

注意:以root权限sudo kvpm启动它

只有最新版本的Gparted(0.14)支持调整LVM物理卷的大小。 随Ubuntu 12.10或13.04一起提供的版本不支持它。

以下是调整LVM物理卷大小的方法:

  1. 如果与LVM物理卷关联的卷组没有足够的未分配空间,则需要通过缩小逻辑卷来创建一些空间。 请看bigbadonk420的答案 ,了解如何做到这一点。 如果您更喜欢GUI,也可以使用GNOME磁盘(包含在Ubuntu中)执行某些步骤。

  2. 从GParted的网站上刻录最新的.iso图像 ,然后将其刻录在CD上或放在USB记忆棒上。 从CD或USB记忆棒启动。 或者,您可以从源代码编译最新版本的GParted。

  3. 使用GParted调整LVM物理卷的大小。 GParted不允许您将LVM物理卷缩小到小于未分配空间允许的大小。

我偶然发现了这个答案,但这至少对我有用。 在我的情况下,我已经在root之后有一个保留的未分配磁盘空间,所以我跳过了如何获得更多空间的部分,并解释我如何在root上使用它而不启动。

注意:您可能最好使用system-config-lvm ,而不是使用gparted 。 下次我会使用那个…我的gparted版本是0.18。

  1. 首先,我使用gparted尽可能地扩展根分区。 令我惊讶的是,它只扩展了物理尺寸,对逻辑部分没有任何作用。 所以df -k命令说磁盘已经满了。
  2. lvresize -l +100%FREE /dev/ubuntu-vg/root尽可能扩展逻辑分区。 无需在各种方法中检查和计算GB或块。
  3. resize2fs /dev/ubuntu-vg/root是我做的第三步:它将文件系统扩展到逻辑分区的大小。

最后一步可以合并到第二步:

lvresize -l +100%FREE --resizefs /dev/ubuntu-vg/root

关于当前投票最多的回答的警告: 不要使用LVM选项(14.04 Trusty Tahr)破坏新的默认安装,1)读取整个页面,2)删除交换3)并可能修改命令“减小逻辑的大小卷“像这样:

 lvreduce -L -1g /dev/vg_blah/lv_blah 

我强烈推荐system-config-lvm

除了@ bigbadonk420的回答 ,还有以下内容:

 resize2fs -p /dev/vg_blah/lv_blah 9G lvreduce -L -1G /dev/vg_blah/lv_blah 

做:

 lvreduce -r -L 9G /dev/vg_blah/lv_blah 

注意-r可以同时减少文件系统并且是安全的。

要使用GParted执行此操作,请右键单击dev / sda2(您要缩小)。 选择“停用”。 现在,您将能够调整lvm分区的大小。

更新:@Cao Min Tu解决方案要好得多。 resize后,我在GParted上遇到了一些问题