纠正未对齐的加密分区

纠正未对齐的加密分区

我使用 dm-crypt/LUKS 加密了我的 SSD,以便在 LVM 容器中安装 Archlinux。以下是结构图(法语,但应该可以理解):

1

现在我意识到我应该调整分区以获得更好的 SSD 性能(例如这里解释)。

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63      481949      240943+  83  Linux
/dev/sda2          481950   250069679   124793865   83  Linux

我的问题是:我可以(以及如何)纠正分区错位吗?还是应该重新安装所有内容?知道第二个分区已加密并包含 LVM 容器。

答案1

问题是,您必须缩小 cryptsetup luks 容器,而这目前是不可能的(可以增大,但不能缩小)。

因此,您必须重新安装所有内容或使用 USB 驱动器中的救援 Linux,并执行以下操作:

  1. 备份所有 LV 的内容
  2. 删除卷组和逻辑卷
  3. 删除 cryptsetup 容器
  4. 对齐分区(这意味着删除旧的并创建新的对齐分区)
  5. 创建 cryptsetup 容器(参见下面的注释 1)
  6. 创建对齐的 PV(参见下文注释 2)
  7. 创建 VG
  8. 创建所有需要的 LV
  9. 创建文件系统
  10. 恢复您的数据/系统

注1:请记住,您至少不应该对齐您的分区,您应该对齐您的 SSD 或 4KB 扇区 HDD 上的每个容器/块设备。

要正确对齐 4KB 扇区驱动器的 cryptsetup 容器,请使用以下公式:

alignment (512Byte sectors) = (sector size (Byte)) / 512

alignment (512Byte sectors) = (4KB * 1024) / 512 = 8

因此您应该将以下内容添加到您的 cryptsetup 命令中:--align-payload=8

笔记2:要创建对齐的 PV,您应该确保 PV 数据的开始(pe_start)与完整的 4KB 扇区宽度边界对齐。

请记住,您的 physicalextentsize(您可以在创建 VG 时指定)应该是您的对齐的倍数。

因此您应该将以下内容添加到 pvcreate 命令中:--dataalignment 8s

相关内容