33 lines
1.3 KiB
Bash
Executable File
33 lines
1.3 KiB
Bash
Executable File
#!/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"
|
||
}
|