启用全盘加密对于移动设备(手机、笔记本)的必要性无须多言,就算防不住条子防不住六扇门,也可以防防修电脑的人(参考陈冠希艳照门),防防手机、笔记本被偷导致的数据泄露。
此外,目前一些品牌笔记本原装系统已经默认启用了 Bitlocker 全盘加密,对于这样的笔记本,如果你想装双系统,同时不想关闭 Bitlocker,那么为 Linux 系统配置启用 Secure Boot 便是必须的。
本文将简单记录一下:如何一步步为新系统安装 systemd-boot 引导同时启用 Secure Boot 的具体操作流程,希望对各位有所帮助。
首先要禁用 Secure Boot ,这就不用多说了。
以下步骤操作针对 /boot
分区同时为 ESP 分区的情况。
第一步:安装 systemd-boot
安装 EFI boot manager
然后你应当看到 /boot/EFI/systemd/systemd-bootx64.efi
、/boot/EFI/EFI/BOOT/BOOTX64.EFI
两个文件了。
使用 efibootmgr --verbose
应当也能看到 systemd-boot 的启动项。
然后在 /boot/loader
目录添加相应的配置文件,systemd-boot 并不能像 grub 那样自动生成配置文件。
添加 /boot/loader/entries/linux.conf
title Arch Linux linux /vmlinuz-linux initrd /amd-ucode.img initrd /initramfs-linux.img options loglevel=3 root="LABEL=arch_os" rw
添加 /boot/loader/entries/linux-fallback.conf
title Arch Linux (fallback initramfs) linux /vmlinuz-linux initrd /amd-ucode.img initrd /initramfs-linux-fallback.img options loglevel=3 root="LABEL=arch_os" rw
需要安装 amd-ucode
,且以上仅为示例,请根据自己情况修改 options 。
添加 /boot/loader/loader.conf
然后重启系统,确认 systemd-boot
可以正常工作后进入下一步
第二步:安装 shim
安装 shim-signed
、sbsigntools
。
复制文件
第三步:添加 EFI 启动项
第四步:生成 MOK 密匙
openssl req -newkey rsa:4096 -nodes -keyout MOK.key -new -x509 -sha256 -days 3650 -subj "/CN=my Machine Owner Key/" -out MOK.crt openssl x509 -outform DER -in MOK.crt -out MOK.cer
将 MOK.cer
复制至 /boot/MOK.cer
。
将 MOK.cer
复制至 /etc/mok/MOK.cer
。
将 MOK.crt
复制至 /etc/mok/MOK.key
,特别注意文件权限。
第五步:签名启动器及内核
签名 systemd-boot
签名内核
第六步:添加 pacman hook
/etc/pacman.d/hooks/999-sign_kernel_for_secureboot.hook
[Trigger] Operation = Install Operation = Upgrade Type = Package Target = linux Target = linux-lts Target = linux-hardened Target = linux-zen [Action] Description = Signing kernel with Machine Owner Key for Secure Boot When = PostTransaction Exec = /usr/bin/find /boot/ -maxdepth 1 -name 'vmlinuz-*' -exec /usr/bin/sh -c 'if ! /usr/bin/sbverify --list {} 2>/dev/null | /usr/bin/grep -q "signature certificates"; then /usr/bin/sbsign --key /etc/mok/MOK.key --cert /etc/mok/MOK.crt --output {} {}; fi' ; Depends = sbsigntools Depends = findutils Depends = grep
第七步:启用 Secure Boot
重启系统,启用 Secure Boot。
开机时按 F12 选择启动项 shim。
初次启动时会让你导入 MOK,导入成功后再次重启。
如果能正常进入系统,即完成 Secure Boot 的设置,可以进入 BIOS 将默认启动项设为 shim 。
可选项:将密钥导入 TPM
启动全盘加密之后,一个使用的问题的每次启动都需要输入解密密码,虽然不是很麻烦,但每次启动都要输入还是有一点点麻烦的。
将加密密钥导入 TPM,便可以像 Windows 那样,启动时自动解密。
当然这样做会降低系统的安全性。
后记
本文仅仅是一篇简单的操作记录,更多内容还请参考 Arch Linux wiki。