From db98445203a2f5f5e1b962395d68a185f3e576b1 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Wed, 5 Jan 2011 17:40:34 +0100 Subject: [PATCH] make f14-based bootCD boot off the pl scripts --- build.sh | 5 ++++- etc/inittab | 4 ++++ prep.sh | 26 +++++++++++++++++--------- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/build.sh b/build.sh index b7be938..e784052 100755 --- a/build.sh +++ b/build.sh @@ -548,9 +548,12 @@ EOF popd # update etc/inittab to start with pl_rsysinit - sed -i 's,pl_sysinit,pl_rsysinit,' etc/inittab + for file in etc/inittab etc/event.d/rcS etc/init/rcS.conf; do + [ -f $file ] && sed -i 's,pl_sysinit,pl_rsysinit,' $file + done # modify inittab to have a serial console + # xxx this might well be broken with f12 and above xxx if [ -n "$serial" ] ; then echo "T0:23:respawn:/sbin/agetty -L $console_dev $console_baud vt100" >> etc/inittab # and let root log in diff --git a/etc/inittab b/etc/inittab index b501e98..aae0660 100644 --- a/etc/inittab +++ b/etc/inittab @@ -1,3 +1,7 @@ +# on f8 and below, lines 2 & 3 below allow to hook our scripts instead of the standard rc/rc.d stuff +# on f12 and above, this file is only used to set the default run level, +# and in this case, hooking our stuff is done in prep.sh/build.sh +# by patching /etc/event.d/ (f12) or /etc/init/ (>=f14) id:2:initdefault: si:S:sysinit:/etc/init.d/pl_sysinit l2:2:bootwait:/etc/init.d/pl_boot diff --git a/prep.sh b/prep.sh index fe69c92..8e6c794 100755 --- a/prep.sh +++ b/prep.sh @@ -58,12 +58,6 @@ chroot ${bootcd} /usr/sbin/useradd -p "$CRYPT_SA_PASSWORD" -o -g 0 -u 0 -m site_ echo "* Installing IPMI utilities" install -D -m 755 ipnmac/ipnmac.x86 $bootcd/usr/sbin/ipnmac -# Install configuration files -echo "* Installing configuration files" -for file in fstab mtab modprobe.conf inittab hosts sysctl.conf ; do - install -D -m 644 etc/$file $bootcd/etc/$file -done - # Install initscripts echo "* Installing initscripts" for file in pl_sysinit pl_hwinit pl_netinit pl_validateconf pl_boot ; do @@ -71,17 +65,31 @@ for file in pl_sysinit pl_hwinit pl_netinit pl_validateconf pl_boot ; do install -D -m 755 initscripts/$file $bootcd/etc/init.d/$file done -# connect the scripts for upstart +# Install configuration files +echo "* Installing configuration files" +for file in fstab mtab modprobe.conf inittab hosts sysctl.conf ; do + install -D -m 644 etc/$file $bootcd/etc/$file +done +# connect our initscripts scripts for upstart # fedora 9 comes with /sbin/init from upstart, that uses /etc/event.d instead of inittab # (in fact inittab is read for determining the default runlevel) if [ -d $bootcd/etc/event.d ] ; then - echo "* Tuning /etc/event.d for upstart" + echo "* Tuning /etc/event.d/ for upstart" pushd $bootcd/etc/event.d # use our system initialisation script - sed -i -e 's,/etc/rc.d/rc.sysinit[a-z\.]*,/etc/init.d/pl_sysinit,g' * + sed -i -e 's,/etc/rc\.d/rc\.sysinit[a-z\.]*,/etc/init.d/pl_sysinit,g' rcS # use our startup script in runlevel 2 sed -i -e 's,/etc/rc\.d/rc[ \t][ \t]*2,/etc/init.d/pl_boot,g' rc2 popd +elif [ -d $bootcd/etc/init ] ; then +# ditto for f14 and higher init style + echo "* Tuning /etc/init/ for upstart" + pushd $bootcd/etc/init + # use our system initialisation script + sed -i -e 's,/etc/rc\.d/rc\.sysinit[a-z\.]*,/bin/bash -c /etc/init.d/pl_sysinit,g' rcS.conf + # use our startup script in runlevel 2 + sed -i -e 's,/etc/rc.d/rc[a-z\.]*,/etc/init.d/pl_boot,g' rc.conf + popd fi # Write nodefamily stamp, to help bootmanager do the right thing -- 2.43.0