]> hackdaworld.org Git - hdw-linux/hdw-linux.git/commitdiff
more fai stuff
authorhackbard <hackbard>
Tue, 7 Dec 2004 10:11:05 +0000 (10:11 +0000)
committerhackbard <hackbard>
Tue, 7 Dec 2004 10:11:05 +0000 (10:11 +0000)
doc/CHANGELOG
fai/scripts/rc_fai.sh [new file with mode: 0755]
scripts/Create-FAI

index f461cc85c9d9927f92048b7983025056a2713408..f61aaffa8ea808c50be21c1203645026e5a3df7a 100644 (file)
@@ -1,4 +1,9 @@
-*) 2004-12-6
+*) 2004-12-07
+
+- added fai directory including new rc_fai.sh script
+- some modifications in fai nfsroot creation
+
+*) 2004-12-06
 
 - further work on fai
 - updated tftp-hpa and syslinux package
diff --git a/fai/scripts/rc_fai.sh b/fai/scripts/rc_fai.sh
new file mode 100755 (executable)
index 0000000..e297052
--- /dev/null
@@ -0,0 +1,54 @@
+#!/bin/bash
+#
+# author: hackbard@hackdaworld.dyndns.org
+#
+# automated install rc_fai.sh script
+#
+
+root=/trg
+croot=/fai/config
+myip="`ifconfig eth0 | grep inet\ addr | awk '{ print $2 }' | awk -F: '{ print $2 }'`"
+myconf=$croot/$myip
+
+if [ ! -d $myconf ] ; then
+       echo "no config found, aborting fai"
+       exit
+fi
+
+disk=0
+disk=`grep '#\ disk' $myconf/disk | awk '{ print $3 }'`
+if [ ! -b $disk ] ; then
+       echo "disk $disk not found, aborting fai"
+       exit
+fi
+swap=0
+swap=`grep '#\ swap' $myconf/disk | awk '{ print $3 }'`
+if [ "$swap" != "0" -a -b ${disk}${swap} ] ; then
+       echo "creating swap device ..."
+       mkswap ${disk}${swap}
+       echo "done"
+fi
+
+cat $myconf/disk | grep -v '^#' | while read nr mp; do
+       if [ -b ${disk}${nr} ] ; then
+               echo "making filesystem for $mp"
+               mke2fs -j ${disk}${nr}
+               if [ "$mp" = "/" ] ; then
+                       echo "mounting root partition"
+                       mount ${disk}${nr} $root
+               fi
+       fi
+done
+
+cat $myconf/disk | grep -v '^#' | while read nr mp; do
+       if [ "$mp" != "/" ] ; then
+               if [ -b ${disk}${nr} ] ; then
+                       mkdir -p $root/$mp
+                       mount ${disk}${nr} $root/$mp
+               fi
+       fi
+done
+
+echo "to be continued ...."
+
+exit 0
index 1b3366e816153405ef1b65514fc11784d09c3944..046b1d3e80d278f7c991fea5fc24a12e171bc3f0 100755 (executable)
@@ -6,7 +6,7 @@
 #
 
 fairoot="$1"
-myip="`ifconfig eth0 | grep inet\ addr | awk '{ print $3 }' | awk -F: '{ print $2 }'`"
+myip="`ifconfig eth0 | grep inet\ addr | awk '{ print $2 }' | awk -F: '{ print $2 }'`"
 home_dir=$PWD
 
 usage()        {
@@ -27,11 +27,6 @@ if [ ! -f ./Config ] ; then
 fi
 . ./Config
 
-if [ ! -d ./fai ] ; then
-       echo "creating fai directory"
-       mkdir ./fai
-fi
-
 if [ ! -f ./fai/nfsroot-packages ] ; then
        echo "storing $hdw_target as original target"
        hdw_orig_target=$hdw_target
@@ -67,24 +62,27 @@ else
        echo "(del $fairoot/packages_installed to recreate it)"
 fi
 
-
-echo "preparing nfsroot for automated install routine ..."
-
-cd $fairoot
-
-mknod -m 0666 dev/null c 1 3
-mknod -m 0600 dev/console c 5 1
-
-grep -v swap etc/fstab > tmp~
-mv tmp~ etc/fstab
-
-for i in sysklogd network inetd nscd; do
-       rm -f etc/init.d/rc2.d/*${i}
-done
-
-cd $home_dir
-
-echo "done"
+if [ ! -f $fairoot/prepared_nfsroot ] ; then
+       echo "preparing nfsroot for automated install routine ..."
+       cd $fairoot
+       mknod -m 0666 dev/null c 1 3
+       mknod -m 0600 dev/console c 5 1
+       grep -v swap etc/fstab > tmp~
+       mv tmp~ etc/fstab
+       mkdir -p ./trg
+       for i in sysklogd network inetd nscd; do
+               rm -f etc/init.d/rc2.d/*${i}
+       done
+       sed "s%^exit\ 0%mount -tnfs $myip:/$home_dir/fai /fai%" \
+               etc/init.d/rc > tmp~
+       mv tmp~ etc/init.d/rc
+       chmod 755 etc/init.d/rc
+       echo "/fai/scripts/rc_fai.sh" >> etc/init.d/rc
+       echo "shutdown -r now" >> etc/init.d/rc
+       cd $home_dir
+       echo "done"
+       touch $fairoot/prepared_nfsroot
+fi
 
 echo "checking pxe/nfs environment ..."
 mkdir -p /tftpboot
@@ -98,15 +96,11 @@ fi
 mkdir -p /tftpboot/pxelinux.cfg
 echo -e "LABEL fai" > /tftpboot/pxelinux.cfg/fai
 echo -e "\tKERNEL vmlinuz_hdw" >> /tftpboot/pxelinux.cfg/fai
-echo -e "\tAPPEND root=/dev/nfs nfsroot=$myip:$fairoot \\" >> \
+echo -e "\tAPPEND root=/dev/nfs nfsroot=$myip:$fairoot ip=dhcp" >> \
        /tftpboot/pxelinux.cfg/fai
-echo -e "\tip=dhcp" >> /tftpboot/pxelinux.cfg/fai
 echo -e "\tPROMPT 1" >> /tftpboot/pxelinux.cfg/fai
 echo -e "$fairoot\tfoobar(async,ro,no_root_squash)" >> /etc/exports
-
-echo "mounting configuration dir to nfsroot export ..."
-mkdir -p $fairoot/fai-config
-mount --bind $PWD/fai $fairoot/fai-config
+echo -e "$home_dir/fai\tfoobar(async,ro,no_root_squash)" >> /etc/exports
 
 echo "everything should work now. now do the following:"
 echo "1) edit /etc/exports to allow your clients to mount the nfsroot"
@@ -115,7 +109,7 @@ echo "3) tell your dhcpd (see syslinux docs for more help)"
 echo "4) make sure inetd/nfs/dhcpd are up running"
 echo "5) do the configuration stuff (see doc/FAI)"
 echo
-echo "note: tftp must support tsize option (use e.g. tftp-hpa package)
+echo "note: tftp must support tsize option (use e.g. tftp-hpa package)"
 echo
 
 echo "done"