如何以图形方式(使用 GUI)编辑 LVM 分区/调整其大小?

如何以图形方式(使用 GUI)编辑 LVM 分区/调整其大小?

我想要调整 LVM 分区的大小(具体来说,我想要增加根/挂载并减少 /home),因为我在一个虚拟分区上的磁盘空间不足。现在人们说 LVM 具有可调整大小的分区……至少他们声称如此。我到现在还没看到……

答案1

凯德partitionmanager3.0 现在做得很好。

我们曾经有system-config-lvm一个围绕lvm命令的python2包装器,现在在python2和gtk2.0对glade的支持被删除后被弃用。

显然 gnomepalimpsest也有这个功能(加上一些 SMART 实用程序和 RAID),但是gnome 磁盘实用程序,它取代了它,因为一个可怜的表弟没有取代它。

答案2

另请参阅我的密切相关的答案,我在其中扩张LUKS 加密分区(这更容易)而不是缩小它:如何克隆硬盘(SSD 或 HDD)并扩展 LUKS 加密分区以填充新的完整磁盘空间

如何缩小加密的 LUKS 分区

...通过安装blivet-gui在 Ubuntu live USB 上,然后使用blivet-gui、Gnome Disks 和 GParted(所有 3 个都需要一起使用)。

测试于:

  1. 一个 Ubuntu 22.04 live USB,用于运行这 3 个 GUI,以解锁 LUKS 加密的外部分区,缩小并编辑其中的 Ubuntu 20.04 LVM 卷,然后缩小外部 LUKS 分区。
  2. 我在 Ubuntu 22.04 系统中缩小了外部 SSD 驱动器上的 LUKS 加密分区。

1. 安装blivet-gui

我现在才能够跟随@rugk的指示,除非运行时布利韦特图形用户界面从一个乌班图22.04实时 USB (使用 Balena Etcher 创建)而不是使用 Fedora live USB。

要安装blivet-gui到我的 Ubuntu 22.04 live USB 中,我尝试遵循blivet-gui自己的安装说明在这里,就是这些。注意:此处的说明适用于实际的 Ubuntu 系统,但在我的 Ubuntu live USB 安装盘上失败。对于实时 USB,我在下面发布的自定义说明有效。

# Ubuntu 22.04
echo 'deb http://download.opensuse.org/repositories/home:/vtrefny/xUbuntu_22.04/ /' | sudo tee /etc/apt/sources.list.d/home:vtrefny.list
curl -fsSL https://download.opensuse.org/repositories/home:vtrefny/xUbuntu_22.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_vtrefny.gpg > /dev/null
sudo apt update
sudo apt install blivet-gui

# Ubuntu 20.04
echo 'deb http://download.opensuse.org/repositories/home:/vtrefny/xUbuntu_20.04/ /' | sudo tee /etc/apt/sources.list.d/home:vtrefny.list
curl -fsSL https://download.opensuse.org/repositories/home:vtrefny/xUbuntu_20.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_vtrefny.gpg > /dev/null
sudo apt update
sudo apt install blivet-gui

# etc.

虽然上面的第二组指令在我的主 Ubuntu 20.04 机器上完美运行(我也测试了这个),但它们确实不是在更有限的实时 USB 环境中同样可以很好地工作。

所以,在 Ubuntu 22.04 live USB 上对我有用的最终看起来更像是这样的:

sudo apt update
sudo add-apt-repository universe
sudo apt --fix-broken install
sudo apt update

# optional, if you want to try the other answer here recommending this tool too
sudo apt install partitionmanager

sudo apt install curl

# Ubuntu 22.04
echo 'deb http://download.opensuse.org/repositories/home:/vtrefny/xUbuntu_22.04/ /' | sudo tee /etc/apt/sources.list.d/home:vtrefny.list
curl -fsSL https://download.opensuse.org/repositories/home:vtrefny/xUbuntu_22.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_vtrefny.gpg > /dev/null
sudo apt update
sudo apt install blivet-gui

我刚刚又尝试了一次,结果成功了。但是,如果这对您的情况来说还不够,请添加一些分散的sudo apt --fix-broken install命令sudo apt update,然后再试sudo apt install blivet-gui一次。您还可以尝试按照@mixalbl4 在这个答案下面发表评论

2.解锁并缩小LUKS分区

解锁 LUKS 加密的外部分区,收缩并编辑其中的 LVM 卷,然后使用 3 个 GUI 的组合收缩外部 LUKS 分区:Gnome“Disks”、“blivet-gui”和“GParted”。

用途:

  1. 您必须使用 Gnome“磁盘”来解锁外部 LUKS 加密分区。尽管 GPartedblivet-gui和 GParted 都具有解锁 LUKS 加密分区的功能,但它们无法正常工作以允许blivet-gui编辑和缩小内部 LVM 卷。只有通过 Gnome“磁盘”解锁才能实现此目的。因此,请按照我下面的说明进行操作。
  2. 您必须使用blivet-gui来缩小内部 LVM 卷并编辑或删除外部 LUKS 加密分区内的任何其他内部卷。blivet-gui一旦通过“磁盘”解锁外部 LUKS 加密分区,它就是这 3 个 GUI 中唯一可以编辑内部卷的 GUI。
  3. 要随后缩小外部 LUKS 加密分区,您必须使用 GParted。这是三者中唯一能做到这一点的。
    1. 此外,只有 GParted 可以完全关闭并重新锁定外部 LUKS 加密分区。为了编写本教程并反复测试我的指令,我必须仅使用 GParted 来关闭并重新锁定外部 LUKS 加密分区(通过其右键菜单)。虽然我解锁它与磁盘,只有 GParted 可以正确重新锁定重新关闭外部 LUKS 加密分区。很奇怪,但这就是我反复看到的。

指示:

  1. 使用 Disks 解锁外部 LUKS 加密分区:按 Windows 键并输入“disks”以打开gnome-disksGUI 工具。单击包含 LUKS 加密分区的感兴趣的驱动器,然后找到锁定的 LUKS 加密分区。这就是我所说的“外部分区”,因为它包含受保护的内部 LVM 卷。单击解锁图标(看起来像解锁的挂锁)并输入加密密码以解锁分区。需要几秒钟才能完成解锁。您将看到未锁定的内部“LVM2 PV”卷现在显示在外部“LUKS”分区下方的磁盘 GUI 中。提醒:仅有的磁盘工具可以正确解锁分区以进行下一步。不要使用blivet-guiGParted 或 GParted 解锁它,否则blivet-gui会在下一步中抛出错误。

  2. 用于blivet-gui缩小和编辑外部 LUKS 加密分区内的内部 LVM 卷:按 Windows 键并输入“blivet”以打开该blivet-gui工具。注意:blivet-gui不应该已经打开!您必须在“磁盘”中执行上述解锁步骤开幕blivet-gui。在粗体“LVM”标签下,我有一个 951.94 GiB 分区,这是我想要缩小的受保护 LVM 卷(位于外部 LUKS 加密分区内)。在“逻辑视图”选项卡下,右键单击所需的卷,然后转到 --> 编辑 --> 调整大小 --> 将滑块向左拖动以调整大小到所需的大小。以下是将 80 GiB 的 LVM 卷大小调整为 57.3 GiB 的情况:

    在此输入图像描述

    注意:在我原来的情况下,我将 951.94 GiB LVM 卷缩小到 80 GiB。

    完成后单击“调整大小”。

    blivet-gui此时对内部 LVM 卷进行任何其他编辑。您可以根据需要添加、删除 LVM 卷、调整其大小等。

    此时磁盘仍处于打开状态。您blivet-gui也可以保持打开状态。

  3. 使用 GParted 缩小外部 LUKS 加密分区:按 Windows 键并输入“gparted”以打开 GParted 分区编辑器 GUI 工具。看起来像这样。您可以看到我的外部 951.94 GiB LUKS 加密分区是解锁(以前由磁盘工具)因为它的标签显示“lvm2 pv”,并且因为它显示使用情况(图形视图左侧附近的黄色部分显示“已用空间”——实际上只是 80 GiB 内部空间)在这种情况下,LVM 卷——即使并非所有空间都被真正“使用”,并且右侧的白色部分是从我刚刚缩小上面的内部 LVM 卷的位置释放的空白空间)。

    在此输入图像描述

    接下来,在 GParted 中,右键单击它并转到 --> 调整大小/移动 --> 将栏的右侧一直拖动到左侧,如下所示。这缩小了LUKS 加密分区小至内部 LVM 卷的大小。我的内部 LVM 卷实际上正好是 80 x 1024 = 81920 MiB,但无论出于何种原因,我只能将 LUKS 容器缩小到 81940 MiB:

    在此输入图像描述

    完成后单击“调整大小”,然后单击 GParted 顶部的绿色复选标记以将更改应用到磁盘上。几分钟后,“轰隆隆,完成了!”这是最终的、最美丽的结果!您可以看到包含当前解锁的 LVM2 PV 内部卷的 LUKS 加密外部分区现在为 80.02 GiB,右侧有 871.92 GiB 完全可用!:

    在此输入图像描述

    要关闭并重新锁定分区,GParted 内部,右键单击加密分区并转到 --> 停用,然后再次右键单击它并转到 --> 关闭加密。现在看起来像这样,仅显示标签“[Encrypted]”,而不是还表明它内部包含“lvm2 pv system”卷:

    在此输入图像描述

    您现在可以关闭 GParted、blivet-gui 和磁盘。如你看到的,所有 3 个这些 GUI 需要解锁外部 LUKS 加密分区,收缩并编辑其内部 LVM 卷,然后按顺序收缩外部 LUKS 加密分区。

    例如,这个新空间现在可用于安装新的 LUKS 加密的 Linux 操作系统,同时保持旧的 LUKS 加密的 Linux 运行完好无损,用于具有两个 Linux 操作系统的双引导系统

更新1:

我不知道当两个系统都经过 LUKS 加密时如何使双启动系统工作;新安装后,旧的 Ubuntu 20.04 操作系统缩小到 80 GiB 以上不是在 grub 菜单中,我不知道为什么,也不知道如何修复它。以下是我对此的后续问题:

  1. Unix 和 Linux:如何在双引导(2 个 Linux 操作系统)系统都经过 LUKS 加密的情况下工作
  2. 询问 Ubuntu:在新的 LUKS 分区中安装新的 Ubuntu 版本后,如何将旧的 LUKS 加密的 Ubuntu 版本返回到 Grub 菜单

我想也许下次我应该尝试一下仅缩小 LVM 卷在外部 LUKS 分区内,但是不收缩外部 LUKS 分区本身。然后,不要创建新的 LUKS 分区,而是尝试在新的 LVM 卷中将新版本的 Linux Ubuntu 安装在旧版本旁边相同的LUKS分区作为 Ubuntu 的原始版本。也许这会起作用???

更新2:

我得到了它!我更新了 Grub 启动菜单,以包含我的旧 LUKS 加密操作系统和新操作系统。请在上面的两个链接中查看我的答案,这里这里

更新3:

下次我安装新操作系统时,尝试使用相同的 /boot分区作为旧操作系统,而不是创建一个新的单独/boot分区。我认为使用单身的,共享 /boot分区将避免进行我解释的“肮脏黑客”我的回答即将结束(搜索“dirty hack”的答案)!

也可以看看

  1. [我的答案]使用blivet-gui, 代替gparted或者侏儒磁盘,查看 LUKS 加密的 LVM 卷/分区的内部内容

答案3

事实上,在 Fedora 32 的新版本中它可以工作。因为某些原因。

所以这是如何做到的:

  1. 下载最新的实时图像,例如软呢帽32.
  2. 创建可启动驱动器(USB 等)
  3. 启动进入它。
  4. 使用GNOME软件安装布利韦特图形用户界面
  5. 如果主驱动器已加密,请使用 GNOME 磁盘将其解锁。 (注意解锁所有驱动器。)
  6. 打开 Blivet GUI。
  7. 您应该看到“LVM”部分。
  8. 只需右键单击要更改/调整大小的分区即可。
  9. 最后,您需要单击顶部的“应用”按钮立即应用所有步骤。请注意,这可能需要一段时间,并且加载指示器非常糟糕。 (我为此创建了一个问题。

答案4

我所知道的唯一管理逻辑卷、物理卷和磁盘分区的工具是KDE 分区管理器

以下是我对主要工具的简要经验总结,以及如何在 Ubuntu 22.04 pendrive 实时会话中安装它们。

分区管理器 21.12.3

  • 可以锁定和解锁 luks 容器
  • 可以停用lvm卷组
  • 可以扩大和缩小物理分区
  • 可以扩展和收缩lvm逻辑卷
  • 可以扩展和收缩加密的lvm物理卷
  • 可以挂载和卸载lvm逻辑卷(但不像gnome-disk-utility那么容易)

观察到的问题:

  • 卸载当前引导分区后,无法识别出其中有数据,并提出将其缩小到 8MB(?!)。我告诉它继续查看它会去哪里,幸运的是它抛出了一条错误消息而不是破坏我的启动分区。
  • 无法在磁盘末尾的 7GB 可用空间上创建物理卷,坚持将其安装为 /run(?!),但事实并非如此。

blivet-gui 2.4.2

  • 可以扩展和收缩lvm逻辑卷
  • 无法锁定和解锁 luks 容器
  • 无法停用 lvm 卷组
  • 无法调整 lvm 物理卷的大小

观察到的故障:

  • 在一些完全合法的操作期间抛出 python 语法错误

gnome 磁盘实用程序 42.0

  • 可以锁定和解锁 luks 容器
  • 列出lvm卷组
  • 可以挂载和卸载lvm逻辑卷
  • 无法创建 lvm 逻辑卷或调整其大小

无故障

gparted 2.3.1

  • 可以锁定和解锁 luks 容器
  • 可以扩展和收缩加密的lvm物理卷
  • 可以停用lvm卷组
  • 无法列出 lvm 逻辑卷和 lvm 卷组

无故障

kvpm 0.9.10

  • 可以调整lvm逻辑卷的大小
  • 可以调整物理分区的大小
  • 提供扩展 luks 容器,但不扩展其中的 lvm 物理卷(?!)
  • 无法锁定和解锁 luks 容器
  • 无法收缩lvm物理卷
  • 无法停用 lvm 卷组
  • 如果卷组处于活动状态,则无法扩大 lvm 物理卷

除以上情况外无其他故障

在 Ubuntu 22.04 pendrive 会话上安装它们

截至 2024 年 2 月:

sudo add-apt-repository universe
sudo apt update

sudo apt install partitionmanager

cd /tmp

wget http://download.opensuse.org/repositories/home:/vtrefny/xUbuntu_22.04/all/python3-pid_3.0.3-1_all.deb
wget http://download.opensuse.org/repositories/home:/vtrefny/xUbuntu_22.04/all/python3-blivet_3.7.1-1_all.deb
wget http://download.opensuse.org/repositories/home:/vtrefny/xUbuntu_22.04/all/blivet-gui_2.4.2-1_all.deb
sudo apt install ./python3-pid_3.0.3-1_all.deb ./python3-blivet_3.7.1-1_all.deb ./blivet-gui_2.4.2-1_all.deb

wget http://archive.ubuntu.com/ubuntu/pool/main/l/lvm2/liblvm2app2.2_2.02.176-4.1ubuntu3.18.04.3_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/k/kvpm/kvpm_0.9.10-1.1_amd64.deb
sudo apt install ./liblvm2app2.2_2.02.176-4.1ubuntu3.18.04.3_amd64.deb ./kvpm_0.9.10-1.1_amd64.deb
sudo -i kvpm

相关内容