melawy-dracut-module-luks-u.../usr/lib/dracut/modules.d/99luks-unlock-shell/module-setup.sh

33 lines
1.3 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Проверка зависимостей: модуль загрузится только если в образе есть сеть и крипто-стек
check() {
require_binaries cryptsetup || return 1
return 0
}
# Описываем зависимости от других системных модулей dracut
depends() {
echo "systemd-networkd sshd crypt"
return 0
}
# Главный конвейер сборки: указываем, что физически запечь в initramfs
install() {
# 1. Затягиваем сам исполняемый файл шелла разблокировки
inst_multiple /usr/bin/luks-unlock-shell
# 2. Интегрируем наш кастомный SSH-конфиг и таблицы fstab
if [ -f /etc/crypto-sshd_config ]; then
inst_simple /etc/fstab
inst_simple /etc/crypto-sshd_config
fi
# КЛЮЧЕВОЙ ПРОБРОС: Жестко впекаем хост-ключи хоста в ОЗУ рамдиска
inst_simple /etc/ssh/ssh_host_rsa_key
inst_simple /etc/ssh/ssh_host_ed25519_key
# 3. Регистрируем рантайм-хук очистки перед pivot_root
inst_hook pre-pivot 90 "$moddir/luks-unlock-cleanup.sh"
}