Gitweb:
http://git.kernel.org/?p=linux/kernel/git/davej/dracut.git;a=commit;h=955f8b09ad8766dbe593361205268f43ca938029
Commit: 955f8b09ad8766dbe593361205268f43ca938029
Parent: 7d18dca5c1b99cda942c7e0c95a3df2959dea2c2
Author: Victor Lowther <[email protected]>
AuthorDate: Fri Feb 13 04:43:16 2009 -0800
Committer: Dave Jones <[email protected]>
CommitDate: Mon Feb 16 13:56:42 2009 -0500
[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.
---
Makefile | 3 +--
dracut | 6 ++----
echoer | 4 ----
init | 7 ++++---
pre-mount/50cryptroot | 2 +-
rules.d/63-luks.rules | 2 +-
6 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/Makefile b/Makefile
index 6d7cb68..365cdf1 100644
--- a/Makefile
+++ b/Makefile
@@ -11,9 +11,8 @@ install:
install -m 0755 init $(DESTDIR)/usr/libexec/dracut/init
install -m 0755 switch_root $(DESTDIR)/usr/libexec/dracut/switch_root
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
- 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
clean:
rm -f *~
diff --git a/dracut b/dracut
index 3e3d6f7..c8550c7 100755
--- a/dracut
+++ b/dracut
@@ -36,7 +36,6 @@ fi
initfile=$dsrc/init
switchroot=$dsrc/switch_root
rulesdir=$dsrc/rules.d
-echoer=$dsrc/echoer
hookdirs="pre-udev pre-mount pre-pivot"
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
# 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"
cryptexe="cryptsetup"
# 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
udevexe="/lib/udev/vol_id /lib/udev/console_init"
@@ -70,7 +69,6 @@ fi
# install our scripts and hooks
inst "$initfile" "/init"
inst "$switchroot" "/sbin/switch_root"
-inst "$echoer" "/echoer"
for hookdir in $hookdirs; do
for hook in "$dsrc/$hookdir"/*; do
[[ -f $hook ]] && inst "$hook" "/$hookdir/${hook##*/}"
diff --git a/echoer b/echoer
deleted file mode 100755
index 9fc7abf..0000000
--- a/echoer
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-target=$1
-shift
-echo "$@" >"$target"
\ No newline at end of file
diff --git a/init b/init
index 4b36e69..c8ac4e5 100755
--- a/init
+++ b/init
@@ -10,12 +10,13 @@ emergency_shell()
echo ; echo
echo "Bug in initramfs /init detected. Dropping to a shell. Good luck!"
echo
- exec sh -i
+ sh -i 2>/dev/console
}
getarg() {
- local o;
- for o in $(cat /proc/cmdline); do
+ local o line
+ read -r line </proc/cmdline
+ for o in $line; do
[ "${o%%=*}" = "$1" ] && { echo $o; break; }
done
return 1
diff --git a/pre-mount/50cryptroot b/pre-mount/50cryptroot
index de7eca4..0664f24 100755
--- a/pre-mount/50cryptroot
+++ b/pre-mount/50cryptroot
@@ -1,7 +1,7 @@
#!/bin/sh
[ -f /cryptroot ] && {
echo "Encrypted root detected."
- cryptopts=$(cat /cryptroot)
+ read cryptopts </cryptroot
/sbin/cryptsetup luksOpen $cryptopts || emergency_shell
udevadm settle --timeout=30
}
diff --git a/rules.d/63-luks.rules b/rules.d/63-luks.rules
index ab907e9..4d6a379 100644
--- a/rules.d/63-luks.rules
+++ b/rules.d/63-luks.rules
@@ -8,6 +8,6 @@ SUBSYSTEM!="block", GOTO="luks_end"
ACTION!="add|change", GOTO="luks_end"
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"
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html