![Arch Linux - 如何在初始化期间解密并自动挂载多个加密驱动器?](https://linux22.com/image/124403/Arch%20Linux%20-%20%E5%A6%82%E4%BD%95%E5%9C%A8%E5%88%9D%E5%A7%8B%E5%8C%96%E6%9C%9F%E9%97%B4%E8%A7%A3%E5%AF%86%E5%B9%B6%E8%87%AA%E5%8A%A8%E6%8C%82%E8%BD%BD%E5%A4%9A%E4%B8%AA%E5%8A%A0%E5%AF%86%E9%A9%B1%E5%8A%A8%E5%99%A8%EF%BC%9F.png)
我有两个加密驱动器(一个用于启动的 SSD 和一个用于存储的硬盘驱动器),我需要在所有运行级别程序/服务之前解锁并安装这两个驱动器。否则,当我的一些服务找不到我的存储驱动器时,他们会崩溃。
目前,当我从完全加密的驱动器启动时,我得到以下信息:
A password is required to access the root volume:
Enter passphrase for /dev/sda1
我想要发生的是:
A password is required to access the root volume:
Enter passphrase for /dev/sda1
Enter passphrase for /dev/sdb1
因此,我输入 /dev/sda1 的密钥,然后输入 /dev/sdb1 的密钥,然后安装 /dev/sdb1。此后系统继续启动。
答案1
jasonwryan 的解决方案适用于大多数用户,因此如果有人正在阅读本文并使用带有 systemd 的 Arch Linux(vanilla Arch Linux),那么就这样做。
然而,就我而言,我使用 OpenRC。我跟着这个 Gentoo 维基指南虽然我不太确定“target=”行的含义。
为了手动解锁我的设备,我运行“cryptsetup luksOpen /dev/sdb1 lvm”,因为它有一个 LVM 分区,并且根据 IRC,luksOpen 命令的格式是“cryptsetup luksOpen $source $target”。
所以我偷了Gentoo的dmcrypt OpenRC init脚本并将其粘贴到/etc/init.d/dmcrypt中。然后我窃取了默认配置文件并将其粘贴到/etc/conf.d/dmcrypt 中。然后我将以下内容添加到配置文件的底部:
target=lvm
source=UUID="insertUUIDhere"
然后我使用“rc-update add dmcrypt default”将 dmcrypt 添加到默认运行级别。
设备现在提示在启动时解密:)。