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


88

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

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

GParted的屏幕截图:

GParted屏幕截图

Answers:


49

在人们遇到类似问题的Google上似乎有很多结果。一个例子:

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

缩小LVM而不会丢失数据

该论坛线程建议执行以下过程,在本示例中,我们将分区从10G缩小到9G:

首先,我们卸载。

sudo umount /dev/vg_blah/lv_blah

检查文件系统。

sudo e2fsck -f /dev/vg_blah/lv_blah

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

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

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

sudo vgreduce vg_blah /dev/sdxy

一切归功于brianmcgee

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


1
e2fsck -f /dev/vg_blah/lv_blah返回:“ e2fsck:尝试打开/ dev / sda2由另一个程序专门安装或打开的文件系统时设备或资源忙吗?”,与resize2fs相同...
Idan Yadgar 2012年

12
答案是缺少如何调整物理卷的大小。另外,我强烈建议您将调整大小的两个步骤合并为一个lvreduce -r
Flimm 2012年

4
另外,您需要意识到1Gto lvreduce是1000000000字节,而to resize2fs是一个gibibyte。如果要将1吉字节传递给lvreduce,请1g改用。
Flimm

1
你不使用vgreduce; 这是从卷组中删除 PV。
psusi 2014年

2
我强烈怀疑lvreduce在差分模式下使用G = gibibyte。当然可以在绝对模式下进行。它的手册页写得不好,没有解释其单位的含义,我认为这与刑事过失接壤。
Urhixidur

45

您可以使用GUI工具轻松地收缩/扩展逻辑卷system-config-lvm。由于system-config-lvm未预先安装,因此从实时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. 红帽程序的完整指南

2
GUI绝对是必经之路,但是您可能需要从实时CD运行它。
2014年

10
为什么system-config-lvmlvresize或冒险lvresize -r
Thufir

1
您也可以尝试blivet-guigithubUbuntu PPA),它是处理LVM驱动器的下一代分区管理器。
贝恩2015年

5
请注意,尽管使用(不正确的)“千兆字节”字样,system-config-lvm仍使用1024的幂。它确实应该像palimpsest(aka Disk Utility)一样,并以明确的字节数指定其含义。
Urhixidur

4
@Suncatcher在17.10和18.04上,您必须添加Xenial存储库。sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu xenial universe"
m93a

24

注意:您应该使用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调整为最大使用区域,其余空间将留在未分配的空间中。请享用...


15

我会推荐另一个GUI工具-KVPM。它结合了GParted和system-config-lvm的功能。而且,它允许对活动(已安装)分区进行一些system-config-lvm 不允许的操作。 但是,必须先卸载该卷才能进行收缩。

在此处输入图片说明 在此处输入图片说明

自Ubuntu 12.04起它就位于Universe存储库中,因此只需 sudo apt-get install kvpm

注意:以root权限启动 sudo kvpm


它不在Universe库中:E: Unable to locate package kvpm
Jeff Puckett


这对我有用,其中“ system-config-lvm”没有加载任何连接的设备/驱动器/文件系统。另外,无需下载和额外的存储库,并且可以在我的Ubuntu机器上进行预配置。另外,还对Gparted进行了工作,因为那会导致文件系统减少过多的错误。(出于备份目的,我正在将RetroOrangepi SD卡的大小从32GB减小到8GB)
BiTinerary

看起来不错,认为如果您还没有使用KDE,可能还需要100M来解决所有其他K依赖关系
Xen2050

12

仅最新版本的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物理卷缩小到小于未分配空间允许的大小。


谢谢弗利姆。我期望12.10拥有足够的gparted版本。您的回答为我指明了正确的方向。
Martijn Heemels 2013年

1
我得到了最新的gparted,但是它不允许我更改分区大小...我有ext2类型的/ dev / sda2,在此之下,是lvm2类型的/ dev / sda5。但是gparted表示最小和最大尺寸都相同,因此不允许我对其进行更改... :-(
Paul

还是使用pvresizeLVM2套件,对吗?
203967 2014年

@Paul你解决了吗?我有完全相同的问题:S
Castiblanco 2014年

@Castiblanco我没有解决它,我最终清除了所有内容并在没有LVM的情况下重新安装。对我来说,有一个教训:不要将LVM用于标准桌面安装。
保罗

9

我偶然找到了这个答案,但这至少对我有用。在我的情况下,我已经在根目录之后保留了一个未分配的磁盘空间,因此我跳过了如何获得更多空间的部分,仅说明了如何在根目录下使用它而不进行引导。

注意:最好不要使用gparted,而不要使用system-config-lvm。下次我改用那个...我的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


这使您可以缩小逻辑卷,但是OP的问题在于缩小物理卷。
Stefan

您救了我的命
QuangHà16年

1

除了@ 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这会同时减少文件系统并且是安全的。


但这并不会减少物理体积。
斯特凡

0

警告有关当前最投票的答案:为了破坏与LVM选项(14.04忠实的塔尔羊)的新鲜默认安装,1)读取整个页面,2)删除掉3),并可能修改为“减少的逻辑大小的命令音量”,如下所示:

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

我强烈建议system-config-lvm


同样,OP希望减少物理体积。
Stefan

0

要使用GParted做到这一点,请右键单击dev / sda2(要缩小)。选择“停用”。现在您将能够调整lvm分区的大小。

更新:@Cao Min Tu解决方案要好得多。调整大小后,我与GParted的问题很少

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.