当前位置: 首页>>技术教程>>正文


我怎样才能调整LVM分区的大小? (即:物理量)

, , ,

问题描述

我想缩小我的第二个(LVM)分区,以便在新释放的空间中创建一个新的分区。我正在使用Live CD执行此操作,因为我知道在使用该分区时无法调整/移动此分区。当我在Live CD中打开GParted时,我意识到我无法调整分区大小,因为当我使用right-click时,选项”resize/move”被禁用。

我尝试卸载它,以”lazy”卸载它(umount -l /dev/sda2),但它没有奏效。

GParted的屏幕截图:

partitioning,gparted,lvm,ubuntu

最佳解决方案

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

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

Shrink LVM without dataloss

这个论坛主题提出了以下过程,在这个例子中我们将一个分区从10G缩小到9G:

First, we unmount.

sudo umount /dev/vg_blah/lv_blah 

Check the file system.

sudo e2fsck -f /dev/vg_blah/lv_blah 

Resize the file system and the logical volume. Doing this in one step can avoid mistakes which cause dataloss. (Note lvreduce parameter -L interprets G as 2^30 bytes and g as 10^9 bytes.)

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

(optional) Remove a physical drive from the volume group if desired (if you now have an unused drive).

sudo vgreduce vg_blah /dev/sdxy 

所有功劳都归于brianmcgee。

注意:如果您在磁盘末尾有另一个lv,vgreduce将会失败,并显示cannot resize to xxxxx extents as later ones are allocated – 我有一个交换lv,我将其删除。请参阅How to shrink Ubuntu LVM logical and physical volumes?以获取有关该情况的帮助。

次佳解决方案

您可以使用GUI工具非常轻松地缩小/扩展逻辑卷:system-config-lvm。由于system-config-lvm不是来自pre-installed,所以一旦从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

安装完成后,运行该程序,在左侧面板中选择要更改的逻辑卷,然后单击’Edit Properties’。

partitioning,gparted,lvm,ubuntu

现在根据需要更改参数!

partitioning,gparted,lvm,ubuntu

关于system-config-lvm的一个好处是,如果新的分区大小小于所有现有数据(我刚刚尝试过并亲眼看到),它将不会允许您继续。

参考文献:

  1. How-To Geek tutorial(这是图像的来源)。

  2. 该程序为Red Hat’s complete guide

第三种解决方案

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

sudo lvresize --verbose --resizefs -L -150G /dev/ubuntu/root

sudo pvresize --setphysicalvolumesize {any size here} /dev/sda5

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

您必须重新排列LVM末尾的未分配空间。这意味着在root和swap_1分区之后。所以,你需要使用下面的命令来移动这个可用空间

pvs -v --segments /dev/sda5

这将显示如下的输出

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx root 0 linear /dev/sda:0-xxx
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx yyyy 0 free                          
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy end swap 0 linear /dev/sda5:yyyy-end

现在使用下面的命令删除外部碎片 –

sudo pvmove --alloc anywhere /dev/sda5:yyyy-end

现在让我们看看它是如何发展的 –

pvs -v --segments /dev/sda5

这将显示如下的输出

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx root 0 linear /dev/sda:0-xxx
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx yyyy swap 0 linear /dev/sda5:xxx-yyyy
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy end 0 free

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

第四种方案

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

以下是如何调整LVM物理卷的大小:

  1. 如果与LVM物理卷关联的卷组没有足够的未分配空间,则需要通过缩小逻辑卷来进行一些操作。查看bigbadonk420’s answer以获取有关如何操作的说明。如果您更喜欢GUI,您也可以使用GNOME磁盘(包含在Ubuntu中)执行一些步骤。

  2. 刻录latest .iso image from GParted’s website,然后刻录在CD上或放在USB memory 棒上。从CD或U盘启动。或者,你可以从源代码编译最新版本的GParted。

  3. 使用GParted调整LVM物理卷的大小。 GParted不会让您将LVM物理卷缩小到比未分配空间允许的更小的尺寸。

第五种方案

我会推荐另一个GUI工具 – KVPM。它结合了GParted和system-config-lvm的功能。此外,它允许在system-config-lvm doesn’t allow实时(安装的)分区上执行一些操作,但是卷必须被卸载才能收缩。

partitioning,gparted,lvm,ubuntu

partitioning,gparted,lvm,ubuntu

从Ubuntu 12.04开始,它位于Universe存储库中,所以只需执行sudo apt-get install kvpm即可

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

第六种方案

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

注意:而不是使用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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/999.html,未经允许,请勿转载。