[PATCH 44/50] Get rid of echoer script
We can use sh -c to accomplish the same goal Also move cat back on to the list of debugging tools -- all the files we were using it on in the initrd can use read to accomplish the same goal.master
parent
7d18dca5c1
commit
955f8b09ad
3
Makefile
3
Makefile
|
@ -11,9 +11,8 @@ install:
|
||||||
install -m 0755 init $(DESTDIR)/usr/libexec/dracut/init
|
install -m 0755 init $(DESTDIR)/usr/libexec/dracut/init
|
||||||
install -m 0755 switch_root $(DESTDIR)/usr/libexec/dracut/switch_root
|
install -m 0755 switch_root $(DESTDIR)/usr/libexec/dracut/switch_root
|
||||||
install -m 0755 dracut-functions $(DESTDIR)/usr/libexec/dracut/functions
|
install -m 0755 dracut-functions $(DESTDIR)/usr/libexec/dracut/functions
|
||||||
install -m 0755 echoer $(DESTDIR)/usr/libexec/dracut/echoer
|
|
||||||
mkdir $(DESTDIR)/usr/libexec/dracut/rules.d
|
mkdir $(DESTDIR)/usr/libexec/dracut/rules.d
|
||||||
for rule in rules.d/*.rules ; do install -m 0644 $$rule $(DESTDIR)/usr/libexec/dracut/rules.d ; done
|
for rule in rules.d/*.rules ; do install -m 0644 $$rule $(DESTDIR)/usr/libexec/dracut ; done
|
||||||
for hooks in pre-*/* ; do install -m 0755 $$hook $(DESTDIR/usr/libexec/dracut ; done
|
for hooks in pre-*/* ; do install -m 0755 $$hook $(DESTDIR/usr/libexec/dracut ; done
|
||||||
clean:
|
clean:
|
||||||
rm -f *~
|
rm -f *~
|
||||||
|
|
6
dracut
6
dracut
|
@ -36,7 +36,6 @@ fi
|
||||||
initfile=$dsrc/init
|
initfile=$dsrc/init
|
||||||
switchroot=$dsrc/switch_root
|
switchroot=$dsrc/switch_root
|
||||||
rulesdir=$dsrc/rules.d
|
rulesdir=$dsrc/rules.d
|
||||||
echoer=$dsrc/echoer
|
|
||||||
hookdirs="pre-udev pre-mount pre-pivot"
|
hookdirs="pre-udev pre-mount pre-pivot"
|
||||||
|
|
||||||
initdir=$(mktemp -d -t initramfs.XXXXXX)
|
initdir=$(mktemp -d -t initramfs.XXXXXX)
|
||||||
|
@ -48,11 +47,11 @@ for d in bin sbin usr/bin usr/sbin usr/lib etc proc sys sysroot dev/pts; do
|
||||||
done
|
done
|
||||||
|
|
||||||
# executables that we have to have
|
# executables that we have to have
|
||||||
exe="bash mount mknod mkdir modprobe udevd udevadm nash pidof sleep chroot echo cat sed"
|
exe="bash mount mknod mkdir modprobe udevd udevadm nash pidof sleep chroot echo sed"
|
||||||
lvmexe="lvm"
|
lvmexe="lvm"
|
||||||
cryptexe="cryptsetup"
|
cryptexe="cryptsetup"
|
||||||
# and some things that are nice for debugging
|
# and some things that are nice for debugging
|
||||||
debugexe="ls ln ps grep more dmesg"
|
debugexe="ls ln ps grep more dmesg cat"
|
||||||
# udev things we care about
|
# udev things we care about
|
||||||
udevexe="/lib/udev/vol_id /lib/udev/console_init"
|
udevexe="/lib/udev/vol_id /lib/udev/console_init"
|
||||||
|
|
||||||
|
@ -70,7 +69,6 @@ fi
|
||||||
# install our scripts and hooks
|
# install our scripts and hooks
|
||||||
inst "$initfile" "/init"
|
inst "$initfile" "/init"
|
||||||
inst "$switchroot" "/sbin/switch_root"
|
inst "$switchroot" "/sbin/switch_root"
|
||||||
inst "$echoer" "/echoer"
|
|
||||||
for hookdir in $hookdirs; do
|
for hookdir in $hookdirs; do
|
||||||
for hook in "$dsrc/$hookdir"/*; do
|
for hook in "$dsrc/$hookdir"/*; do
|
||||||
[[ -f $hook ]] && inst "$hook" "/$hookdir/${hook##*/}"
|
[[ -f $hook ]] && inst "$hook" "/$hookdir/${hook##*/}"
|
||||||
|
|
7
init
7
init
|
@ -10,12 +10,13 @@ emergency_shell()
|
||||||
echo ; echo
|
echo ; echo
|
||||||
echo "Bug in initramfs /init detected. Dropping to a shell. Good luck!"
|
echo "Bug in initramfs /init detected. Dropping to a shell. Good luck!"
|
||||||
echo
|
echo
|
||||||
exec sh -i
|
sh -i 2>/dev/console
|
||||||
}
|
}
|
||||||
|
|
||||||
getarg() {
|
getarg() {
|
||||||
local o;
|
local o line
|
||||||
for o in $(cat /proc/cmdline); do
|
read -r line </proc/cmdline
|
||||||
|
for o in $line; do
|
||||||
[ "${o%%=*}" = "$1" ] && { echo $o; break; }
|
[ "${o%%=*}" = "$1" ] && { echo $o; break; }
|
||||||
done
|
done
|
||||||
return 1
|
return 1
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
[ -f /cryptroot ] && {
|
[ -f /cryptroot ] && {
|
||||||
echo "Encrypted root detected."
|
echo "Encrypted root detected."
|
||||||
cryptopts=$(cat /cryptroot)
|
read cryptopts </cryptroot
|
||||||
/sbin/cryptsetup luksOpen $cryptopts || emergency_shell
|
/sbin/cryptsetup luksOpen $cryptopts || emergency_shell
|
||||||
udevadm settle --timeout=30
|
udevadm settle --timeout=30
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,6 @@ SUBSYSTEM!="block", GOTO="luks_end"
|
||||||
ACTION!="add|change", GOTO="luks_end"
|
ACTION!="add|change", GOTO="luks_end"
|
||||||
|
|
||||||
KERNEL!="sr*", IMPORT{program}="vol_id --export $tempnode"
|
KERNEL!="sr*", IMPORT{program}="vol_id --export $tempnode"
|
||||||
ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="/echoer /cryptroot $env{DEVNAME} luks-$env{ID_FS_UUID}"
|
ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="/bin/sh -c 'echo $env{DEVNAME} luks-$env{ID_FS_UUID} >/cryptroot'"
|
||||||
|
|
||||||
LABEL="luks_end"
|
LABEL="luks_end"
|
||||||
|
|
Loading…
Reference in New Issue