1
0
mirror of https://github.com/gryf/mkinitramfs.git synced 2025-12-18 20:10:24 +01:00

Separate init script for modularity

This commit is contained in:
2022-09-26 17:35:01 +02:00
parent d2aa7c13c2
commit 9146707f97

View File

@@ -165,9 +165,11 @@ done
if [ -z "${DEVICE}" ]; then if [ -z "${DEVICE}" ]; then
echo "No LUKS device found to boot from! Giving up." echo "No LUKS device found to boot from! Giving up."
sleep 3 sleep 3
reboot -f exec reboot -f
fi fi
"""
DECRYPT_KEYDEV = """
ret=1 ret=1
if [ -n ${KEYDEV} ]; then if [ -n ${KEYDEV} ]; then
for i in 0 1 2 ; do for i in 0 1 2 ; do
@@ -183,7 +185,9 @@ if [[ ${ret} -ne 0 && ! -f ${KEY} ]]; then
sleep 3 sleep 3
reboot -f reboot -f
fi fi
"""
DECRYPT_PASSWORD = """
if [[ -z "${KEYDEV}" || ${ret} -ne 0 ]]; then if [[ -z "${KEYDEV}" || ${ret} -ne 0 ]]; then
for i in 0 1 2 ; do for i in 0 1 2 ; do
ccrypt -c $KEY | cryptsetup open --allow-discards $DEVICE root ccrypt -c $KEY | cryptsetup open --allow-discards $DEVICE root
@@ -191,7 +195,9 @@ if [[ -z "${KEYDEV}" || ${ret} -ne 0 ]]; then
[ ${ret} -eq 0 ] && break [ ${ret} -eq 0 ] && break
done done
fi fi
"""
SWROOT = """
# get the tty back # get the tty back
rm /dev/tty rm /dev/tty
mv /dev/tty_bak /dev/tty mv /dev/tty_bak /dev/tty
@@ -317,6 +323,10 @@ class Initramfs(object):
if self._args.sdcard: if self._args.sdcard:
fobj.write(INIT_SD) fobj.write(INIT_SD)
fobj.write(INIT_OPEN) fobj.write(INIT_OPEN)
if self._args.disk_label or self._args.sdcard:
fobj.write(DECRYPT_KEYDEV)
fobj.write(DECRYPT_PASSWORD)
fobj.write(SWROOT)
os.chmod('init', 0b111101101) os.chmod('init', 0b111101101)
os.chdir(self.curdir) os.chdir(self.curdir)