initrd - minor fixes
authorAlex Hornung <ahornung@gmail.com>
Sat, 10 Jul 2010 15:13:37 +0000 (16:13 +0100)
committerAlex Hornung <ahornung@gmail.com>
Sun, 11 Jul 2010 21:05:58 +0000 (22:05 +0100)
* mount the new root as read-only so that fsck doesn't complain and
  drop us to single-user mode.

* drop a few unnecessary tools from the initrd

* Remove a debug printf from the mini_init.

* Mount the device as read-only in rcmount_crypt since fsck and so on
  expect it that way.

sbin/mkinitrd/mini_init/oinit.c
sbin/mkinitrd/mkinitrd.sh
share/initrd/rc
share/initrd/rcmount_crypt

index 3c99220..ff40fd5 100644 (file)
@@ -124,7 +124,6 @@ runcom(char **argv_orig)
 
                setctty(_PATH_CONSOLE);
 
-               printf("Child talking, about to call /etc/rc\n");
                argv[0] = "sh";
                argv[1] = _PATH_RUNCOM;
                argv[2] = "autoboot" ;
index 7e3d2b9..d6ab2a5 100644 (file)
@@ -2,8 +2,8 @@
 
 BUILD_DIR="/tmp/initrd"
 INITRD_SIZE="15m"
-BIN_TOOLS="echo ln ls mkdir mv rm rmdir sh"
-SBIN_TOOLS="mount mount_devfs mount_hammer mount_nfs mount_null mount_procfs mount_tmpfs umount iscontrol cryptsetup lvm sysctl"
+BIN_TOOLS="mkdir rm sh kill"
+SBIN_TOOLS="mount mount_devfs mount_hammer mount_nfs mount_null mount_procfs mount_tmpfs umount iscontrol cryptsetup lvm sysctl udevd"
 INITRD_DIRS="bin boot dev etc mnt proc sbin tmp var new_root"
 CONTENT_DIRS="/usr/share/initrd"
 
index c26fd7e..05f2a85 100644 (file)
@@ -6,6 +6,7 @@
 /sbin/mount_tmpfs tmpfs /tmp
 /sbin/mount_tmpfs tmpfs /var
 mkdir /var/tmp
+mkdir /var/run
 
 rescue_shell() {
        echo "Starting recovery shell!"
@@ -13,6 +14,9 @@ rescue_shell() {
        exit 0
 }
 
+# Start udevd
+/sbin/udevd
+
 for rcs in /etc/rc.*; do
        if [ -x $rcs ]; then
                . $rcs
@@ -36,7 +40,7 @@ if [ "$TYPE" = "local" ]; then
        FSTYPE=$2
        MOUNTFROM=$3
        echo "executing /sbin/mount -t $FSTYPE $4 $MOUNTFROM /new_root"
-       /sbin/mount -t $FSTYPE $4 $MOUNTFROM /new_root
+       /sbin/mount -o ro -t $FSTYPE $4 $MOUNTFROM /new_root
        if [ "$?" -ne "0" ]; then
                rescue_shell
        fi
@@ -51,6 +55,11 @@ else
        fi
 fi
 
+# Stop udevd
+read UDEVD_PID < /var/run/udevd.pid
+kill $UDEVD_PID
+
+# Clean up
 rm -rf /var/*
 rm -rf /tmp/*
 /sbin/umount /var
index 9fc0a03..52c18c7 100755 (executable)
@@ -22,7 +22,7 @@ if [ "$?" -ne "0" ]; then
 fi
 
 # Mount, as is expected, onto /new_root
-mount -t $FSTYPE /dev/mapper/$VOLUME /new_root
+mount -o ro -t $FSTYPE /dev/mapper/$VOLUME /new_root
 if [ "$?" -ne "0" ]; then
        return 3;
 fi