
我有一個「防彈」的 Arch Linux 安裝,其結構如下:
/dev/sda1
:FAT32 EFI分割區:掛載為/boot/efi/dev/sda2
:LUKS加密的ext4分割區:掛載為/boot(提示密碼)/dev/sda3
:加密交換分割區/dev/sda4
:包含根檔案系統的加密zpool(提示密碼)
系統啟動並運行,但某些功能無法正常運作。啟動時 systemd 抱怨載入週期錯誤,但真正的問題是我必須輸入密碼/dev/sda2
兩次密碼(一次用於 GRUB,一次用於 Linux)。我用了本指南設定一個密鑰檔案來解鎖/dev/sda2
,但沒有骰子,它仍然要求輸入密碼。
這是我的鉤子順序mkinitcpio.conf
:
base udev autodetect modcont block keyboard zfs encrypt filesystems
zfs
我嘗試顛倒和的順序encrypt
,但這產生了一個不同的問題,它不會設定我的交換分區(它也可能弄亂了 GRUB [我假設它無法掛載 /boot?],我不得不重新啟動到archiso 來修復它)。無論如何它並沒有解決我的問題,我仍然必須輸入 /dev/sda2 的密碼兩次。
我的crypttab
:
cswap /dev/sda3 /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256
我的核心參數在/etc/default/grub
:
GRUB_CMDLINE_LINUX="zfs=zroot/ROOT/default rw cryptdevice=/dev/sda2:cboot"
我的fstab
:
# Static information about the filesystems.
# See fstab(5) for details.
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/mapper/cboot
/dev/mapper/cboot /boot ext4 rw,relatime 0 2
# /dev/sda1
UUID=CE42-9249 /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=re
mount-ro 0 2
# /dev/mapper/cswap
/dev/mapper/cswap none swap defaults 0 0
啟動時,系統在要求/dev/sda2
我輸入/dev/sda4
's 之前先要求我輸入密碼(即使我交換了 中的鉤子順序mkinitcpio.conf
)。
經過一些研究後,問題似乎是 ZFS 的 systemd 目標要求在執行任何操作之前解鎖加密分區,但我不知道如何修復它。