将 Arch 从加密迁移到 sd-crypt

将 Arch 从加密迁移到 sd-crypt

我最近安装了 Antergos(基本上是 Arch)并将其设置为使用全盘加密。现在,我想从 迁移encrypt到 ,sd-encrypt因为我希望能够休眠,并且无法将交换分区放在同一个 LUKS 卷中。

背景

在设置过程中:

  • 我使用LUKS进行/分区和交换分区,
  • 因为我的主 SSD 很小,我希望能够休眠,并且我有 32GB RAM,所以我在第二个驱动器上创建了加密交换分区,
  • 我安装了交换分区(以及第二个驱动器中的另一个加密的 EXT4 分区)/etc/crypttab

我测试了安装是否有效,grub 让我启动到 Linux 和双启动 Windows,在 Linux 启动时它会解密并安装两个加密驱动器。

然而,我收到了关于未找到具有交换驱动器 UUID 的磁盘的错误,Arch 手册确认encrypt我从安装程序获得的信息只能在启动过程中处理一个加密分区。如果我想处理更多的问题,我应该转移到sd-encrypt.然而,即使在阅读了文档之后,我也不确定我必须做什么才能迁移到sd-encrypt.

细节

  • HOOKS="base udev autodetect modconf block keyboard keymap encrypt resume filesystems fsck"
  • GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=UUID=[encrypted swap UUID]"
  • GRUB_CMDLINE_LINUX=cryptdevice=/dev/disk/by-uuid/[/ UUID]:Arch_crypt
  • GRUB_ENABLE_CRYPTODISK=y
  • /etc/crypttab

      swap_crypt /dev/disk/by-uuid/[/ UUID] password_file luks
      data_crypt /dev/disk/by-uuid/[/ UUID] password_file luks
    

encrypt更改为sd-encryptin后我还应该做什么HOOKS?我必须创建/etc/crypttab.initramfs并移动swap_crypt到那里吗?我必须更改luks为吗rd.luks?交换分区和/分区都使用相同的密码,因此根据文档,在我输入一次密码后,两者都应该在启动时挂载,对吗?文档提到了参数luks.*rd.luks.*类似的内容 - 我是否必须使用它们,如果是的话,我应该把它们放在哪里?

答案1

我自己不使用 Grub(但使用 Arch 和 sd-encrypt),但从我的内核选项来看,我想您必须将配置转换为如下所示(不要忘记在切换之前备份旧配置)。

HOOKS="base systemd autodetect modconf block keyboard sd-vconsole sd-encrypt resume filesystems fsck"

GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=UUID=[decrypted swap UUID]" 
# I use resume=/dev/mapper/name-of-decrypted-device

GRUB_CMDLINE_LINUX=luks.uuid=[/ encrypted UUID] luks.uuid=[swap encrypted UUID]
GRUB_ENABLE_CRYPTODISK=y

/etc/crypttab

  swap_crypt /dev/disk/by-uuid/[/ UUID] password_file luks
  data_crypt /dev/disk/by-uuid/[/ UUID] password_file luks

mkinitcpio -p linux一旦完成 HOOKS 的修改,不要忘记运行或等效的命令来重新生成 initramfs。和 grub.cfg 文件grub-mkconfig -o /boot/grub/grub.cfg或类似的东西。

相关内容