dash gets upset when it cannot open /dev/tty, and we lose stderr. Even
if we make /dev/tty once we're in the initramfs, it will still be too
late for the inital dash shell running the init script. So, make a small
set of nodes in the dracut script while building the directory structure
of the initramfs.
This allowed the error from the duplicate mknod /dev/null in the
initramfs to surface, so consider it tested. :)
---
On Sat, 2009-05-23 at 13:34 +0200, Andreas Thienemann wrote:
> When using the 00dash module in dracut, the emergency_shell currently has
> no stderr.
>
> Problem is related to dash closing stderr if opening /dev/tty fails.
Here's an alternate fix that works with today's dash in F10.
Dave
diff --git a/dracut b/dracut
index 942c420..02e9137 100755
--- a/dracut
+++ b/dracut
@@ -116,6 +116,12 @@ for d in bin sbin usr/bin usr/sbin usr/lib etc proc sys
sysroot dev/pts var/run;
mkdir -p "$initdir/$d";
done
+# Make some basic devices in the initramfs, udev will handle the rest.
+mknod "$initdir/dev/null" c 1 3
+mknod "$initdir/dev/tty" c 5 0
+mknod "$initdir/dev/console" c 5 1
+mknod "$initdir/dev/ptmx" c 5 2
+
# check all our modules to see if they should be sourced
check_modules
@@ -153,4 +159,4 @@ unset item
[[ "$beverbose" = "yes" ]] && ls -lh "$outfile"
-exit 0
\ No newline at end of file
+exit 0
diff --git a/modules.d/99base/init b/modules.d/99base/init
index 5ee897e..9a72b30 100755
--- a/modules.d/99base/init
+++ b/modules.d/99base/init
@@ -28,19 +28,12 @@ trap "emergency_shell" 0
. /lib/dracut-lib
-mknod /dev/null c 1 3
-
# mount some important things
mount -t proc /proc /proc >/dev/null 2>&1
mount -t sysfs /sys /sys >/dev/null 2>&1
mount -t tmpfs -omode=0755 udev /dev >/dev/null 2>&1
getarg rdinitdebug && set -x
-# Make some basic devices first, let udev handle the rest
-mknod /dev/null c 1 3
-mknod /dev/ptmx c 5 2
-mknod /dev/console c 5 1
-mkdir /dev/pts
mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts >/dev/null 2>&1
# pre-udev scripts run before udev starts, and are run only once.
--
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