所以我正在使用该文档安装一个新的 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(可选)。