如何使用 LVM 扩展加密的 Ubuntu 分区

如何使用 LVM 扩展加密的 Ubuntu 分区

我在 VB 上安装了 Ubuntu Mate Trusty,我想将其迁移到物理笔记本电脑上。按照此操作指导我能够启动并运行它。现在唯一的问题是我想扩展当前分区以填满磁盘的其余部分,并且它已加密并使用 LVM。Gparted 不支持此类操作,因此我不得不求助于 CLI。但是,我对手动调整分区大小一无所知,我能找到的所有指南要么侧重于缩小分区,要么已经过时了。

一些分区专家可以为我提供一份指南吗?

谢谢

答案1

经过长时间的折腾,多次失败(感谢上帝有备份)后,我终于能够调整它的大小。以下是我的指南。

假设你有一个像我这样的分区表:sda1 是交换分区,大约 250MB,sda2 是一个包含 sda5(我们的加密卷)的容器,并且在 sda2 前面有很多可用空间,如下所示

|sda1|sda2 (sda5)|free space|

启动您最喜欢的发行版的 LiveCD。运行 gparted 并将 sda1 分区缩小约 20MB。这是因为 fdisk 需要在 sda2 和 sda5 的开头之间留出未分配空间的缓冲区,不知道为什么。在此过程中,尽可能增加 sda2 的大小,一直到最右边。您应该最终得到

|sda1|free space|sda2 (sda5)|

继续并启动 fdisk

sudo fdisk /dev/sda

按 p 打印出当前分区方案。记下 sda5 的起始位置。

按 d 先删除 sda5,然后删除 sda2。太可怕了。

现在按 n 创建新卷。按 e 选择类型为扩展并将其编号设为 2。起始和结束的默认值应该没问题。

现在创建一个新的分区,类型为 Linux(应为默认值)并将其编号为 5。起始值应该与您之前为 sda5 记下的值相同,结束值是默认值(尽可能)。

再次按 p 以确保一切正常,然后按 w 将更改写入磁盘。

重新启动进入你的 Live CD。

如果你打开 gparted 你现在应该有

|sda1|sda2 (free space) (sda5)|

跟随这些步骤

解密您的文件系统。

sudo cryptsetup luksOpen /dev/sda5 crypt1

获取实时 CD 来识别(激活)您的 LVM。

sudo vgscan --mknodes
sudo vgchange -ay

调整墓穴大小。

sudo cryptsetup resize crypt1

调整(LVM)物理卷的大小。

sudo pvresize /dev/mapper/crypt1

调整根(LVM)逻辑卷的大小。

解锁(LVM)物理卷。

 sudo pvchange -x y /dev/mapper/crypt1

调整(LVM)物理卷的大小。

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

重新锁定物理卷。

 sudo pvchange -x n /dev/mapper/crypt1

调整文件系统的大小。

sudo e2fsck -f /dev/mapper/ubuntu--vg-root
sudo resize2fs -p /dev/mapper/ubuntu--vg-root

现在您可以重新启动了,如果一切顺利的话,您应该有一个更大的加密分区。

笔记:这种方法的缺点是会占用大约 20MB 的交换空间。如果交换空间调整未完成,fdisk 将不允许您将 sda5 写入所需位置(我怀疑这可能会导致损坏)。除非有人确切解释 fdisk 在幕后做什么,以及是否有任何方法可以让它执行我们的命令,否则此警告是必要的。

答案2

我刚刚找到更简单的解决方案,只需要gparted实时系统启动,然后再执行一个命令。它适用于 Ubuntu 20.04 及更高版本。

  1. 创建完整备份,因为对分区和 LVM 的任何干扰都可能导致数据完全丢失。

  2. 从 Live CD 启动或安装介质。因为gparted无法修改已安装的磁盘。

  3. 开始gparted

  4. 解密。右键单击分区并选择“打开加密”。

  5. 调整大小。右键单击分区并选择“调整大小/移动”。您可以尝试调整大小,使其包含所有可用空间,但gparted可能会告诉您这是不可能的,因为它会“分配比可用扇区更多的扇区”。在这种情况下,请在末尾留出约 10 MiB 的可用空间。

  6. 申请。单击“应用”按钮gparted即可实际调整大小。

  7. 重新启动到您的安装。所有剩余任务仅影响现已调整大小的分区内的 LVM 卷,并且可以在安装分区后完成。

  8. 确定 LV 路径通过查看 的输出,您可以确定要调整大小的 LVM 卷sudo lvdisplay。这里,我们假设它是,这是Ubuntu 安装中/dev/ubuntu-vg/root安装到的卷的默认值。/

  9. 调整 LVM 卷及其文件系统的大小。为此,使用您确定的 LV 路径执行以下命令。它将自动扩展卷以使用分区中可用的所有空间:

    sudo lvextend -l +100%FREE -r /dev/ubuntu-vg/root
    

答案3

在“cryptsetup resize”不起作用之后,我得到了这个解决方案:

确保 /dev/sdX 适合您的磁盘!请注意,我还不确定它是否会影响 grub。从 ubuntu live cd 运行。

  • 打开 gparted
  • 使用 gparted 将 /dev/sda2 调整为所需大小
  • 解密:

    sudo cryptsetup luksOpen /dev/sda5 crypt1

  • 使用 gparted 将 /dev/sda5 调整为所需大小

您可以通过安装和浏览驱动器来确保一切正常

sudo mount /dev/mapper/ubuntu--vg-root

答案4

我正在尝试遵循这些说明,但我确实有一个担忧。对我来说 - /dev/sda5 是扩展卷,包含操作系统和所有内容。一旦您使用 fdisk,删除并重新创建分区,然后将这些更改写入磁盘 - 这不会删除所有信息吗?

我尝试了列出的方法,当我重新启动回到 live cd,然后进入“sudo cryptsetup resize crypt1”部分时 - 我收到一条消息说“设备 crypt1 未活动”,之后什么都没有起作用。

我正在 vbox 实例上尝试此操作,所以至少我一直在进行备份,但我还无法让它正常工作。

我错过了什么?

相关内容