为什么“systemctl start”要求输入磁盘加密密码?

为什么“systemctl start”要求输入磁盘加密密码?

我正在从头开始安装 Fedora 24 并将其写在https://github.com/barrycarter/bcapps/blob/master/FEDORA/README

我已经重新安装了很多次(甚至尝试过 CentOS 7 但放弃了),但最近遇到了问题。当我做:

sudo systemctl start postgresql mysqld nagios dnsmasq httpd sendmail

(或者甚至是其中任何一个,例如“sudo systemctl start nagios”),我得到:

Please enter passphrase for disk STxxxxxx-xxxxxx (luks)! *

问题:我已经在启动时输入了磁盘密码,并确认我的主安装驱动器(SSD)和其他硬盘驱动器都正常运行。无需再次询问 luks 密码!

我显然可以通过稍后“手动”运行这些命令来解决这个问题,但这似乎有点问题。有解决办法吗?我做错了什么吗?

注意:我意识到我的磁盘号可能不是私有的,但我还是忽略了它。

答案1

我想我已经找到了这个问题的部分答案。

情况是这样的。自从上次重新启动系统以来,我umount已经cryptsetup luksClose创建了一个加密卷。我还注释掉了它的行/etc/crypttab并将其更改/etc/fstabnoauto

后来,我运行sudo systemctl start my-oneshot并(我猜)systemd注意到它为其生成单元的文件系统之一不再安装,因此它尝试启动systemd-cryptsetup@volumename_unlk.service,由于某种原因,它不使用映射名称“volumename_unlk”,而是使用使用“temporary-cryptsetup-1234”或其他一些 4 位数字。

结果,设备失败并在我下次尝试运行时尝试重新启动systemctl start my-oneshot并继续要求输入密码。

我还很困惑吗?是的。但至少已经带来了一些清晰度。我怀疑重新启动可以通过允许systemd重新生成加密设备和安装点的单元来解决这个问题。当我有机会重新启动时,我会在这里更新。

编辑:

是的,重新启动后,有问题的 cryptsetup 单元不再存在,并且在启动 oneshot 单元时不会询问我的密码。

答案2

无需重新启动即可解决此类情况的命令是

systemctl daemon-reload

如果您对它们进行了更改,它不仅会重新加载所有单元文件,还会重新运行所有单元生成器。这正是您对/etc/crypttaband/or进行更改后想要的/etc/fstab

相关内容