使用 LUKS 设置加密卷
LUKS 允许加密分区并将其映射为虚拟块设备,然后可以像普通分区一样使用。其他 Linux 发行版的指南可以作为在 LUKS 加密磁盘上安装 Alpine 的一般参考。
安装程序内置了对加密的支持。默认安装程序不会加密交换分区和启动分区。要设置带有加密交换分区的 Alpine Linux,请参阅 LVM on LUKS。GRUB 引导加载程序支持 BIOS 和 EFI 启动以及加密的启动分区。
在启动时解密非根卷
与其他 Linux 发行版不同,Alpine 不使用文件 /etc/crypttab
。相反,要让加密卷在通过 /etc/fstab
自动挂载到某处之前被解密,您必须在 /etc/conf.d/dmcrypt
中配置 dmcrypt
。该文件内部的注释应该会指导您,但作为一个简单的示例,以下是您应该在该文件中包含的内容,以解密并将分区映射到名为“myvolume
”的卷,给定其 UUID(此处使用一系列 X
表示),使用密码短语
target=myvolume source=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
然后在 /etc/fstab
中,您将包含以下行
/dev/mapper/myvolume <path> <fstype> <options>
代入正确的参数。
mkinitfs 和 LUKS
对于那些熟悉在其他 Linux 发行版上设置 FDE 的人来说,本节仅包含理解 mkinitfs 所需的 Alpine 特定知识。
首先,需要将 cryptsetup
功能添加到 /etc/mkinitfs/mkinitfs.conf。此外,还需要以下内核参数
cryptroot
内核参数应指向加密的块设备。cryptdm
:将赋予设备的名称。root
内核参数应指向映射的块设备:/dev/mapper/<name used in cryptdm>
。rootfstype
:根分区的文件系统类型(例如:btrfs
)。
例如,如果您将 grub 与 GPT 分区表、无 LVM 和 ext4 结合使用,您将在 /etc/default/grub 中拥有
GRUB_TIMEOUT=2 GRUB_DISABLE_SUBMENU=y GRUB_DISABLE_RECOVERY=true GRUB_CMDLINE_LINUX_DEFAULT="modules=sd-mod,usb-storage,ext4 quiet rootfstype=ext4 cryptroot=UUID=a7dc90c4-6746-417e-b25b-cb8769ee6334 cryptdm=alpine-rootfs root=/dev/mapper/alpine-rootfs" GRUB_PRELOAD_MODULES="luks cryptodisk part_gpt" GRUB_ENABLE_CRYPTODISK=y