使用 dm-crypt 全系统加密 (BIOS) 安装后无法启动 Arch Linux

使用 dm-crypt 全系统加密 (BIOS) 安装后无法启动 Arch Linux

所以我正在使用该文档安装一个新的 Arch这里用于整个系统加密。

我感到困惑的第一部分是这里该文件写道:

警告:GRUB 不支持 LUKS2。不要在 GRUB 需要访问的分区上使用 LUKS2。

但在本节的后面部分,它告诉我运行命令cryptsetup luksFormat /dev/sda3。但是当我运行它时,它要求输入密码,但它不是说 GRUB 不支持 LUKS2 吗?

后来我输入密码,一直往下走grub 安装我运行它grub-mkconfig -o /boot/grub/grub.cfg并说filaed to connect lvmetad,但由于它是警告,所以我忽略了它。

后来我经历了这个过程,直到最后部分没有任何错误。

但然后我退出arch-chroot并重新启动,但它无法启动,它跳到下一个操作系统(在我的例子中是 Windows 10),为什么?我哪一部分做错了?怎么解决呢?

PS 这是我的磁盘与命令的表格lsblk

NAME                 SIZE     TYPE    MOUNTPOINT
sda                  114.6G   disk    
  sda1               4G       part
  sda2               4G       part    /mnt/boot/efi
  sda3               16G      part    
    cryptboot        16G      crypt   /mnt/boot
  sda4               90.6G    part    
    lvm              90.6G    crypt
      AALEvol-swap   8G       lvm     [SWAP]
      AALEvol-root   82.6G    lvm     /mnt

答案1

GRUB(当前)不支持 LUKS2,因此 /boot 无法进行 LUKS2 加密。

cryptsetup(自版本 2.1.0 起)默认创建 LUKS2,除非发行版打包程序另有指定。所以目前ArchLinux默认生成LUKS2容器。

https://gitlab.com/cryptsetup/cryptsetup/blob/master/docs/v2.1.0-ReleaseNotes:

Cryptsetup 2.1 版本使用新的磁盘上 LUKS2 格式作为默认 LUKS 格式,并增加了默认 LUKS2 标头大小。

传统 LUKS(称为 LUKS1)将永远得到完全支持,以及传统且完全向后兼容的格式。

升级稳定发行版时,请使用配置选项 --with-default-luks-format=LUKS1 以保持向后兼容性。

您可以检查 LUKS2 是否是您的 cryptsetup 风格的默认设置:

$ cryptsetup --help
[...]
Default compiled-in metadata format is LUKS2 (for luksFormat action).

Default PBKDF for LUKS2: argon2i
    Iteration time: 2000, Memory required: 1048576kB, Parallel threads: 4

一般来说,只要您了解注意事项(例如 GRUB 兼容性或 luksOpen 阶段内存使用过多),就没有充分的理由避免使用 LUKS2。

如果您出于任何原因想坚持使用 LUKS1,只需指定它:

# cryptsetup luksFormat --type luks1 /dev/sdx9

答案2

在硬盘驱动器的开头创建一个分区,其大小应在 600 MB 到 1GB 之间,并在 Linux 设置中将该分区标记为/启动分割。您不应该加密启动分区,因为任何潜在的敏感数据都不会写入其中。

如果您想在重新分区之前擦除整个硬盘驱动器,我建议您使用fdisk -l |更多的列出所有硬盘驱动器及其上的所有分区,然后当您找到该驱动器时 dd if=/dev/urandom of=/dev/sd(X)其中 X 是您的 HDD 盘符。

然后创建其他将被加密的分区:1./SWAP、2./ROOT 和 3./HOME(可选)。

相关内容