为 Arch Linux 配置安全启动
上次更新时间:2026-06-20
我们要为 Arch Linux 配置安全启动,使用 systemd-boot 作为引导管理器。
安装工具
bash
sudo pacman -S sbsigntools mokutil创建一个保存证书的目录(请妥善保管该目录),并安装由 Fedora 签名的 shim
bash
mkdir Secure_Bootbash
cd Secure_Bootbash
git clone https://aur.archlinux.org/shim-signed.gitbash
cd shim-signedbash
makepkg -sir替换引导管理器
bash
cp "/usr/share/shim-signed/shimx64.efi" "/boot/EFI/BOOT/BOOTX64.EFI"bash
cp "/usr/share/shim-signed/mmx64.efi" "/boot/EFI/BOOT/MMX64.EFI"生成自己的证书
bash
openssl req \
-new \
-x509 \
-newkey rsa:4096 \
-keyout MOK.key \
-out MOK.crt \
-nodes \
-days 3650 \
-subj "/CN=Custom/"此处的 Custom 可被替换为任意内容。
转换证书
bash
openssl x509 \
-outform DER \
-in MOK.crt \
-out MOK.cer导入证书并设置临时密码
bash
sudo mokutil --import MOK.cer重启电脑并输入刚才的临时密码
bash
reboot签名 systemd-boot 和 Linux 内核镜像
bash
sbsign \
--key MOK.key \
--cert MOK.crt \
--output systemd-bootx64.efi \
/boot/EFI/systemd/systemd-bootx64.efibash
sbsign \
--key MOK.key \
--cert MOK.crt \
--output vmlinuz-linux-zen \
/boot/vmlinuz-linux-zen如果是其他内核请替换 vmlinuz-linux-zen。
复制 systemd-boot 和 Linux 内核镜像
bash
sudo cp systemd-bootx64.efi /boot/EFI/BOOT/GRUBX64.EFIbash
sudo cp vmlinuz-linux-zen /boot/vmlinuz-linux-zen检查命令
检查证书是否导入
bash
sbverify --list XX.der检查启动状态
bash
bootctl status检查证书
bash
sudo mokutil --list-enrolled清除处于 BIOS 的 NVRAM 中的 MOK 证书
设置临时修改密码
bash
sudo mokutil --reset重启电脑
bash
reboot之后在 shim 的界面输入密码,移除所有密钥。