เจเจนเจพเจฃเฉ เจฌเจนเฉเจค เจธเจฎเจพเจ เจชเจนเจฟเจฒเจพเจ เจธเจผเฉเจฐเฉ เจนเฉเจ เจธเฉ, เจเจฆเฉเจ Centos 7 (RHEL 7) เจฐเจฟเจฒเฉเจเจผ เจนเฉเจ เจธเฉเฅค เจเฉเจเจฐ เจคเฉเจธเฉเจ Centos 6 เจจเจพเจฒ เจกเจฐเจพเจเจตเจพเจ 'เจคเฉ เจเจจเจเฉเจฐเจฟเจชเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจธเฉ, เจคเจพเจ เจเจฆเฉเจ เจคเฉเจธเฉเจ เจเจผเจฐเฉเจฐเฉ เจเฉเฉฐเจเฉเจเจ เจจเจพเจฒ USB เจซเจฒเฉเจธเจผ เจกเจฐเจพเจเจต เจจเฉเฉฐ เจเจจเฉเจเจ เจเจฐเจฆเฉ เจนเฉ, เจคเจพเจ เจกเฉเจฐเจพเจเจต เจฆเฉ เจเจเฉเจฎเฉเจเจฟเจ เจ
เจจเจฒเฉเจเจฟเฉฐเจ เจตเจฟเฉฑเจ เจเฉเจ เจธเจฎเฉฑเจธเจฟเจ เจจเจนเฉเจ เจธเฉเฅค เจนเจพเจฒเจพเจเจเจฟ, เจเจฆเฉเจ 7 เจจเฉเฉฐ เจฐเจฟเจฒเฉเจเจผ เจเฉเจคเจพ เจเจฟเจ เจธเฉ, เจ
เจเจพเจจเจ เจธเจญ เจเฉเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจเฉฐเจฎ เจจเจนเฉเจ เจเจฐเจฆเจพ เจธเฉ เจเจฟเจตเฉเจ เจคเฉเจธเฉเจ เจเจฐเจฆเฉ เจธเฉเฅค เจซเจฟเจฐ เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจฒเจพเจเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจกเจฐเจพเจเจ เจจเฉเฉฐ เจธเจฟเจธเจตเจฟเจจเจฟเจ เจตเจฟเฉฑเจ เจตเจพเจชเจธ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจนเฉฑเจฒ เจฒเฉฑเจญเจฃเจพ เจธเฉฐเจญเจต เจธเฉ: echo โomit_dracutmodules+=" systemd "โ > /etc/dracut.conf.d/luks-workaround.conf
เจเจฟเจธ เจจเฉ เจคเฉเจฐเฉฐเจค เจธเจพเจจเฉเฉฐ เจธเจฟเจธเจเจฎเจก - เจธเจฟเจธเจเจฎ เจธเฉเจตเจพเจตเจพเจ เจฆเฉ เจคเฉเจเจผ เจ
เจคเฉ เจธเจฎเจพเจจเจพเจเจคเจฐ เจธเจผเฉเจฐเฉเจเจค เจฆเฉ เจธเจพเจฐเฉ เจธเฉเฉฐเจฆเจฐเจคเจพ เจคเฉเจ เจตเจพเจเจเจพ เจเจฐ เจฆเจฟเฉฑเจคเจพ, เจเจฟเจธ เจจเจพเจฒ เจธเจฟเจธเจเจฎ เจฆเฉ เจธเจผเฉเจฐเฉเจเจคเฉ เจธเจฎเฉเจ เจตเจฟเฉฑเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจเจฎเฉ เจเจเฅค
เจเฉเจเจผเจพเจ เจ
เจเฉ เจตเฉ เจเจฅเฉ เจนเจจ:
เจเจฟเจธเฉ เจนเฉฑเจฒ เจฆเฉ เจเจกเฉเจ เจเฉเจคเฉ เจฌเจฟเจจเจพเจ, เจฎเฉเจ เจเจธเจจเฉเฉฐ เจเจชเจฃเฉ เจฒเจ เจฌเจฃเจพเจเจ เจนเฉ, เจ
เจคเฉ เจนเฉเจฃ เจฎเฉเจ เจเจธเจจเฉเฉฐ เจเจจเจคเจพ เจจเจพเจฒ เจธเจพเจเจเจพ เจเจฐ เจฐเจฟเจนเจพ เจนเจพเจ, เจเฉ เจฆเจฟเจฒเจเจธเจชเฉ เจฐเฉฑเจเจฆเฉ เจนเจจ, เจชเฉเฉเจนเฉเฅค
เจเจพเจฃ เจชเจเจพเจฃ
เจธเจฟเจธเจเจฎเจก, เจเจฆเฉเจ เจฎเฉเจ เจชเจนเจฟเจฒเฉ เจตเจพเจฐ Centos 7 เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเฉเจคเจพ, เจเฉเจ เจญเจพเจตเจจเจพเจตเจพเจ เจชเฉเจฆเจพ เจจเจนเฉเจ เจเฉเจคเฉเจเจ, เจเจฟเจเจเจเจฟ เจธเฉเจตเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจธเฉฐเจเฉเจเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจฎเจพเจฎเฉเจฒเฉ เจคเจฌเจฆเฉเจฒเฉ เจคเฉเจ เจเจฒเจพเจตเจพ, เจฎเฉเจจเฉเฉฐ เจชเจนเจฟเจฒเจพเจ เจฌเจนเฉเจคเจพ เจซเจฐเจ เจฎเจนเจฟเจธเฉเจธ เจจเจนเฉเจ เจนเฉเจเจเฅค เจเจธ เจคเฉเจ เจฌเจพเจ
เจฆ, เจฎเฉเจจเฉเฉฐ systemd เจชเจธเฉฐเจฆ เจเจเจ, เจชเจฐ เจชเจนเจฟเจฒเจพ เจชเฉเจฐเจญเจพเจต เจฅเฉเฉเจพ เจตเจฟเจเฉ เจเจฟเจ, เจเจฟเจเจเจเจฟ เจกเจฐเจพเจเจ เจกเจฟเจตเฉเจฒเจชเจฐเจพเจ เจจเฉ เจกเจฟเจธเจ เจเจจเจเฉเจฐเจฟเจชเจธเจผเจจ เจฆเฉ เจจเจพเจฒ เจธเจฟเจธเจเจฎเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฌเฉเจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจจ เจฒเจ เจเจผเจฟเจเจฆเจพ เจธเจฎเจพเจ เจจเจนเฉเจ เจฒเจเจพเจเจเฅค เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจเจน เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ, เจชเจฐ เจเจฆเฉเจ เจตเฉ เจธเจฐเจตเจฐ เจเจพเจฒเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ เจคเจพเจ เจกเจฟเจธเจ เจชเจพเจธเจตเจฐเจก เจฆเจพเจเจฒ เจเจฐเจจเจพ เจธเจญ เจคเฉเจ เจฆเจฟเจฒเจเจธเจช เจเฉฑเจฒ เจจเจนเฉเจ เจนเฉ.
เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจธเจฟเจซเจผเจพเจฐเจธเจผเจพเจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจจ เจ
เจคเฉ เจฎเฉเจจเฉเจ
เจฒ เจฆเจพ เจ
เจงเจฟเจเจจ เจเจฐเจจ เจคเฉเจ เจฌเจพเจ
เจฆ, เจฎเฉเจ เจฎเจนเจฟเจธเฉเจธ เจเฉเจคเจพ เจเจฟ เจธเจฟเจธเจเจฎเจก เจฎเฉเจก เจตเจฟเฉฑเจ USB เจฆเฉ เจจเจพเจฒ เจธเฉฐเจฐเจเจจเจพ เจธเฉฐเจญเจต เจนเฉ, เจชเจฐ เจธเจฟเจฐเจซเจผ USB เจกเจฟเจธเจ 'เจคเฉ เจเฉฑเจ เจเฉเฉฐเจเฉ เจจเจพเจฒ เจนเจฐเฉเจ เจกเจฟเจธเจ เจฆเฉ เจฎเฉเจจเฉเจ
เจฒ เจธเจฌเฉฐเจง เจจเจพเจฒ, เจ
เจคเฉ USB เจกเจฟเจธเจ เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจธเจฟเจฐเจซเจผ เจเจธเจฆเฉ เจฆเฉเจเจฐเจพ เจเฉเฉเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ. UUID, LABEL เจจเฉ เจเฉฐเจฎ เจจเจนเฉเจ เจเฉเจคเจพเฅค เจเจฐ เจตเจฟเฉฑเจ เจเจธ เจจเฉเฉฐ เจฌเจฃเจพเจ เจฐเฉฑเจเจฃเจพ เจฌเจนเฉเจค เจธเฉเจตเจฟเจงเจพเจเจจเจ เจจเจนเฉเจ เจธเฉ, เจเจธ เจฒเจ เจ
เฉฐเจค เจตเจฟเฉฑเจ เจฎเฉเจ เจเจกเฉเจ เจตเจฟเฉฑเจ เจกเฉเฉฑเจฌ เจเจฟเจ เจ
เจคเฉ, เจฒเจเจญเจ 7 เจธเจพเจฒเจพเจ เจฆเฉ เจเจกเฉเจ เจเจฐเจจ เจคเฉเจ เจฌเจพเจ
เจฆ, เจฎเฉเจจเฉเฉฐ เจ
เจนเจฟเจธเจพเจธ เจนเฉเจเจ เจเจฟ เจเฉเจ เจตเฉ เจธเจฎเฉฑเจธเจฟเจ เจฆเจพ เจนเฉฑเจฒ เจเจฐเจจ เจตเจพเจฒเจพ เจจเจนเฉเจ เจธเฉเฅค
เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ
เจฌเฉเจธเจผเฉฑเจ, เจฒเจเจญเจ เจเฉเจ เจตเฉ เจกเจฐเจพเจเจ เจฒเจ เจเจชเจฃเจพ เจชเจฒเฉฑเจเจเจจ เจฒเจฟเจ เจธเจเจฆเจพ เจนเฉ, เจชเจฐ เจเจธเจจเฉเฉฐ เจเฉฐเจฎ เจเจฐเจจเจพ เจนเฉเจฃ เจเฉฐเจจเจพ เจเจธเจพเจจ เจจเจนเฉเจ เจนเฉเฅค เจเจน เจชเจคเจพ เจเจฒเจฟเจ เจเจฟ เจธเจฟเจธเจเจฎเจก เจธเจเจพเจฐเจเจ เฉฑเจช เจฆเฉ เจธเจฎเจพเจจเจพเจเจคเจฐ เจธเฉเจญเจพเจ เจฆเฉ เจเจพเจฐเจจ, เจคเฉเจนเจพเจกเฉ เจเฉเจก เจจเฉเฉฐ เจธเจผเจพเจฎเจฒ เจเจฐเจจเจพ เจ เจคเฉ เจฒเฉเจกเจฟเฉฐเจ เจชเฉเจฐเจเจคเฉ เจจเฉเฉฐ เจฌเจฆเจฒเจฃเจพ เจเฉฐเจจเจพ เจเจธเจพเจจ เจจเจนเฉเจ เจนเฉ. เจกเจฐเจพเจเจ เจฒเจ เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจจเฉ เจธเจญ เจเฉเจ เจจเจนเฉเจ เจฆเฉฑเจธเจฟเจเฅค เจนเจพเจฒเจพเจเจเจฟ, เจฒเฉฐเจฌเฉ เจชเฉเจฐเจฏเฉเจเจพเจ เจคเฉเจ เจฌเจพเจ เจฆ, เจฎเฉเจ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจจ เจฆเฉ เจฏเฉเจ เจธเฉ.
เจเจฟเจฆเจพ เจเจฒเจฆเจพ
เจเจน เจคเจฟเฉฐเจจ เจฏเฉเจจเจฟเจเจพเจ 'เจคเฉ เจ เจงเจพเจฐเจค เจนเฉ:
- luks-auto-key.service - LUKS เจฒเจ เจเฉเฉฐเจเฉเจเจ เจจเจพเจฒ เจกเจฐเจพเจเจตเจพเจ เจฆเฉ เจเฉเจ เจเจฐเจฆเจพ เจนเฉ
- luks-auto.target - เจฌเจฟเจฒเจ-เจเจจ systemd-cryptsetup เจฏเฉเจจเจฟเจเจพเจ เจฒเจ เจจเจฟเจฐเจญเจฐเจคเจพ เจตเจเฉเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ
- luks-auto-clean.service - luks-auto-key.service เจฆเฉเจเจฐเจพ เจฌเจฃเจพเจเจเจ เจ เจธเจฅเจพเจ เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจธเจพเจซเจผ เจเจฐเจฆเจพ เจนเฉ
เจ เจคเฉ luks-auto-generator.sh เจเฉฑเจ เจธเจเฉเจฐเจฟเจชเจ เจนเฉ เจเฉ systemd เจฆเฉเจเจฐเจพ เจฒเจพเจเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ เจ เจคเฉ เจเจฐเจจเจฒ เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจฆเฉ เจ เจงเจพเจฐ 'เจคเฉ เจฏเฉเจจเจฟเจ เจคเจฟเจเจฐ เจเจฐเจฆเฉ เจนเฉเฅค เจฎเจฟเจฒเจฆเฉ-เจเฉเจฒเจฆเฉ เจเจจเจฐเฉเจเจฐ fstab เจฏเฉเจจเจฟเจเจพเจ เจเจฆเจฟ เจฆเฉเจเจฐเจพ เจฌเจฃเจพเจ เจเจพเจเจฆเฉ เจนเจจเฅค
luks-auto-generator.sh
drop-in.conf เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ, เจธเจเฉเจเจกเจฐเจก systemd-cryptsetup เจฆเจพ เจตเจฟเจตเจนเจพเจฐ luks-auto.target เจจเฉเฉฐ เจเจนเจจเจพเจ เจฆเฉ เจจเจฟเจฐเจญเจฐเจคเจพ เจตเจฟเฉฑเจ เจเฉเฉ เจเฉ เจฌเจฆเจฒเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค
luks-auto-key.service เจ เจคเฉ luks-auto-key.sh
เจเจน เจฏเฉเจจเจฟเจ luks-auto-key.sh เจธเจเฉเจฐเจฟเจชเจ เจเจฒเจพเจเจเจฆเฉ เจนเฉ, เจเฉ เจเจฟ, rd.luks.* เจเฉเฉฐเจเฉเจเจ เจฆเฉ เจ เจงเจพเจฐ เจคเฉ, เจเฉเฉฐเจเฉเจเจ เจจเจพเจฒ เจฎเฉเจกเฉเจ เจฒเฉฑเจญเจฆเฉ เจนเฉ เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจนเฉเจฐ เจตเจฐเจคเฉเจ เจฒเจ เจเฉฑเจ เจ เจธเจฅเจพเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจเจพเจชเฉ เจเจฐเจฆเฉ เจนเฉเฅค เจชเฉเจฐเจเจฟเจฐเจฟเจ เจชเฉเจฐเฉ เจนเฉเจฃ เจคเฉเจ เจฌเจพเจ เจฆ, เจเฉเฉฐเจเฉเจเจ เจจเฉเฉฐ luks-auto-clean.service เจฆเฉเจเจฐเจพ เจ เจธเจฅเจพเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจคเฉเจ เจฎเจฟเจเจพ เจฆเจฟเฉฑเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค
เจธเจฐเฉเจค:
/usr/lib/dracut/modules.d/99luks-auto/module-setup.sh
#!/bin/bash
check () {
if ! dracut_module_included "systemd"; then
"luks-auto needs systemd in the initramfs"
return 1
fi
return 255
}
depends () {
echo "systemd"
return 0
}
install () {
inst "$systemdutildir/systemd-cryptsetup"
inst_script "$moddir/luks-auto-generator.sh" "$systemdutildir/system-generators/luks-auto-generator.sh"
inst_script "$moddir/luks-auto-key.sh" "/etc/systemd/system/luks-auto-key.sh"
inst_script "$moddir/luks-auto.sh" "/etc/systemd/system/luks-auto.sh"
inst "$moddir/luks-auto.target" "${systemdsystemunitdir}/luks-auto.target"
inst "$moddir/luks-auto-key.service" "${systemdsystemunitdir}/luks-auto-key.service"
inst "$moddir/luks-auto-clean.service" "${systemdsystemunitdir}/luks-auto-clean.service"
ln_r "${systemdsystemunitdir}/luks-auto.target" "${systemdsystemunitdir}/initrd.target.wants/luks-auto.target"
ln_r "${systemdsystemunitdir}/luks-auto-key.service" "${systemdsystemunitdir}/initrd.target.wants/luks-auto-key.service"
ln_r "${systemdsystemunitdir}/luks-auto-clean.service" "${systemdsystemunitdir}/initrd.target.wants/luks-auto-clean.service"
}
/usr/lib/dracut/modules.d/99luks-auto/luks-auto-generator.sh
#!/bin/sh
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
. /lib/dracut-lib.sh
SYSTEMD_RUN='/run/systemd/system'
CRYPTSETUP='/usr/lib/systemd/systemd-cryptsetup'
TOUT=$(getargs rd.luks.key.tout)
if [ ! -z "$TOUT" ]; then
mkdir -p "${SYSTEMD_RUN}/luks-auto-key.service.d"
cat > "${SYSTEMD_RUN}/luks-auto-key.service.d/drop-in.conf" <<EOF
[Service]
Type=oneshot
ExecStartPre=/usr/bin/sleep $TOUT
EOF
fi
mkdir -p "$SYSTEMD_RUN/luks-auto.target.wants"
for argv in $(getargs rd.luks.uuid -d rd_LUKS_UUID); do
_UUID=${argv#luks-}
_UUID_ESC=$(systemd-escape -p $_UUID)
mkdir -p "${SYSTEMD_RUN}/systemd-cryptsetup@luksx2d${_UUID_ESC}.service.d"
cat > "${SYSTEMD_RUN}/systemd-cryptsetup@luksx2d${_UUID_ESC}.service.d/drop-in.conf" <<EOF
[Unit]
After=luks-auto.target
ConditionPathExists=!/dev/mapper/luks-${_UUID}
EOF
cat > "${SYSTEMD_RUN}/luks-auto@${_UUID_ESC}.service" <<EOF
[Unit]
Description=luks-auto Cryptography Setup for %I
DefaultDependencies=no
Conflicts=umount.target
IgnoreOnIsolate=true
Before=luks-auto.target
BindsTo=dev-disk-byx2duuid-${_UUID_ESC}.device
After=dev-disk-byx2duuid-${_UUID_ESC}.device luks-auto-key.service
Before=umount.target
[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutSec=0
ExecStart=/etc/systemd/system/luks-auto.sh ${_UUID}
ExecStop=$CRYPTSETUP detach 'luks-${_UUID}'
Environment=DRACUT_SYSTEMD=1
StandardInput=null
StandardOutput=syslog
StandardError=syslog+console
EOF
ln -fs ${SYSTEMD_RUN}/luks-auto@${_UUID_ESC}.service $SYSTEMD_RUN/luks-auto.target.wants/luks-auto@${_UUID_ESC}.service
done
/usr/lib/dracut/modules.d/99luks-auto/luks-auto-key.service
[Unit]
Description=LUKS AUTO key searcher
After=cryptsetup-pre.target
Before=luks-auto.target
DefaultDependencies=no
[Service]
Environment=DRACUT_SYSTEMD=1
Type=oneshot
ExecStartPre=/usr/bin/sleep 1
ExecStart=/etc/systemd/system/luks-auto-key.sh
RemainAfterExit=true
StandardInput=null
StandardOutput=syslog
StandardError=syslog+console
/usr/lib/dracut/modules.d/99luks-auto/luks-auto-key.sh
#!/bin/sh
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
export DRACUT_SYSTEMD=1
. /lib/dracut-lib.sh
MNT_B="/tmp/luks-auto"
ARG=$(getargs rd.luks.key)
IFS=$':' _t=(${ARG})
KEY=${_t[0]}
F_FIELD=''
F_VALUE=''
if [ ! -z $KEY ] && [ ! -z ${_t[1]} ];then
IFS=$'=' _t=(${_t[1]})
F_FIELD=${_t[0]}
F_VALUE=${_t[1]}
F_VALUE="${F_VALUE%"}"
F_VALUE="${F_VALUE#"}"
fi
mkdir -p $MNT_B
finding_luks_keys(){
local _DEVNAME=''
local _UUID=''
local _TYPE=''
local _LABEL=''
local _MNT=''
local _KEY="$1"
local _F_FIELD="$2"
local _F_VALUE="$3"
local _RET=0
blkid -s TYPE -s UUID -s LABEL -u filesystem | grep -v -E -e "TYPE=".*_member"" -e "TYPE="crypto_.*"" -e "TYPE="swap"" | while IFS=$'' read -r _line; do
IFS=$':' _t=($_line);
_DEVNAME=${_t[0]}
_UUID=''
_TYPE=''
_LABEL=''
_MNT=''
IFS=$' ' _t=(${_t[1]});
for _a in "${_t[@]}"; do
IFS=$'=' _v=(${_a});
temp="${_v[1]%"}"
temp="${temp#"}"
case ${_v[0]} in
'UUID')
_UUID=$temp
;;
'TYPE')
_TYPE=$temp
;;
'LABEL')
_LABEL=$temp
;;
esac
done
if [ ! -z "$_F_FIELD" ];then
case $_F_FIELD in
'UUID')
[ ! -z "$_F_VALUE" ] && [ "$_UUID" != "$_F_VALUE" ] && continue
;;
'LABEL')
[ ! -z "$_F_VALUE" ] && [ "$_LABEL" != "$_F_VALUE" ] && continue
;;
*)
[ "$_DEVNAME" != "$_F_FIELD" ] && continue
;;
esac
fi
_MNT=$(findmnt -n -o TARGET $_DEVNAME)
if [ -z "$_MNT" ]; then
_MNT=${MNT_B}/KEY-${_UUID}
mkdir -p "$_MNT" && mount -o ro "$_DEVNAME" "$_MNT"
_RET=$?
else
_RET=0
fi
if [ "${_RET}" -eq 0 ] && [ -f "${_MNT}/${_KEY}" ]; then
cp "${_MNT}/${_KEY}" "$MNT_B/${_UUID}.key"
info "Found ${_MNT}/${_KEY} on ${_UUID}"
fi
if [[ "${_MNT}" =~ "${MNT_B}" ]]; then
umount "$_MNT" && rm -rfd --one-file-system "$_MNT"
fi
done
return 0
}
finding_luks_keys $KEY $F_FIELD $F_VALUE
/usr/lib/dracut/modules.d/99luks-auto/luks-auto.target
[Unit]
Description=LUKS AUTO target
After=systemd-readahead-collect.service systemd-readahead-replay.service
After=cryptsetup-pre.target luks-auto-key.service
Before=cryptsetup.target
/usr/lib/dracut/modules.d/99luks-auto/luks-auto.sh
#!/bin/sh
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
export DRACUT_SYSTEMD=1
. /lib/dracut-lib.sh
MNT_B="/tmp/luks-auto"
CRYPTSETUP='/usr/lib/systemd/systemd-cryptsetup'
for i in $(ls -p $MNT_B | grep -v /);do
info "Trying $i on $1..."
$CRYPTSETUP attach "luks-$1" "/dev/disk/by-uuid/$1" $MNT_B/$i 'tries=1'
if [ "$?" -eq "0" ]; then
info "Found $i for $1"
exit 0
fi
done
warn "No key found for $1. Fallback to passphrase mode."
/usr/lib/dracut/modules.d/99luks-auto/luks-auto-clean.service
[Unit]
Description=LUKS AUTO key cleaner
After=cryptsetup.target
DefaultDependencies=no
[Service]
Type=oneshot
ExecStart=/usr/bin/rm -rfd --one-file-system /tmp/luks-auto
/etc/dracut.conf.d/luks-auto.conf
add_dracutmodules+=" luks-auto "
เจธเฉเจเจฟเฉฐเจ
mkdir -p /usr/lib/dracut/modules.d/99luks-auto/
# ัะฐะทะผะตัะฐะตะผ ััั ะฟะพััะธ ะฒัะต ัะฐะนะปั
chmod +x /usr/lib/dracut/modules.d/99luks-auto/*.sh
# ัะพะทะดะฐะตะผ ัะฐะนะป /etc/dracut.conf.d/luks-auto.conf
# ะ ะณะตะฝะตัะธััะตะผ ะฝะพะฒัะน initramfs
dracut -f
เจธเจฟเฉฑเจเจพ
เจธเจนเฉเจฒเจค เจฒเจ, เจฎเฉเจ sysvinit เจฎเฉเจก เจฒเจ เจเจฐเจจเจฒ เจเจฎเจพเจเจก เจฒเจพเจเจจ เจตเจฟเจเจฒเจชเจพเจ เจจเจพเจฒ เจ
เจจเฉเจเฉเจฒเจคเจพ เจฌเจฃเจพเจ เจฐเฉฑเจเฉ เจนเฉ, เจเฉ เจชเฉเจฐเจพเจฃเฉเจเจ เจธเจฅเจพเจชเจจเจพเจตเจพเจ เจตเจฟเฉฑเจ เจตเจฐเจคเจฃเจพ เจเจธเจพเจจ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉเฅค
เจธเจฐเฉเจค: www.habr.com