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

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

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

revision 2450 by lange, Fri Sep 10 10:46:21 2004 UTC revision 2758 by lange, Wed Apr 6 19:04:41 2005 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-2004 by Thomas Lange, lange@informatik.uni-koeln.de  # (c) 2000-2005 by Thomas Lange, lange@informatik.uni-koeln.de
10  # Universitaet zu Koeln  # Universitaet zu Koeln
11  #  #
12  #*********************************************************************  #*********************************************************************
# Line 36  if [ `id -u` -ne 0 ]; then Line 36  if [ `id -u` -ne 0 ]; then
36  fi  fi
37    
38  merror="properly"  merror="properly"
39  while getopts rvc:f:k opt ; do  # option e currently does nothing
40    while getopts ervc:f:kK opt ; do
41      case "$opt" in      case "$opt" in
42          c) cfdir=$OPTARG ;;          c) cfdir=$OPTARG ;;
43          v) verbose=1 ; v=-v ;;          v) verbose=1 ; v=-v ;;
44          r) recover=1 ;;          r) recover=1 ;;
45          f) cfg=$OPTARG ;;          f) cfg=$OPTARG ;;
46          k) kinstall=1 ;;          k) kinstall=1 ;;
47            K) kremove=1; kinstall=1 ;;
48            e) expert=1 ;;
49          ?) exit 5 ;; # error in option parsing          ?) exit 5 ;; # error in option parsing
50      esac      esac
51  done  done
# Line 75  if [ -z "$NFSROOT" ]; then Line 78  if [ -z "$NFSROOT" ]; then
78  fi  fi
79    
80  if [ "$FAI_SOURCES_LIST" ]; then  if [ "$FAI_SOURCES_LIST" ]; then
81      echo "The usage of the variable \$FAI_SOURCES_LIST is deprecated. Please use sources.lsit now."      echo "The usage of the variable \$FAI_SOURCES_LIST is deprecated. Please use sources.list now."
82      exit 3      exit 3
83  fi  fi
84    
# Line 86  if [ ! -s "$cfdir/sources.list" -a ! -f Line 89  if [ ! -s "$cfdir/sources.list" -a ! -f
89  fi  fi
90    
91  kfile="vmlinuz"  kfile="vmlinuz"
92  case `uname -m` in  case `dpkg --print-installation-architecture` in
93      i386|i486|i586|i686|amd64)      i386|amd64)
94          arch_packages="grub lilo read-edid kudzu hwtools dmidecode" ;;          arch_packages="grub lilo read-edid kudzu hwtools dmidecode" ;;
95    
96      ia64)      ia64)
97          arch_packages="elilo gnu-efi efibootmgr" ;;          arch_packages="elilo gnu-efi efibootmgr" ;;
98    
99      sparc|sparc64)      sparc)
100          arch_packages="silo sparc-utils" ;;          arch_packages="silo sparc-utils" ;;
101    
102      ppc)      powerpc)
103          arch_packages=""          arch_packages=""
104          kfile="vmlinux" ;;          kfile="vmlinux" ;;
105    
106        alpha)
107            arch_packages="aboot" ;;
108    
109      *)  arch_packages="" ;;      *)  arch_packages="" ;;
110  esac  esac
111  packages="$packages  packages="$packages
# Line 198  copy_fai_files() { Line 204  copy_fai_files() {
204      fdivert /etc/dhcp3/dhclient-script /etc/dhcp3/dhclient.conf      fdivert /etc/dhcp3/dhclient-script /etc/dhcp3/dhclient.conf
205      cp -p $SHAREFAI/etc/dhclient.conf etc/dhcp3      cp -p $SHAREFAI/etc/dhclient.conf etc/dhcp3
206      cp -Rpv $cfdir/* $NFSROOT/etc/fai      cp -Rpv $cfdir/* $NFSROOT/etc/fai
207        # remove some files that should not be copied
208      rm -f $NFSROOT/etc/fai/make-fai-nfsroot.conf      rm -f $NFSROOT/etc/fai/make-fai-nfsroot.conf
209      [ -f $cfdir/.cvspass ] && cp -p $v $cfdir/.cvspass $NFSROOT/.cvspass      [ -f $cfdir/.cvspass ] && cp -p $v $cfdir/.cvspass $NFSROOT/.cvspass
210      cp -p $LIBFAI/sbin/* sbin/      cp -p $LIBFAI/sbin/* sbin/
211        cp -p /usr/sbin/fai usr/sbin/
212      mv sbin/dhclient-script etc/dhcp3      mv sbin/dhclient-script etc/dhcp3
213      cp -p /usr/sbin/{ftar,fcopy,install_packages} usr/sbin/      cp -p /usr/sbin/{ftar,fcopy,install_packages} usr/sbin/
214      cp -p /usr/bin/{fai-do-scripts,fai-class} usr/bin/      cp -p /usr/bin/{fai-do-scripts,fai-class,fai-debconf} usr/bin/
215      cp -p $LIBFAI/* usr/lib/fai 2>/dev/null || true  # cp will complain about directories      cp -p $LIBFAI/* usr/lib/fai 2>/dev/null || true  # cp will complain about directories
216      cp -p $SHAREFAI/etc/fai_modules_off etc/modutils/      cp -p $SHAREFAI/etc/fai_modules_off etc/modutils/
217    
218      cp -p $SHAREFAI/subroutines* usr/share/fai      cp -p $SHAREFAI/subroutines* usr/share/fai
219      cp -p $v $SHAREFAI/etc/apt.conf $NFSROOT/etc/apt      cp -p $v $SHAREFAI/etc/apt.conf $NFSROOT/etc/apt
220      cp -p /usr/share/perl5/Debian/Fai.pm usr/share/perl5/Debian/      cp -p /usr/share/perl5/Debian/Fai.pm usr/share/perl5/Debian/
221        $ROOTCMD shadowconfig on
222  }  }
223  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
224  call_debootstrap() {  call_debootstrap() {
# Line 224  create_base() { Line 233  create_base() {
233      if [ "$FAI_DEBOOTSTRAP" ]; then      if [ "$FAI_DEBOOTSTRAP" ]; then
234          call_with_stamp call_debootstrap $FAI_DEBOOTSTRAP          call_with_stamp call_debootstrap $FAI_DEBOOTSTRAP
235          $ROOTCMD apt-get clean          $ROOTCMD apt-get clean
236            rm -f $NFSROOT/etc/resolv.conf
237          echo "Creating base.tgz"          echo "Creating base.tgz"
238          tar -l -C $NFSROOT -cf - --exclude var/tmp/base.tgz . | gzip > $NFSROOT/var/tmp/base.tgz          tar -l -C $NFSROOT -cf - --exclude var/tmp/base.tgz . | gzip > $NFSROOT/var/tmp/base.tgz
239      else      else
# Line 237  create_nfsroot() { Line 247  create_nfsroot() {
247      cd $NFSROOT || die "Error: Can't cd to $NFSROOT"      cd $NFSROOT || die "Error: Can't cd to $NFSROOT"
248    
249      call_with_stamp create_base      call_with_stamp create_base
250        # save the list of all packages in the base.tgz
251        $ROOTCMD dpkg --get-selections | egrep 'install$' | awk '{print $1}' > var/tmp/base-pkgs.lis
252        echo $arch_packages > $NFSROOT/var/tmp/packages.arch
253    
254      if [ "$FAI_DEBMIRROR" ]; then      if [ "$FAI_DEBMIRROR" ]; then
255          [ "$verbose" ] && echo "Mounting $FAI_DEBMIRROR to $NFSROOT/$MNTPOINT."          [ "$verbose" ] && echo "Mounting $FAI_DEBMIRROR to $NFSROOT/$MNTPOINT."
# Line 283  create_nfsroot() { Line 296  create_nfsroot() {
296      ln -s /proc/mounts etc/mtab      ln -s /proc/mounts etc/mtab
297      ln -s /tmp/var/run var/run      ln -s /tmp/var/run var/run
298      ln -sf /tmp/var/state/discover var/state/discover      ln -sf /tmp/var/state/discover var/state/discover
299        ln -sf /tmp/var/lib/discover var/lib/discover
300      ln -s /tmp/etc/syslogsocket dev/log      ln -s /tmp/etc/syslogsocket dev/log
301      ln -sf /tmp/etc/resolv.conf etc/resolv.conf      ln -sf /tmp/etc/resolv.conf etc/resolv.conf
302      ln -sf /tmp etc/sysconfig      ln -sf /tmp etc/sysconfig
303      ln -s ../../sbin/rcS_fai etc/init.d/rcS      ln -s /usr/sbin/fai etc/init.d/rcS
304      ln -sf /dev/null etc/network/ifstate      ln -sf /dev/null etc/network/ifstate
305      # for nis      # for nis
306      [ -d var/yp ] && ln -s /tmp/binding var/yp/binding      [ -d var/yp ] && ln -s /tmp/binding var/yp/binding
# Line 328  EOF Line 342  EOF
342  upgrade_nfsroot() {  upgrade_nfsroot() {
343    
344      cp -p $v /etc/resolv.conf $NFSROOT/etc/resolv.conf-installserver      cp -p $v /etc/resolv.conf $NFSROOT/etc/resolv.conf-installserver
345        cp -p $v /etc/resolv.conf $NFSROOT/etc/resolv.conf # this is needed during make-fai-nfsroot
346      $ROOTCMD apt-get update      $ROOTCMD apt-get update
347      $ROOTCMD apt-get -fyu install      $ROOTCMD apt-get -fyu install
348      $ROOTCMD apt-get check      $ROOTCMD apt-get check
# Line 402  setup_dhcp(){ Line 417  setup_dhcp(){
417  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
418  fdivert() {  fdivert() {
419    
420        local item
421      for item in "$@"; do      for item in "$@"; do
422          LC_ALL=C $ROOTCMD dpkg-divert --quiet --package fai --add --rename $item          LC_ALL=C $ROOTCMD dpkg-divert --quiet --package fai --add --rename $item
423      done      done
# Line 431  if [ -f $KERNELPACKAGE ]; then Line 447  if [ -f $KERNELPACKAGE ]; then
447          esac          esac
448      done      done
449  else  else
450      echo "Kernel package $KERNELPACKAGE not found."      merror="with errors"
451        echo "Error. Kernel package $KERNELPACKAGE not found."
452      echo "No install kernel installed in /boot/fai."      echo "No install kernel installed in /boot/fai."
453      echo "No kernel modules available in nfsroot."      echo "No kernel modules available in nfsroot."
454  fi  fi
# Line 439  fi Line 456  fi
456  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
457  # main routine  # main routine
458    
459    # remove all kernels from nfsroot
460    [ -n "$kremove" ] && {
461        echo "Removing all kernels from NFSROOT."
462        rm -f $NFSROOT/boot/{System.map,vmlinuz,config}*
463        rm -rf $NFSROOT/lib/modules/2.*
464    }
465  # just install a new kernel to the nfsroot  # just install a new kernel to the nfsroot
466  [ -n "$kinstall" ] && {  [ -n "$kinstall" ] && {
467      trap "true" EXIT      trap "true" EXIT

Legend:
Removed from v.2450  
changed lines
  Added in v.2758

  ViewVC Help
Powered by ViewVC 1.1.5