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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2478 - (hide annotations) (download)
Sat Oct 23 22:25:21 2004 UTC (8 years, 7 months ago) by lange
Original Path: trunk/scripts/make-fai-nfsroot
File size: 16154 byte(s)
typo
1 lange 1867 #! /bin/bash
2 lange 2
3     # $Id$
4     #*********************************************************************
5     #
6     # make-fai-nfsroot -- create nfsroot directory and add additional packages
7     #
8     # This script is part of FAI (Fully Automatic Installation)
9 lange 2137 # (c) 2000-2004 by Thomas Lange, lange@informatik.uni-koeln.de
10 lange 2 # Universitaet zu Koeln
11     #
12     #*********************************************************************
13     # This program is free software; you can redistribute it and/or modify
14     # it under the terms of the GNU General Public License as published by
15     # the Free Software Foundation; either version 2 of the License, or
16     # (at your option) any later version.
17     #
18     # This program is distributed in the hope that it will be useful, but
19     # WITHOUT ANY WARRANTY; without even the implied warranty of
20     # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21     # General Public License for more details.
22     #
23     # A copy of the GNU General Public License is available as
24     # `/usr/share/common-licences/GPL' in the Debian GNU/Linux distribution
25     # or on the World Wide Web at http://www.gnu.org/copyleft/gpl.html. You
26     # can also obtain it by writing to the Free Software Foundation, Inc.,
27     # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28     #*********************************************************************
29    
30 lange 2137
31 lange 1303 PATH=/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin
32 lange 2
33 lange 1297 if [ `id -u` -ne 0 ]; then
34 lange 1035 echo "Run this program as root."
35     exit 9
36 lange 485 fi
37    
38 lange 1990 merror="properly"
39 lange 2460 # option e currently does nothing
40     while getopts ervc:f:kK opt ; do
41 lange 1035 case "$opt" in
42 lange 2137 c) cfdir=$OPTARG ;;
43 lange 2157 v) verbose=1 ; v=-v ;;
44 lange 1035 r) recover=1 ;;
45 lange 1814 f) cfg=$OPTARG ;;
46 lange 2406 k) kinstall=1 ;;
47 lange 2460 K) kremove=1; kinstall=1 ;;
48     e) expert=1 ;;
49 lange 2137 ?) exit 5 ;; # error in option parsing
50 lange 1035 esac
51 lange 119 done
52    
53 lange 330 set -e
54 lange 2137
55     [ -z "$cfdir" ] && cfdir=/etc/fai
56     if [ ! -d "$cfdir" ]; then
57     echo "$cfdir is not a directory"
58     exit 6
59     fi
60     [ "$verbose" ] && echo "Using configuration files from directory $cfdir"
61 lange 1814 if [ -n "$cfg" ]; then
62 lange 2137 . $cfdir/$cfg
63 lange 1814 else
64 lange 2137 . $cfdir/fai.conf
65 lange 1814 fi
66 lange 1035
67 lange 2298 # read config file for this tool
68     if [ -f "$cfdir/make-fai-nfsroot.conf" ]; then
69     . $cfdir/make-fai-nfsroot.conf
70     else
71     echo "Can't read $cfdir/make-fai-nfsroot.conf"
72     exit 8
73     fi
74    
75 lange 2137 if [ -z "$NFSROOT" ]; then
76     echo "\$NFSROOT is not set. Please check your settings in $cfdir/fai.conf."
77     exit 4
78     fi
79    
80 lange 2298 if [ "$FAI_SOURCES_LIST" ]; then
81 lange 2478 echo "The usage of the variable \$FAI_SOURCES_LIST is deprecated. Please use sources.list now."
82 lange 2298 exit 3
83     fi
84    
85     if [ ! -s "$cfdir/sources.list" -a ! -f /etc/apt/sources.list ]; then
86     echo "Neither $cfdir/sources.list nor /etc/apt/sources.list exists."
87 lange 2152 echo "I think something is wrong. Can't continue."
88     exit 7
89     fi
90    
91 lange 2204 kfile="vmlinuz"
92 lange 1791 case `uname -m` in
93 lange 2241 i386|i486|i586|i686|amd64)
94     arch_packages="grub lilo read-edid kudzu hwtools dmidecode" ;;
95 lange 2204
96 lange 1791 ia64)
97 lange 2193 arch_packages="elilo gnu-efi efibootmgr" ;;
98 lange 2204
99     sparc|sparc64)
100 lange 2193 arch_packages="silo sparc-utils" ;;
101    
102 lange 2204 ppc)
103     arch_packages=""
104     kfile="vmlinux" ;;
105    
106 lange 2477 alpha)
107     arch_packages="aboot" ;;
108    
109 lange 1791 *) arch_packages="" ;;
110     esac
111 lange 2288 packages="$packages
112     $arch_packages"
113 lange 1791
114 lange 491 ROOTCMD="chroot $NFSROOT"
115 lange 119
116 lange 2137 RUNDIR=/var/run/fai/make-fai-nfsroot
117 lange 2241 [ ! -d $RUNDIR ] && mkdir -p $RUNDIR
118 lange 691 LIBFAI=/usr/lib/fai
119 lange 981 SHAREFAI=/usr/share/fai
120 lange 1161 export DEBIAN_FRONTEND=noninteractive
121 lange 2137 [ "$recover" ] || rm -rf $RUNDIR/*
122 lange 2
123 lange 581 trap "umount_dirs" EXIT
124 lange 1961 trap "bad_exit" ERR
125 lange 2 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
126 lange 1961 bad_exit() {
127    
128 lange 1990 merror="with errors"
129 lange 1961 echo "An error occured during make-fai-nfsroot."
130     echo "Please fix the error or try make-fai-nfsroot -v"
131     }
132     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
133 lange 203 die() {
134    
135 lange 1028 echo "$@"
136 lange 203 exit 99
137     }
138     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
139 lange 1035 call_with_stamp() {
140    
141     local func=$1
142     local stamp=$RUNDIR/$func
143     # call subroutine
144     [ "$recover" -a -f $stamp ] && return 0
145     "$@"
146     > $stamp
147     }
148     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
149 lange 888 call_verbose() {
150    
151     if [ "$verbose" ]; then
152 lange 1035 "$@"
153 lange 888 else
154 lange 1035 "$@" > /dev/null
155 lange 888 fi
156     }
157     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
158 lange 545 install_kernel_nfsroot() {
159 lange 597
160 lange 545 rm -rf $NFSROOT/boot/*-$KERNELVERSION $NFSROOT/lib/modules/$KERNELVERSION
161 lange 999 # since woody we can install the kernel using dpkg -i
162     echo "do_boot_enable=no" > $NFSROOT/etc/kernel-img.conf
163 lange 545 dpkg -x $KERNELPACKAGE $NFSROOT
164     # if $NFROOT/proc/modules exists, then update-modules calls depmod -a without
165     # these special flags; so umount first
166 lange 1035 [ -e $NFSROOT/proc/modules ] && umount $NFSROOT/proc
167 lange 545 chroot $NFSROOT update-modules
168 lange 2372 chroot $NFSROOT depmod -qaF /boot/System.map-$KERNELVERSION $KERNELVERSION || true
169 lange 545 }
170     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
171 lange 69 setup_ssh() {
172    
173 lange 485 # nothing to do if no ssh is available in nfsroot
174     [ -f $NFSROOT/var/lib/dpkg/info/ssh.list ] || return 0
175 lange 425 mkdir -p -m 700 $NFSROOT/root/.ssh
176 lange 1040 if [ -n "$LOGUSER" ] ; then
177     loguserhome=`eval "cd ~$LOGUSER 2>/dev/null && pwd;true"`
178 lange 1278 # is copying of *.pub important?
179 lange 1601 [ -f $loguserhome/.ssh/known_hosts ] && cp $loguserhome/.ssh/known_hosts $NFSROOT/root/.ssh/known_hosts
180 lange 1255 [ -d $loguserhome/.ssh ] && {
181     [ -f $loguserhome/.ssh/id_dsa ] &&
182     cp -p $loguserhome/.ssh/id_dsa* $NFSROOT/root/.ssh/
183     [ -f $loguserhome/.ssh/id_rsa ] &&
184     cp -p $loguserhome/.ssh/id_rsa* $NFSROOT/root/.ssh/
185     cp -p $loguserhome/.ssh/*.pub $NFSROOT/root/.ssh/
186     }
187 lange 1040 fi
188 lange 425
189 lange 119 # enable root login
190     perl -pi -e 's/PermitRootLogin no/PermitRootLogin yes/' $NFSROOT/etc/ssh/sshd_config
191     if [ -f "$SSH_IDENTITY" ]; then
192 lange 1737 cp $SSH_IDENTITY $NFSROOT/root/.ssh/authorized_keys
193     chmod 0644 $NFSROOT/root/.ssh/authorized_keys
194 lange 1035 echo You can log into install clients without password using $SSH_IDENTITY
195 lange 119 fi
196 lange 69 }
197     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
198 lange 119 copy_fai_files() {
199 lange 2
200 lange 485 # copy to nfsroot
201 lange 1084 perl -pi -e "s#^root::#root:${FAI_ROOTPW}:#" etc/passwd
202 lange 2061 mkdir -p $NFSROOT/$SHAREFAI $NFSROOT/$LIBFAI $NFSROOT/etc/fai
203 lange 485 cd $NFSROOT
204 lange 2386 fdivert /etc/dhcp3/dhclient-script /etc/dhcp3/dhclient.conf
205 lange 1737 cp -p $SHAREFAI/etc/dhclient.conf etc/dhcp3
206 lange 2246 cp -Rpv $cfdir/* $NFSROOT/etc/fai
207 lange 2305 rm -f $NFSROOT/etc/fai/make-fai-nfsroot.conf
208 lange 2246 [ -f $cfdir/.cvspass ] && cp -p $v $cfdir/.cvspass $NFSROOT/.cvspass
209 lange 936 cp -p $LIBFAI/sbin/* sbin/
210 lange 2386 mv sbin/dhclient-script etc/dhcp3
211 lange 2241 cp -p /usr/sbin/{ftar,fcopy,install_packages} usr/sbin/
212 lange 1763 cp -p /usr/bin/{fai-do-scripts,fai-class} usr/bin/
213 lange 1316 cp -p $LIBFAI/* usr/lib/fai 2>/dev/null || true # cp will complain about directories
214 lange 981 cp -p $SHAREFAI/etc/fai_modules_off etc/modutils/
215 lange 485
216 lange 1120 cp -p $SHAREFAI/subroutines* usr/share/fai
217 lange 2246 cp -p $v $SHAREFAI/etc/apt.conf $NFSROOT/etc/apt
218 lange 1212 cp -p /usr/share/perl5/Debian/Fai.pm usr/share/perl5/Debian/
219 lange 2456 $ROOTCMD pwconv # enable shadow
220 lange 119 }
221     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
222 lange 661 call_debootstrap() {
223 lange 1035
224 lange 674 echo "Creating nfsroot for $1 using debootstrap"
225 lange 1536 [ "$verbose" ] && echo "Calling debootstrap $1 $NFSROOT $2"
226 lange 2137 yes '' | LC_ALL=C call_verbose debootstrap $FAI_DEBOOTSTRAP_OPTS $1 $NFSROOT $2 || true
227 lange 661 }
228     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
229     create_base() {
230    
231 lange 669 if [ "$FAI_DEBOOTSTRAP" ]; then
232 lange 1475 call_with_stamp call_debootstrap $FAI_DEBOOTSTRAP
233 lange 1035 $ROOTCMD apt-get clean
234     echo "Creating base.tgz"
235 lange 2101 tar -l -C $NFSROOT -cf - --exclude var/tmp/base.tgz . | gzip > $NFSROOT/var/tmp/base.tgz
236 lange 661 else
237 lange 1284 die "\$FAI_DEBOOTSTRAP not defined."
238 lange 661 fi
239     }
240     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
241 lange 119 create_nfsroot() {
242    
243 lange 999 mkdir -p $NFSROOT/$FAI
244 lange 217 cd $NFSROOT || die "Error: Can't cd to $NFSROOT"
245 lange 119
246 lange 1035 call_with_stamp create_base
247    
248 lange 480 if [ "$FAI_DEBMIRROR" ]; then
249 lange 2152 [ "$verbose" ] && echo "Mounting $FAI_DEBMIRROR to $NFSROOT/$MNTPOINT."
250 lange 1035 mkdir -p $NFSROOT/$MNTPOINT
251 lange 1278 mount -o ro,noatime,rsize=8192 $FAI_DEBMIRROR $NFSROOT/$MNTPOINT || \
252 lange 2152 die "Can't mount $FAI_DEBMIRROR to $NFSROOT/$MNTPOINT."
253 lange 1035 fi
254 lange 203
255 lange 119 # hoaks some packages
256 lange 889 # liloconfig, dump and raidtool2 needs these files
257     echo "# UNCONFIGURED FSTAB FOR BASE SYSTEM" > etc/fstab
258 lange 683 > etc/raidtab
259 lange 217 mkdir -p lib/modules/$KERNELVERSION # dirty trick to hoax lvm
260 lange 683 > lib/modules/$KERNELVERSION/modules.dep # dirty trick to hoax lvm
261 lange 1080 echo 'NTPSERVERS=""' > etc/default/ntp-servers
262 lange 908
263 lange 2436 [ -d $NFSROOT/var/state ] || mkdir $NFSROOT/var/state
264 lange 2298 [ "$verbose" ] && echo "Try to copy $cfdir/sources.list or /etc/apt/sources.list."
265     cp -v $cfdir/sources.list $NFSROOT/etc/apt/sources.list || \
266     cp -v /etc/apt/sources.list $NFSROOT/etc/apt/sources.list || \
267     { echo "No sources.list file found."
268 lange 2152 echo "I think something is wrong. But I'll try to continue."
269 lange 2298 }
270 lange 2363
271     echo "127.0.0.1 localhost" >> etc/hosts
272 lange 2050 echo "$NFSROOT_ETC_HOSTS" >> etc/hosts
273 lange 2246 [ -f /etc/apt/preferences ] && cp -v /etc/apt/preferences $NFSROOT/etc/apt
274     [ -f $cfdir/preferences ] && cp -v $cfdir/preferences $NFSROOT/etc/apt
275 lange 888 echo "Upgrading $NFSROOT"
276 lange 2137 LC_ALL=C call_verbose call_with_stamp upgrade_nfsroot
277 lange 888 echo "Adding additional packages to $NFSROOT:"
278     echo "$packages"
279 lange 2137 LC_ALL=C call_verbose call_with_stamp add_packages_nfsroot
280 lange 1035 call_with_stamp copy_fai_files
281 lange 119
282 lange 2241 # set timezone in nfsroot
283     timezone=$(readlink /etc/localtime | sed 's%^/usr/share/zoneinfo/%%')
284     echo $timezone > etc/timezone
285     rm -f etc/localtime && ln -sf /usr/share/zoneinfo/$timezone etc/localtime
286 lange 119
287 lange 485 # make little changes to nfsroot, because nfsroot is
288 lange 217 # read only for the install clients
289 lange 1112 rm -rf etc/mtab var/run etc/sysconfig
290 lange 485 ln -s /proc/mounts etc/mtab
291 lange 1792 ln -s /tmp/var/run var/run
292 lange 2372 ln -sf /tmp/var/state/discover var/state/discover
293 lange 1792 ln -s /tmp/etc/syslogsocket dev/log
294 lange 485 ln -sf /tmp/etc/resolv.conf etc/resolv.conf
295 lange 1112 ln -sf /tmp etc/sysconfig
296 lange 1255 ln -s ../../sbin/rcS_fai etc/init.d/rcS
297 lange 2450 ln -sf /dev/null etc/network/ifstate
298 lange 714 # for nis
299     [ -d var/yp ] && ln -s /tmp/binding var/yp/binding
300 lange 2
301 lange 217 # turn off logging of loading kernel modules
302 lange 735 [ -d var/log/ksymoops/ ] && rmdir var/log/ksymoops/
303 lange 485 ln -s /dev/null var/log/ksymoops
304 lange 119
305 lange 217 # definition for loopback device
306 lange 485 echo "iface lo inet loopback" > etc/network/interfaces
307 lange 305
308 lange 1327 echo "*.* /tmp/fai/syslog.log" > etc/syslog.conf
309 lange 1211 cat >> root/.profile <<-EOF
310 lange 1322 PATH=/usr/local/sbin:/usr/local/bin:/usr/lib/fai:/bin:/sbin:/usr/bin:/usr/sbin:
311     export PATH
312 lange 1211 . $SHAREFAI/subroutines
313     . $SHAREFAI/subroutines-$OS_TYPE
314     set -a
315 lange 2406 . /tmp/fai/variables.sh 2>/dev/null
316 lange 1211 EOF
317 lange 361
318 lange 1035 call_verbose call_with_stamp setup_ssh
319 lange 119
320 lange 217 cat >$NFSROOT/etc/rc2.d/S01fai_abort <<-EOF
321 lange 1035 #!/bin/sh
322     echo FAI: installation aborted.
323     echo reboot with: faireboot
324     echo or after a logout
325     sh
326     cd /
327     umount -ar
328     reboot -dfi
329 lange 2 EOF
330 lange 217 chmod a+rx $NFSROOT/etc/rc2.d/S01fai_abort
331 lange 1493
332 lange 2248 echo -e "\n$FAI_LOCAL_REPOSITORY" >> etc/apt/sources.list
333 lange 2 }
334     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
335 lange 27 upgrade_nfsroot() {
336 lange 2
337 lange 2158 cp -p $v /etc/resolv.conf $NFSROOT/etc/resolv.conf-installserver
338 lange 491 $ROOTCMD apt-get update
339 lange 2003 $ROOTCMD apt-get -fyu install
340 lange 491 $ROOTCMD apt-get check
341 lange 750 rm -rf $NFSROOT/etc/apm
342 lange 485 mount -t proc /proc $NFSROOT/proc
343 lange 57
344 lange 217 # fake start-stop-dameon
345 lange 2386 fdivert /etc/init.d/rcS /sbin/start-stop-daemon /sbin/discover-modprobe
346 lange 1914 cp /sbin/fai-start-stop-daemon $NFSROOT/sbin/
347     ln -s /sbin/fai-start-stop-daemon $NFSROOT/sbin/start-stop-daemon
348 lange 2101 $ROOTCMD apt-get -y dist-upgrade
349 lange 888 }
350     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
351     add_packages_nfsroot() {
352    
353 lange 491 $ROOTCMD apt-get -y --fix-missing install $packages </dev/null
354 lange 1040 if [ -n "$NFSROOT_PACKAGES" ] ; then
355 lange 2137 LC_ALL=C $ROOTCMD apt-get -y --fix-missing install $NFSROOT_PACKAGES </dev/null
356 lange 1040 fi
357 lange 491 $ROOTCMD apt-get clean
358 lange 2 }
359     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
360 lange 581 umount_dirs() {
361    
362 lange 2406 [ -f $NFSROOT/usr/sbin/dpkg-divert ] &&
363     LC_ALL=C $ROOTCMD dpkg-divert --package fai --rename --remove /sbin/discover-modprobe
364 lange 581 cd /
365     sleep 2
366 lange 2406 [ -d $NFSROOT/proc/self ] && umount $NFSROOT/proc
367     [ -d $NFSROOT/proc/self ] && umount $NFSROOT/dev/pts
368 lange 581 if [ "$FAI_DEBMIRROR" ]; then
369 lange 1035 test -d $NFSROOT/$MNTPOINT && umount $NFSROOT/$MNTPOINT || true
370 lange 581 fi
371     # show directories still mounted on nfsroot
372 lange 586 mount | grep " on $NFSROOT " || true
373 lange 581 }
374     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
375 lange 1022 get_kernel_version() {
376    
377     local package=$1
378 lange 1808 KERNELVERSION=`dpkg --info $package | grep "Package: kernel-image" | sed -e 's/.*kernel-image-'//`
379 lange 1022 }
380     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
381 lange 1035 setup_bootp(){
382    
383 lange 2241 if [ -x "`which mkelf-linux`" ]; then
384     mkelf-linux --ip=any --output=/boot/fai/installimage \
385 lange 2204 $NFSROOT/boot/$kfile-$KERNELVERSION
386 lange 1278 else
387 lange 2241 echo "Command mkelf-linux not found. Can not set up BOOTP booting. Please install the package mknbi and rerun fai-setup."
388 lange 1553 return
389 lange 1035 fi
390 lange 1278
391     # imggen is free software from 3com - use ver1.00: 1.01 produces "Image too Big" errors.
392     # it converts netboot images to images which are bootable by 3com network cards
393     if [ -x "`which imggen`" ]; then
394     imggen -a /boot/fai/installimage /boot/fai/installimage_3com
395     fi
396 lange 1035 echo "BOOTP environment prepared."
397     }
398    
399     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
400     setup_dhcp(){
401    
402     # pxe and dhcp environment
403 lange 1255 local pxebin=/usr/lib/syslinux/pxelinux.0
404 lange 2204 cp -p $NFSROOT/boot/$kfile-$KERNELVERSION /boot/fai/$kfile-install
405 lange 1255 [ -f $pxebin ] && cp $pxebin /boot/fai
406 lange 1769 [ -d /boot/fai/pxelinux.cfg ] || mkdir -p /boot/fai/pxelinux.cfg || true
407     echo "DHCP environment prepared. If you want to use it, you have to enable the dhcpd and the tftp-hpa daemon."
408 lange 1035 }
409     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
410 lange 2386 fdivert() {
411    
412     for item in "$@"; do
413     LC_ALL=C $ROOTCMD dpkg-divert --quiet --package fai --add --rename $item
414     done
415     }
416     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
417 lange 2406 kernel_install() {
418 lange 169
419 lange 1035 # Install the kernel package
420 lange 545 if [ -f $KERNELPACKAGE ]; then
421 lange 1022 # determine kernel version
422     get_kernel_version $KERNELPACKAGE
423 lange 1035
424 lange 545 # create tftp boot images
425 lange 1035 call_with_stamp install_kernel_nfsroot
426 lange 914
427 lange 1769 # setup for DHCP, BOOTP or both
428     [ "x$FAI_BOOT" = "x" ] && FAI_BOOT="dhcp bootp"
429    
430     for bootopt in $FAI_BOOT; do
431     case $bootopt in
432     dhcp|DHCP)
433     call_with_stamp setup_dhcp ;;
434     bootp|BOOTP)
435     call_with_stamp setup_bootp ;;
436     *)
437     echo "Unknown boot option" ;;
438     esac
439     done
440 lange 545 else
441 lange 2474 merror="with errors"
442     echo "Error. Kernel package $KERNELPACKAGE not found."
443 lange 597 echo "No install kernel installed in /boot/fai."
444     echo "No kernel modules available in nfsroot."
445 lange 545 fi
446 lange 2406 }
447     # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
448     # main routine
449 lange 545
450 lange 2460 # remove all kernels from nfsroot
451     [ -n "$kremove" ] && {
452     echo "Removing all kernels from NFSROOT."
453     rm -f $NFSROOT/boot/{System.map,vmlinuz,config}*
454     rm -rf $NFSROOT/lib/modules/2.*
455     }
456 lange 2406 # just install a new kernel to the nfsroot
457     [ -n "$kinstall" ] && {
458     trap "true" EXIT
459     echo "Installing new kernel into the nfsroot."
460     kernel_install
461     echo "New kernel from $KERNELPACKAGE installed into the nfsroot."
462     exit
463     }
464    
465     echo Creating FAI nfsroot can take a long time and will
466     echo need more than $nfssize disk space in $NFSROOT.
467    
468     # Kill the directory if not in recover mode
469     if [ -d $NFSROOT/$FAI -a ! "$recover" ]
470     then
471     echo $NFSROOT already exists. Removing $NFSROOT
472     umount $NFSROOT/dev/pts 1>/dev/null 2>&1 || true
473     rm -rf $NFSROOT/.??* $NFSROOT/*
474     # also remove files $NFSROOT/.? but not . and ..
475     find $NFSROOT ! -type d -xdev -maxdepth 1 | xargs -r rm -f
476     fi
477    
478     # Create a new nfsroot
479     call_with_stamp create_nfsroot
480    
481     kernel_install
482    
483 lange 2436 umount_dirs
484     trap "true" EXIT
485 lange 1961 echo "make-fai-nfsroot finished $merror."
486 lange 14 exit 0

Properties

Name Value
svn:eol-style native
svn:executable *
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.5