slitaz-modular rev 132

initramfs: Update init script.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Aug 27 18:35:47 2011 +0000 (2011-08-27)
parents 12a8156049fc
children 3ff3ff15c700
files initramfs/init
line diff
     1.1 --- a/initramfs/init	Sat Aug 27 18:34:37 2011 +0000
     1.2 +++ b/initramfs/init	Sat Aug 27 18:35:47 2011 +0000
     1.3 @@ -3,14 +3,14 @@
     1.4  launch_init()
     1.5  {
     1.6  	[ -d /proc/sys ] && umount /proc
     1.7 -	echo -e "\\033[70G[ \\033[1;33mOK\\033[0;39m ]"
     1.8 +	echo -e "\\033[70G[ \\033[1;32mOK\\033[0;39m ]"
     1.9  	exec /sbin/switch_root mnt /sbin/init
    1.10  }
    1.11  
    1.12  launch_init_modular()
    1.13  {
    1.14  	[ -d /proc/sys ] && umount /proc
    1.15 -	echo -e "\\033[70G[ \\033[1;33mOK\\033[0;39m ]"
    1.16 +	echo -e "\\033[70G[ \\033[1;32mOK\\033[0;39m ]"
    1.17  	[ -d /mnt/initramfs ] || mkdir -p /mnt/initramfs
    1.18  	SYS_DIR="dev bin etc boot lib sbin home root run usr var"
    1.19  	for dir in $SYS_DIR; do
    1.20 @@ -29,6 +29,7 @@
    1.21  {
    1.22  	[ -d /proc/sys ] && umount /proc
    1.23  	echo -e "\\033[70G[ \\033[1;31mFailed\\033[0;39m ]"
    1.24 +	conspy -d 1 > /init.log
    1.25  }
    1.26  
    1.27  try_init()
    1.28 @@ -92,9 +93,10 @@
    1.29  
    1.30  mount -t proc proc /proc
    1.31  mount -t sysfs sysfs /sys
    1.32 +echo -n "Switching / to "
    1.33  if grep -q dmraid= /proc/cmdline; then
    1.34  	root="$(sed 's/.*dmraid=\([^ ]*\).*/\1/' < /proc/cmdline)"
    1.35 -	echo -n "Switching / to dmraid $root..."
    1.36 +	echo -n "dmraid $root..."
    1.37  	dmraid -s | grep ^type | awk '{ print $3 }' | load_raid
    1.38  	case "$root" in
    1.39  	/dev/*);;
    1.40 @@ -106,17 +108,21 @@
    1.41  fi
    1.42  if grep -q softraid= /proc/cmdline; then
    1.43  	root="$(sed 's/.*softraid=\([^ ]*\).*/\1/' < /proc/cmdline)"
    1.44 -	echo -n "Switching / to softraid $root..."
    1.45 +	echo -n "softraid $root..."
    1.46  	mdadm --examine --scan --config=partitions > /etc/mdadm.conf
    1.47  	grep -qs " $root " /etc/mdadm.conf ||
    1.48  		root=$(awk '/dev.md/ { print $2; exit }' < /etc/mdadm.conf)
    1.49  	grep level=raid /etc/mdadm.conf | load_raid
    1.50 -	mdadm --assemble --scan
    1.51 +	for i in 1 2 3 4 5 6 7 8 9; do
    1.52 +		sleep $i
    1.53 +		mdadm --assemble --scan
    1.54 +		grep -qs ': active' /proc/mdstat && break
    1.55 +	done
    1.56  	lvmsetup 
    1.57  	mount_mapper /etc/mdadm.conf
    1.58  fi
    1.59  if lvmsetup; then
    1.60 -	echo -n "Switching / to lvm $root..."
    1.61 +	echo -n "lvm $root..."
    1.62  	mount_mapper
    1.63  fi
    1.64  if grep -q mount= /proc/cmdline; then
    1.65 @@ -132,13 +138,18 @@
    1.66  		fi
    1.67  		mount $dev /mnt
    1.68  	fi
    1.69 +	grep -q posixovl /proc/cmdline && mount.posixovl /mnt
    1.70  fi
    1.71  if grep -q loopfs= /proc/cmdline; then
    1.72  	loopfs="$(sed 's/.*loopfs=\([^ ]*\).*/\1/' < /proc/cmdline)"
    1.73 -	echo -n "Switching / to loop $loopfs..."
    1.74 +	echo -n "loop $loopfs..."
    1.75  	losetup /dev/loop0 /mnt/$loopfs
    1.76  	mount /dev/loop0 /mnt 2> /dev/null
    1.77  fi
    1.78 +if grep -q bindfs= /proc/cmdline; then
    1.79 +	bind="$(sed 's/.*bindfs=\([^ ]*\).*/\1/' < /proc/cmdline)"
    1.80 +	mount --bind /mnt/${bind%,*} /mnt/${bind%,*}/${bind#*,}
    1.81 +fi
    1.82  grep -q cryptoroot= /proc/cmdline && try_init
    1.83  umount /sys
    1.84  if grep -q subroot= /proc/cmdline; then
    1.85 @@ -151,7 +162,7 @@
    1.86  		exec chroot /mnt$subroot /sbin/init
    1.87  	fi
    1.88  fi
    1.89 -echo -n "Switching / to tmpfs..."
    1.90 +echo -n "tmpfs..."
    1.91  size="$(grep rootfssize= < /proc/cmdline | \
    1.92  	sed 's/.*rootfssize=\([0-9]*[kmg%]\).*/-o size=\1/')"
    1.93  free=$(busybox free | busybox awk '/Mem:/ { print int(($4*100)/$3) }')