重新审视如何调整 LUKS 设备的大小

Alp*_*uri 5 linux luks

我读过了:

和别的。

我正在尝试将大小从 250 GB 调整为 500 GB。以前,分区 /dev/sda2 为 250 GB,我现在已将分区大小调整为 500 GB。

但是,位于 /dev/sda2 的 LUKS 设备呢?我如何调整它的大小?

好吧,手册(用于 cryptsetup)为我们提供了“调整大小”。但是,当我检查 cryptsetup 状态时,我的设备已经是 500 GB。

此外,当我检入 parted 时,它(作为符号链接的加密设备 /dev/dm-0 或 /dev/mapper/cryptdevice)也显示为 500 GB。

看来我的加密设备已经是正确的大小了!

那么,为什么当我实际挂载加密设备 (/dev/mapper/cryptdevice) 时,它显示为 250 GB?

我错过了一步吗?我还需要做什么?

在执行此操作之间,我显然已经重新启动了很多次。我从可启动的 USB 设备开始,执行 cryptsetup,重新启动等。它仍然显示为 250 GB,而我预计它是 500 GB。

请注意,我实际上从未调整过分区本身以外的任何内容。调整分区大小后,cryptsetup 和 parted 开始报告加密卷也在调整大小——但同样,当我安装它时,它仍然只有 250 GB。

除此之外,我没有 LVM,我只有:

/dev/sda2,其中包含一个 LUKS 加密文件系统。我用 cryptsetup luksOpen /dev/sda2 cryptdevice 等打开它。

A.B*_*A.B 8

您仍然需要使用调整大小的块设备来调整文件系统的大小。精确的方法和可能的限制取决于每个文件系统。

以下是将文件系统大小调整为 EXT4 和 XFS 的整个可用大小的两个示例。其他文件系统将需要其他特定命令。

  • EXT4 文件系统可以在线或离线放大(也可以缩小,但只能离线)。

    resize2fs /dev/mapper/cryptdevice
    
    Run Code Online (Sandbox Code Playgroud)
  • XFS 文件系统只能扩大和在线(一旦完成就不能缩小)。

    必须挂载文件系统才能增长。该命令需要安装点而不是块设备。

    mount -t xfs /dev/mapper/cryptdevice /mnt
    
    xfs_growfs /mnt
    
    Run Code Online (Sandbox Code Playgroud)

您实际上从链接中两次错过了这一步:

  • 调整 LUKS 卷的大小

    在问题中:

    # Step 5: Resize encrypted volume (Trying to give it some space)
    > resize2fs -p /dev/CryptVolumeGroup/root 101G
    
    Run Code Online (Sandbox Code Playgroud)

    但在答案中:

    扩大 rootfs 逻辑卷。从 ext4 开始不需要卸载,并且在安装时放大:lvresize -r -L +100G archvg/home

    lvresize -r自动调整底层文件系统的大小,因此答案中没有特定的命令。此答案中没有针对不使用 LVM 的特定情况调整文件系统的大小。

  • 增加 LUKS 加密分区的大小

    作为最后一步,文件系统需要扩展到新的大小。使用 resize2fs(8) 命令将文件系统扩展到 LUKS 卷的新大小。

    $ sudo resize2fs /dev/mapper/sdb1_crypt
    resize2fs 1.42.13 (17-May-2015)
    Filesystem at /dev/mapper/sdb1_crypt is mounted on /media/gerhard/Daten; on-line resizing required
    old_desc_blocks = 2, new_desc_blocks = 4
    The filesystem on /dev/mapper/sdb1_crypt is now 14647925 (4k) blocks long.
    
    Run Code Online (Sandbox Code Playgroud)
  • 调整 LVM-on-LUKS 的大小

    调整加密卷的大小

    现在我们将调整加密卷本身的大小。通过考虑逻辑卷的总大小减去一些安全空间:

    # resize2fs -p /dev/CryptVolumeGroup/Home 208G
    
    Run Code Online (Sandbox Code Playgroud)