如何配置 LUKS 密码的等待时间

如何配置 LUKS 密码的等待时间

我的/home分区(在 Linux Debian 测试中)是用 LUKS 加密的。

$ mount|grep home
/dev/mapper/home-crypt on /home type ext4 (rw,relatime)

配置通过/etc/crypttab

home-crypt UUID=830807e5-01fb-4d82-b2ce-c2e51b176560 none luks,timeout=180

home在启动过程中,根据提示需要LUKS 密码来解密我的分区。但该提示混合在其他内核/系统日志中

如何添加一个等待的时间以便在启动过程中在所有其他日志记录之后显示此提示?

答案1

您可以通过指定一个 systemd 服务单元来延迟 LUKS 加密分区的挂载,该服务单元在继续解锁和挂载之前等待设定的时间。

  1. 创建一个自定义的systemd服务文件,例如/etc/systemd/system/delay-luks-prompt.service,并添加以下内容:
[Unit]
Description=Delay for LUKS prompt
After=local-fs.target

[Service]
ExecStart=/bin/sleep 30
Type=oneshot

[Install]
WantedBy=multi-user.target

这将导致 30 秒的延迟。

  1. 添加此自定义服务作为 的依赖项,以[email protected]确保它等待延迟:

编辑文件并找到该部分。添加行:/lib/systemd/system/[email protected][Unit]

After=delay-luks-prompt.service

您的[Unit]部分可能如下所示:

[Unit]
Description=Cryptography Setup for %I
Documentation=man:[email protected](8) man:crypttab(5)
DefaultDependencies=no
Conflicts=umount.target
Before=umount.target
After=cryptsetup-pre.target
After=delay-luks-prompt.service
BindsTo=dev-mapper-%i.device
...
  1. 启用并启动自定义服务:
systemctl enable delay-luks-prompt.service
systemctl start delay-luks-prompt.service
  1. 重新生成你的 initramfs:
update-initramfs -u
  1. 重新启动并测试。

这应该会导致/home分区的 LUKS 密码提示延迟 30 秒,从而允许首先显示其他启动日志。

请记住在进行更改之前备份文件

相关内容