如何缩小 LUKS 分区,“cryptsetup resize”有什么作用?

如何缩小 LUKS 分区,“cryptsetup resize”有什么作用?

我正在调整包含单个 ext4 文件系统(没有 LVM 等)的 LUKS 加密分区的大小。这密码设置常见问题解答建议删除旧分区并重新创建它,但这听起来浪费了很多时间。因此,我想继续手动、仔细地调整分区大小。

到目前为止,我认为我需要做的是:

  1. 创建文件系统的(加密)备份。重要的!在执行以下任务时,您不会是第一个丢失数据的人。
  2. 卸载现有的 ext4 文件系统(例如通过启动 Live CD)。如果从 Live CD 启动,请使用以下命令挂载加密分区cryptsetup luksOpen /dev/sdXY ExistingExt4
  3. 调整现有 ext4 文件系统的大小
  4. cryptsetup resize /dev/mapper/ExistingExt4 -b $SECTORS
  5. 使用以下命令关闭/“卸载”LUKS 分区cryptsetup luksClose ExistingExt4
  6. 缩小分区大小。

以上步骤正确吗?

在步骤 4 中,我应该选择什么$SECTORS?这一步还有必要吗?手册cryptsetup页并没有真正描述该resize选项:

resize <name>
    resizes an active mapping <name>.
    If --size (in sectors) is not specified, the size of the underlying
    block device is used.

最后,如果我将 ext4 分区缩小 15 GiB,我可以安全地假设可以使用从现有分区中删除 15 GiBparted吗?如果是,该怎么做?我的磁盘是 GPT 分区的(如果有的话)。

答案1

备份(第 1 步)和卸载(第 2 步和第 3 步之间)后,运行fsck以确保文件系统正常:

e2fsck -f /dev/mapper/ExistingExt4

除此之外,步骤就OK了。

cryptsetup resize命令的目的

我应该为 $SECTORS 选择什么?这一步还有必要吗?

此步骤是必要的,否则分区仍会显示在旧一侧。 Nautilus 证实了这一点,即使在使用 调整大小后resize2fs,LUKS 分区仍显示为旧大小。运行后cryptsetup resize,显示正确的数字。 此步骤不是必需的。它仅影响文件浏览器中显示的当前大小状态。更改大小并再次关闭/打开分区后,数量恢复。因此,当关闭 LUKS 分区(如稍后所示)时,此操作将变得过时。

$SECTORS可以通过查看以下输出来确定cryptsetup status ExistingExt4

    /dev/mapper/ExistingExt4 处于活动状态。
      类型:LUKS1
      密码:aes-cbc-essiv:sha256
      密钥大小:256 位
      设备:/dev/sda2
      扇区大小:  第512章
      偏移量:2056 个扇区
      尺寸:    156049348部门
      模式:读/写

(作为cryptsetup 2.0.0(2017 年 12 月),扇区大小可能大于 512 字节:请参阅cryptsetup(8)联机帮助页--sector-size选项。)

因此,要减去 15 GiB,请使用扇区大小156049348 - 15 * 1024 * 1024 * 2 = 124592068

cryptsetup resize ExistingExt4 -b 124592068

调整分区大小parted

至于调整分区大小,partedGPT 分区效果很好。但是,该resize命令不起作用,作为解决方法(或解决方案),请删除分区信息并创建一个新分区,灵感来自http://ubuntuforums.org/showthread.php?p=8721017#post8721017:

#cryptsetup luks关闭现有Ext4
#分开/dev/sda2
GNU 分开 2.3
使用/dev/sda
欢迎来到 GNU Parted!键入“help”以查看命令列表。
(分手)单位
(分手)p
型号:ATA INTEL SSDSA2CW08 (scsi)
磁盘/dev/sda:156301488s
扇区大小(逻辑/物理):512B/512B
分区表:gpt

编号 开始 结束 大小 文件系统名称 标志
 1 34s 2082s 2049s 启动bios_grub
 3 2083s 250034s 247952s ext2 根引导
2 250035s 156301438s 156051404s 全部

由于必须削减 15 GiB,因此新的末端变为156301438 - 15 * 1024 * 1024 * 2 = 124844158.由于我想更改分区 2,因此我首先必须将其删除,然后使用标签“Everything”重新创建它(如果您愿意,可以更改)。笔记:该磁盘具有 GPT 布局。对于 MBR,您应该替换Everythingprimaryextended(未经测试,调整 MBR 上的分区大小已不是已经过测试并且是不是推荐,因为它未经测试)。

警告:以下命令有毁坏的数据。在不了解发生的情况之前请勿复制它。部门规模必须被改变,否则你将要销毁您的分区。我对你的愚蠢不承担任何责任备份 备份 备份您的数据到第二在您的数据面临风险之前先检查存储介质。

(分手)2令吉
(分手)mkpart 一切 250035s 124844158s
警告:生成的分区未正确对齐以获得最佳性能。
忽略/取消?忽略
(分手)p
型号:ATA INTEL SSDSA2CW08 (scsi)
磁盘/dev/sda:156301488s
扇区大小(逻辑/物理):512B/512B
分区表:总表

编号 开始 结束 大小 文件系统名称 标志
 1 34s 2082s 2049s 启动bios_grub
 3 2083s 250034s 247952s ext2 根引导
 2 250035秒  124844158s 124594124s               一切
(分手)辞职

在上面的parted例子中,我的扇区没有对齐,这是早期安装时的错误,不要太在意。

这就对了!您可以使用cryptsetup statusfile -Ls /dev/...来验证一切正常,然后重新启动。

答案2

注意KDE 分区管理器 2.2.0可以执行这些步骤,并且调整 LUKS 分区大小效果很好。

相关内容