我最近安装了 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-encrypt
in后我还应该做什么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
或类似的东西。