Lvm

使用 gpg 加密密鑰文件在 LUKS 內的 LVM 上引導 Gentoo

  • June 25, 2015

我正在嘗試在 LUKS 容器內的 LVM 邏輯卷上安裝 Gentoo,該容器使用由 GPG 和密碼片語加密的密鑰文件加密。在我嘗試啟動之前,一切都很順利。我正在使用 genkernel 建構核心和 initramfs:

genkernel --lvm --luks --install --menuconfig --busybox all   

並使用 GRUB2 引導它。因此,在我啟動核心後,我得到了找到我的密鑰文件的資訊,但在下一行中,我得到“無法打開 LUKS 設備…”,然後出現核心恐慌。知道該怎麼做嗎?

核心配置 - http://pastebin.com/YR7TfaVm

GRUB2 菜單入口:

menuentry 'Gentoo'{
root='hd1,gpt1'
linux /kernel-genkernel-x86_64-3.17.7-gentoo initrd=/dev/ram0 crypt_root=/dev/disk/by-partuuid/PARTUUID_OF_LUKS_CONTAINTER_PARTION dolvm real_root=/dev/mapper/vg1-root rootfstype=ext4 real_init=/usr/lib/systemd/systemd root_keydev=/dev/disk/by-partuuid/PARTUUID_OF_MY_PENDRIVE_WITH_KEY root_key=luks-key.gpg
initrd /initramfs-genkernel-x86_64-3.17.7-gentoo
echo "initing..."
}

在將核心版本更改為 3.10 並將 gpg 版本更改為舊版本後,我的問題得到了解決,這不需要 pinentry 工作並且我靜態編譯。儘管在新版本中我檢查了所有內容兩次,但 pinentry 似乎總是存在問題。另外我認為 genkernel 沒有自動包含 pinentry 。我必須自己包括它。

所以總結一下:

  • 檢查您的 gpg 版本是否需要 pinentry(我的情況是我恢復到舊版本來製作 initrd)
  • 考慮更穩定的核心版本
  • 考慮靜態編譯 gpg
  • 即使您使用了類似 genkernel 的東西,也要在生成 initrd 後檢查所有庫依賴項

引用自:https://unix.stackexchange.com/questions/183666