/[fai]/trunk/scripts/make-fai-nfsroot
ViewVC logotype

Diff of /trunk/scripts/make-fai-nfsroot

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 691 by lange, Fri Jul 13 13:10:03 2001 UTC revision 1097 by lange, Wed Mar 13 14:24:27 2002 UTC
# Line 6  Line 6 
6  # make-fai-nfsroot -- create nfsroot directory and add additional packages  # make-fai-nfsroot -- create nfsroot directory and add additional packages
7  #  #
8  # This script is part of FAI (Fully Automatic Installation)  # This script is part of FAI (Fully Automatic Installation)
9  # (c) 2000-2001 by Thomas Lange, lange@informatik.uni-koeln.de  # (c) 2000-2002 by Thomas Lange, lange@informatik.uni-koeln.de
10  # Universitaet zu Koeln  # Universitaet zu Koeln
11  #  #
12  #*********************************************************************  #*********************************************************************
# Line 27  Line 27 
27  # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28  #*********************************************************************  #*********************************************************************
29    
30  # Packages that are install to nfsroot by default  # Packages that are install to nfsroot by default Additional packages are
31  # Additional packages are defined with $NFSROOT_PACKAGES in fai.conf  # defined with $NFSROOT_PACKAGES in fai.conf
32  packages="dhcp-client file rdate cfengine bootpc wget rsh-client less dump ext2resize strace hdparm parted dnsutils grub ntpdate psmisc"  packages="dhcp-client file rdate cfengine bootpc wget rsh-client less dump
33    ext2resize strace hdparm parted dnsutils grub ntpdate psmisc
34    dosfstools sysutils dialog"
35    # removed from distribution: hwtools
36    
37  PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin  PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
38    
39  if [ "$UID" -ne 0 ]; then  if [ "$UID" -ne 0 ]; then
40   echo "Run this program as root."      echo "Run this program as root."
41   exit 9      exit 9
42  fi  fi
43    
44  while getopts v opt ; do  while getopts rv opt ; do
45          case "$opt" in      case "$opt" in
46          v) verbose=1 ;;          v) verbose=1 ;;
47          esac          r) recover=1 ;;
48        esac
49  done  done
50    
51  set -e  set -e
52  . /etc/fai.conf  . /etc/fai/fai.conf
53  packages="$packages $NFSROOT_PACKAGES"  
54  ROOTCMD="chroot $NFSROOT"  ROOTCMD="chroot $NFSROOT"
55    
56    RUNDIR=/var/run/fai/make-nfs-root
57    [ ! -d $RUNDIR ] && mkdir -p $RUNDIR
58    [ ! "$recover" ] && rm -rf $RUNDIR/*
59    
60  LIBFAI=/usr/lib/fai  LIBFAI=/usr/lib/fai
61    SHAREFAI=/usr/share/fai
62  conffile=$NFSROOT/etc/rcS_fai.conf  conffile=$NFSROOT/etc/rcS_fai.conf
63  export DEBIAN_FRONTEND=Noninteractive  export DEBIAN_FRONTEND=Noninteractive
64    
 if [ "$verbose" ]; then  
         devnull=/dev/tty  
 else  
         devnull=/dev/null  
 fi  
   
65  trap "umount_dirs" EXIT  trap "umount_dirs" EXIT
66  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
67  die() {  die() {
68    
69      echo $*      echo "$@"
70      exit 99      exit 99
71  }  }
72  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
73    call_with_stamp() {
74    
75        local func=$1
76        local stamp=$RUNDIR/$func
77        # call subroutine
78        [ "$recover" -a -f $stamp ] && return 0
79        "$@"
80        > $stamp
81    }
82    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
83    call_verbose() {
84    
85        if [ "$verbose" ]; then
86            "$@"
87        else
88            "$@" > /dev/null
89        fi
90    }
91    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
92  install_kernel_nfsroot() {  install_kernel_nfsroot() {
93    
94      rm -rf $NFSROOT/boot/*-$KERNELVERSION $NFSROOT/lib/modules/$KERNELVERSION      rm -rf $NFSROOT/boot/*-$KERNELVERSION $NFSROOT/lib/modules/$KERNELVERSION
95        # since woody we can install the kernel using dpkg -i
96        echo "do_boot_enable=no" > $NFSROOT/etc/kernel-img.conf
97      dpkg -x $KERNELPACKAGE $NFSROOT      dpkg -x $KERNELPACKAGE $NFSROOT
98      # if $NFROOT/proc/modules exists, then update-modules calls depmod -a without      # if $NFROOT/proc/modules exists, then update-modules calls depmod -a without
99      # these special flags; so umount first      # these special flags; so umount first
100      umount $NFSROOT/proc      [ -e $NFSROOT/proc/modules ] && umount $NFSROOT/proc
101      chroot $NFSROOT update-modules      chroot $NFSROOT update-modules
102      chroot $NFSROOT depmod -a -F /boot/System.map-$KERNELVERSION $KERNELVERSION      chroot $NFSROOT depmod -a -F /boot/System.map-$KERNELVERSION $KERNELVERSION
103  }  }
# Line 84  setup_ssh() { Line 108  setup_ssh() {
108      [ -f $NFSROOT/var/lib/dpkg/info/ssh.list ] || return 0      [ -f $NFSROOT/var/lib/dpkg/info/ssh.list ] || return 0
109      mkdir -p -m 700 $NFSROOT/root/.ssh      mkdir -p -m 700 $NFSROOT/root/.ssh
110      [ -f /etc/ssh/ssh_known_hosts ] && cp /etc/ssh/ssh_known_hosts $NFSROOT/root/.ssh/known_hosts      [ -f /etc/ssh/ssh_known_hosts ] && cp /etc/ssh/ssh_known_hosts $NFSROOT/root/.ssh/known_hosts
111      loguserhome=`eval "cd ~$LOGUSER 2>/dev/null && pwd;true"`      if [ -n "$LOGUSER" ] ; then
112      [ -d $loguserhome/.ssh ] && cp -p $loguserhome/.ssh/identity* $NFSROOT/root/.ssh/          loguserhome=`eval "cd ~$LOGUSER 2>/dev/null && pwd;true"`
113            [ -d $loguserhome/.ssh ] && cp -p $loguserhome/.ssh/identity* $NFSROOT/root/.ssh/
114        fi
115    
116      # enable root login      # enable root login
117      perl -pi -e 's/PermitRootLogin no/PermitRootLogin yes/' $NFSROOT/etc/ssh/sshd_config      perl -pi -e 's/PermitRootLogin no/PermitRootLogin yes/' $NFSROOT/etc/ssh/sshd_config
118      if [ -f "$SSH_IDENTITY" ]; then      if [ -f "$SSH_IDENTITY" ]; then
119          cp -p $SSH_IDENTITY $NFSROOT/root/.ssh/authorized_keys          cp -p $SSH_IDENTITY $NFSROOT/root/.ssh/authorized_keys
120          echo You can log into install clients without password using $SSH_IDENTITY          echo You can log into install clients without password using $SSH_IDENTITY
121      fi      fi
122  }  }
123  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
124  copy_fai_files() {  copy_fai_files() {
125    
126      # copy to nfsroot      # copy to nfsroot
127      perl -pi -e "s/^root::/root:${FAI_ROOTPW}:/" etc/passwd      perl -pi -e "s#^root::#root:${FAI_ROOTPW}:#" etc/passwd
128      mkdir -p $NFSROOT/fai/fai_config $NFSROOT/usr/share/fai      mkdir -p $NFSROOT/$FAI/fai_config $NFSROOT/$SHAREFAI $NFSROOT/etc/fai
129      cd $NFSROOT      cd $NFSROOT
130      cp -p $LIBFAI/sbin/dhclient-script $LIBFAI/etc/dhclient.conf /etc/fai.conf etc      cp -p $LIBFAI/sbin/dhclient-script $SHAREFAI/etc/dhclient.conf etc/
131      cp -p $LIBFAI/sbin/* sbin      cp -Rp /etc/fai etc/
132      cp -p $LIBFAI/etc/fai_modules_off etc/modutils      [ -f /etc/fai/.cvspass ] && cp -p /etc/fai/.cvspass .cvspass
133        cp -p $LIBFAI/sbin/* sbin/
134      cp -p /usr/share/fai/subroutines usr/share/fai      cp -p $SHAREFAI/etc/fai_modules_off etc/modutils/
135      cp -p $LIBFAI/etc/apt.conf etc/apt  
136      cp -p /usr/lib/perl5/Debian/Fai.pm usr/lib/perl5/Debian/      cp -p $SHAREFAI/subroutines usr/share/fai
137        cp -p $SHAREFAI/etc/apt.conf etc/apt
138        # potato / woody code
139        if [ -d usr/lib/perl5/Debian ]; then
140            cp -p /usr/lib/perl5/Debian/Fai.pm usr/lib/perl5/Debian/
141        else
142            cp -p /usr/share/perl5/Debian/Fai.pm usr/share/perl5/Debian/
143        fi
144      echo $NFSROOT_ETC_HOSTS >> etc/hosts      echo $NFSROOT_ETC_HOSTS >> etc/hosts
145  }  }
146  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
147  call_debootstrap() {  call_debootstrap() {
148    
149      echo "Creating nfsroot for $1 using debootstrap"      echo "Creating nfsroot for $1 using debootstrap"
150      [ "$verbose" ] && echo "calling debootstrap $1 $NFSROOT $2"      [ "$verbose" ] && echo "calling debootstrap $1 $NFSROOT $2"
151      LC_ALL=C debootstrap $1 $NFSROOT $2 > $devnull 2>&1      yes '' | debootstrap $1 $NFSROOT $2 || true
152  }  }
153  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
154  create_base() {  create_base() {
155    
156      if [ "$FAI_DEBOOTSTRAP" ]; then      if [ "$FAI_DEBOOTSTRAP" ]; then
157          call_debootstrap $FAI_DEBOOTSTRAP          call_verbose call_with_stamp call_debootstrap $FAI_DEBOOTSTRAP
158          echo "Creating base.tgz"          $ROOTCMD apt-get clean
159          tar -C $NFSROOT -cf - . | gzip > $NFSROOT/../base.tgz          echo "Creating base.tgz"
160          mv $NFSROOT/../base.tgz $NFSROOT/var/tmp/base.tgz          tar -C $NFSROOT -cf - . | gzip > $NFSROOT/../base.tgz
161            mv $NFSROOT/../base.tgz $NFSROOT/var/tmp/base.tgz
162      else      else
163          # old method for potato          # old method for potato
164          get_basetgz          call_with_stamp get_basetgz
165          echo "Unpacking base2_2.tgz"          echo "Unpacking base2_2.tgz"
166          zcat /tmp/base2_2.tgz | tar -C $NFSROOT -xpf -          zcat /tmp/base2_2.tgz | tar -C $NFSROOT -xpf -
167          cp -p /tmp/base2_2.tgz $NFSROOT/var/tmp/base.tgz          cp -p /tmp/base2_2.tgz $NFSROOT/var/tmp/base.tgz
168      fi      fi
169  }  }
170  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
171  create_nfsroot() {  create_nfsroot() {
172    
173      mkdir -p $NFSROOT/fai      mkdir -p $NFSROOT/$FAI
174      cd $NFSROOT || die "Error: Can't cd to $NFSROOT"      cd $NFSROOT || die "Error: Can't cd to $NFSROOT"
175      create_base  
176      mknod dev/boot255 c 0 255      call_with_stamp create_base
177    
178        [ ! -c dev/boot255 ] && mknod dev/boot255 c 0 255
179    
180      if [ "$FAI_DEBMIRROR" ]; then      if [ "$FAI_DEBMIRROR" ]; then
181          mkdir -p $NFSROOT/$MNTPOINT          mkdir -p $NFSROOT/$MNTPOINT
182          mount -o ro,rsize=8192 $FAI_DEBMIRROR $NFSROOT/$MNTPOINT || die "Can't mount $FAI_DEBMIRROR"          mount -o ro,rsize=8192 $FAI_DEBMIRROR $NFSROOT/$MNTPOINT || \
183      fi                  die "Can't mount $FAI_DEBMIRROR"
184            fi
185    
186      # hoaks some packages      # hoaks some packages
187      > etc/fstab # dump and raidtool2 needs these files      # liloconfig, dump and raidtool2 needs these files
188        echo "# UNCONFIGURED FSTAB FOR BASE SYSTEM" > etc/fstab
189      > etc/raidtab      > etc/raidtab
190      mkdir -p lib/modules/$KERNELVERSION           # dirty trick to hoax lvm      mkdir -p lib/modules/$KERNELVERSION           # dirty trick to hoax lvm
191      >  lib/modules/$KERNELVERSION/modules.dep  # dirty trick to hoax lvm      >  lib/modules/$KERNELVERSION/modules.dep  # dirty trick to hoax lvm
192      mkdir -p etc/ssh      mkdir -p etc/ssh
193        echo 'NTPSERVERS=""' > etc/default/ntp-servers
194    
195        # potato only
196      > etc/ssh/NOSERVER      > etc/ssh/NOSERVER
197        # woody uses debconf
198    
199      echo "$FAI_SOURCES_LIST" > etc/apt/sources.list      if [ "$FAI_SOURCES_LIST" ]; then
200      upgrade_nfsroot          echo "$FAI_SOURCES_LIST" > etc/apt/sources.list
201      copy_fai_files      else
202            cp /etc/apt/sources.list etc/apt/sources.list
203        fi
204        [ -f /etc/apt/preferences ] && cp /etc/apt/preferences etc/apt
205        echo "Upgrading $NFSROOT"
206        call_verbose call_with_stamp upgrade_nfsroot
207        echo "Adding additional packages to $NFSROOT:"
208        echo "$packages"
209        call_verbose call_with_stamp add_packages_nfsroot
210        call_with_stamp copy_fai_files
211    
212      # set timezone      # set timezone
213      rm -f etc/localtime      rm -f etc/localtime
# Line 170  create_nfsroot() { Line 221  create_nfsroot() {
221      ln -s /tmp/var/run var/run      ln -s /tmp/var/run var/run
222      ln -sf /tmp/etc/resolv.conf etc/resolv.conf      ln -sf /tmp/etc/resolv.conf etc/resolv.conf
223      ln -s /sbin/rcS_fai etc/init.d/rcS      ln -s /sbin/rcS_fai etc/init.d/rcS
224        ln -s /dev/null etc/network/ifstate
225        # for nis
226        [ -d var/yp ] && ln -s /tmp/binding var/yp/binding
227    
228      # turn off logging of loading kernel modules      # turn off logging of loading kernel modules
229      rmdir var/log/ksymoops/      [ -d var/log/ksymoops/ ] && rmdir var/log/ksymoops/
230      ln -s /dev/null var/log/ksymoops      ln -s /dev/null var/log/ksymoops
231    
232      # definition for loopback device      # definition for loopback device
233      echo "iface lo inet loopback" > etc/network/interfaces      echo "iface lo inet loopback" > etc/network/interfaces
234    
235      echo "*.* /tmp/syslog.log" > etc/syslog.conf      echo "*.* /tmp/syslog.log" > etc/syslog.conf
236      echo ". /usr/share/fai/subroutines" >> root/.profile      echo ". $SHAREFAI/subroutines" >> root/.profile
237    
238      setup_ssh      call_verbose call_with_stamp setup_ssh
239    
240      cat >$NFSROOT/etc/rc2.d/S01fai_abort <<-EOF      cat >$NFSROOT/etc/rc2.d/S01fai_abort <<-EOF
241          #!/bin/sh          #!/bin/sh
242          echo FAI: installation aborted.          echo FAI: installation aborted.
243          echo reboot with: faireboot          echo reboot with: faireboot
244          echo or after a logout          echo or after a logout
245          sh          sh
246          cd /          cd /
247          umount -ar          umount -ar
248          reboot -dfi          reboot -dfi
249  EOF  EOF
250      chmod a+rx $NFSROOT/etc/rc2.d/S01fai_abort      chmod a+rx $NFSROOT/etc/rc2.d/S01fai_abort
251  }  }
252  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
253  upgrade_nfsroot() {  upgrade_nfsroot() {
254    
     echo "Upgrading $NFSROOT"  
     {  
255      cp /etc/resolv.conf $NFSROOT/etc      cp /etc/resolv.conf $NFSROOT/etc
256      $ROOTCMD apt-get update      $ROOTCMD apt-get update
257      $ROOTCMD apt-get check      $ROOTCMD apt-get check
258      rm -rf $NFSROOT/etc/pcmcia $NFSROOT/etc/apm      rm -rf $NFSROOT/etc/apm
259      mount -t proc /proc $NFSROOT/proc      mount -t proc /proc $NFSROOT/proc
260      $ROOTCMD apt-get -y install debconf pcmcia-cs- ppp- </dev/null      $ROOTCMD apt-get --purge -y remove debconf+ pcmcia-cs ppp pppconfig </dev/null
261    
262      # fake start-stop-dameon      # fake start-stop-dameon
263      $ROOTCMD dpkg-divert --quiet --package fai --add --rename /sbin/start-stop-daemon      $ROOTCMD dpkg-divert --quiet --package fai --add --rename /sbin/start-stop-daemon
264      cp $LIBFAI/sbin/start-stop-daemon $NFSROOT/sbin      cp $LIBFAI/sbin/start-stop-daemon $NFSROOT/sbin
265      $ROOTCMD apt-get -y upgrade      $ROOTCMD apt-get -y upgrade
266      } > $devnull  }
267      echo "Adding additional packages to $NFSROOT:"  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
268      echo "$packages"  add_packages_nfsroot() {
269      {  
270      $ROOTCMD apt-get -y --fix-missing install $packages </dev/null      $ROOTCMD apt-get -y --fix-missing install $packages </dev/null
271        if [ -n "$NFSROOT_PACKAGES" ] ; then
272            $ROOTCMD apt-get -y --fix-missing install $NFSROOT_PACKAGES </dev/null
273        fi
274      $ROOTCMD apt-get clean      $ROOTCMD apt-get clean
     } > $devnull  
275  }  }
276  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
277  get_basetgz() {  get_basetgz() {
# Line 225  get_basetgz() { Line 279  get_basetgz() {
279      [ -f /tmp/base2_2.tgz ] && return      [ -f /tmp/base2_2.tgz ] && return
280      [ "$FAI_BASETGZ" ] || die "No /tmp/base2_2.tgz found and FAI_BASETGZ not defined."      [ "$FAI_BASETGZ" ] || die "No /tmp/base2_2.tgz found and FAI_BASETGZ not defined."
281      case $FAI_BASETGZ in      case $FAI_BASETGZ in
282          ftp:*|http:*)          ftp:*|http:*)
283              echo "Fetching $FAI_BASETGZ via wget. This may take some time."              echo "Fetching $FAI_BASETGZ via wget. This may take some time."
284              TMPBDIR=`mktemp /tmp/FAI-wget-XXXXXX` || exit 1              TMPBDIR=`mktemp /tmp/FAI-wget-XXXXXX` || exit 1
285              rm $TMPBDIR; mkdir $TMPBDIR || exit              rm $TMPBDIR; mkdir $TMPBDIR || exit
286              wget -P$TMPBDIR $FAI_BASETGZ              wget -P$TMPBDIR $FAI_BASETGZ
287              mv $TMPBDIR/base2_2.tgz /tmp              mv $TMPBDIR/base2_2.tgz /tmp
288              rm -rf $TMPBDIR              rm -rf $TMPBDIR
289              ;;              ;;
290          /*/base2_2.tgz)          /*/base2_2.tgz)
291              rm -f /tmp/base2_2.tgz              rm -f /tmp/base2_2.tgz
292              test -r $FAI_BASETGZ || die "Can't read $FAI_BASETGZ. Check FAI_BASETGZ in fai.conf."              test -r $FAI_BASETGZ || die "Can't read $FAI_BASETGZ. Check FAI_BASETGZ in fai.conf."
293              ln -s $FAI_BASETGZ /tmp              ln -s $FAI_BASETGZ /tmp
294              ;;              ;;
295          *)          *)
296              die "FAI_BASETGZ in fai.conf is $FAI_BASETGZ and looks very strong."              die "FAI_BASETGZ in fai.conf is $FAI_BASETGZ and looks very strange."
297              ;;              ;;
298      esac      esac
299  }  }
300  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Line 251  umount_dirs() { Line 305  umount_dirs() {
305      umount $NFSROOT/proc 1>/dev/null 2>&1 || true      umount $NFSROOT/proc 1>/dev/null 2>&1 || true
306      umount $NFSROOT/dev/pts 1>/dev/null 2>&1 ||true      umount $NFSROOT/dev/pts 1>/dev/null 2>&1 ||true
307      if [ "$FAI_DEBMIRROR" ]; then      if [ "$FAI_DEBMIRROR" ]; then
308          test -d $NFSROOT/$MNTPOINT && umount $NFSROOT/$MNTPOINT || true          test -d $NFSROOT/$MNTPOINT && umount $NFSROOT/$MNTPOINT || true
309      fi      fi
310      # show directories still mounted on nfsroot      # show directories still mounted on nfsroot
311      mount | grep " on $NFSROOT " || true      mount | grep " on $NFSROOT " || true
312  }  }
313  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
314    get_kernel_version() {
315    
316        local package=$1
317        KERNELVERSION=`dpkg --info $1 | grep "Package: kernel-image" | sed -e 's/.*kernel-image-'//`
318    }
319    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
320    setup_bootp(){
321    
322        mknbi-linux --verbose $NFSROOT/boot/vmlinuz-$KERNELVERSION /boot/fai/installimage
323        # imggen is free software from 3com
324        # it converts netboot image to images, that are bootable by 3com network cards
325        imggen=`which imggen || true`
326        if [ -x "$imggen" ]; then
327            imggen -a /boot/fai/installimage /boot/fai/installimage_3com
328        fi
329        echo "BOOTP environment prepared."
330    }
331    
332    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
333    setup_dhcp(){
334    
335        # pxe and dhcp environment
336        cp -p $NFSROOT/boot/vmlinuz-$KERNELVERSION /boot/fai/installkernel
337        rdev /boot/fai/installkernel $NFSROOT/dev/boot255
338        [ -f /usr/lib/syslinux/pxelinux.bin ] && cp /usr/lib/syslinux/pxelinux.bin /boot/fai
339        [ -d /boot/fai/pxelinux.cfg ] || mkdir /boot/fai/pxelinux.cfg || true
340        cp -p /usr/share/fai/etc/pxelinux.cfg /boot/fai/pxelinux.cfg/default
341        echo "DHCP environment prepared. Now enable dhcpd and the special tftp daemon"
342    }
343    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
344  # main routine  # main routine
345    
346  if [ -d $NFSROOT/fai ]; then  # Kill the directory if not in recover mode
347    if [ -d $NFSROOT/$FAI -a ! "$recover" ]
348    then
349      echo $NFSROOT already exists. Removing $NFSROOT      echo $NFSROOT already exists. Removing $NFSROOT
350      umount $NFSROOT/dev/pts 1>/dev/null 2>&1 || true      umount $NFSROOT/dev/pts 1>/dev/null 2>&1 || true
351      rm -rf $NFSROOT/.??* $NFSROOT/*      rm -rf $NFSROOT/.??* $NFSROOT/*
# Line 267  if [ -d $NFSROOT/fai ]; then Line 353  if [ -d $NFSROOT/fai ]; then
353      find $NFSROOT ! -type d -xdev -maxdepth 1 | xargs -r rm -f      find $NFSROOT ! -type d -xdev -maxdepth 1 | xargs -r rm -f
354  fi  fi
355    
356  create_nfsroot  # Create a new nfsroot
357    call_with_stamp create_nfsroot
358    
359    # Install the kernel package
360  if [ -f $KERNELPACKAGE ]; then  if [ -f $KERNELPACKAGE ]; then
361        # determine kernel version
362        get_kernel_version $KERNELPACKAGE
363    
364      # create tftp boot images      # create tftp boot images
365      install_kernel_nfsroot      call_with_stamp install_kernel_nfsroot
366      mknbi-linux --verbose $NFSROOT/boot/vmlinuz-$KERNELVERSION /boot/fai/installimage  
367      # imggen is free software from 3com      grep -q _dhcp_ $NFSROOT/boot/System.map-$KERNELVERSION && TYPE=DHCP
368      # it converts netboot image to images, that are bootable by 3com network cards      # only BOOTP need a netboot image, DHCP can do with raw kernels
369      imggen=`which imggen || true`      if [ "$TYPE" = DHCP ]; then
370      if [ -x "$imggen" ]; then          call_with_stamp setup_dhcp
371          imggen -a /boot/fai/installimage /boot/fai/installimage_3com      else
372            call_with_stamp setup_bootp
373      fi      fi
374  else  else
375      echo "Kernel package $KERNELPACKAGE not found."      echo "Kernel package $KERNELPACKAGE not found."

Legend:
Removed from v.691  
changed lines
  Added in v.1097

  ViewVC Help
Powered by ViewVC 1.1.5