- Timestamp:
- 02/05/10 19:55:47 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/linuxmuster-linbo/branches/testing/share/make-linbo-media.sh
r585 r591 24 24 echo " -b create debug menu entries" 25 25 echo " -c create cdrom media, has to be used with -d or -i" 26 echo " -d <device> writes directly to device (optional), cann be used with -c or -u" 27 echo " -g <group1,group2,...> list of hostgroups to build for (optional, default: default)" 26 echo " -d <device> writes directly to device (optional), can be used" 27 echo " with -c or -u" 28 echo " -g <group1,group2,...> list of hostgroups to build for, optional," 29 echo " if -g is not given, default group is used." 28 30 echo " -i <output dir> creates cdrom iso in output dir" 31 echo " -n no strict checking for linbo ssh server, allows" 32 echo " password based logins, needs -p for root pw, optional" 33 echo " -p <password> sets local linbo admin password, is also used for" 34 echo " root ssh login if password logins are allowed, optional" 35 echo " -r remove server root's public ssh key" 29 36 echo " -u create usb media, has to be used with -d or -z" 30 echo " -z <output dir> creates zip archive with usb boot media files in output dir" 37 echo " -z <output dir> creates zip archive with usb boot media files in" 38 echo " output dir" 31 39 echo 32 40 echo " Examples:" 33 41 echo 34 42 echo " `basename $0` -c -i /home/administrators/administrator" 35 echo " writes a cdrom iso image for default group to administrator's home"43 echo " writes a cdrom iso image for default group to administrator's home" 36 44 echo 37 45 echo " `basename $0` -c -i /var/linbo -g room123" 38 echo " writes a cdrom iso image for computer group room123 to /var/linbo"46 echo " writes a cdrom iso image for computer group room123 to /var/linbo" 39 47 echo 40 48 echo " `basename $0` -c -d /dev/cdrom" 41 echo " burns a cdrom directly to device /dev/cdrom"49 echo " burns a cdrom directly to device /dev/cdrom" 42 50 echo 43 51 echo " `basename $0` -u -g room123,default -d /dev/sdc" 44 echo " writes a bootable usb media to /dev/sdc for groups room123 and default"52 echo " writes a bootable usb media to /dev/sdc for groups room123 and default" 45 53 echo 46 54 echo " `basename $0` -u -z /home/teachers/zell" 47 echo " writes a zip archive with usb boot media files for default group to teacher zell's home" 55 echo " writes a zip archive with usb boot media files for default group to" 56 echo " teacher zell's home" 48 57 exit 1 49 58 } … … 51 60 52 61 # process cmdline 53 while getopts ":bcd:g:hi: uz:" opt; do62 while getopts ":bcd:g:hi:np:ruz:" opt; do 54 63 case $opt in 55 64 b) DEBUG=yes ;; … … 71 80 OUTDIR=$OPTARG 72 81 [ -z "$OPTARG" ] && OUTDIR=`pwd` ;; 82 n) NOSTRICT=yes ;; 83 p) PASSWORD=$OPTARG ;; 84 r) REMKEY=yes ;; 73 85 u) USB=yes 74 86 [ -n "$CDROM" ] && usage … … 89 101 [ -z "$CDROM" -a -z "$USB" ] && usage 90 102 [ -z "$DEVICE" -a -z "$ISO" -a -z "$ZIP" ] && usage 103 [ -n "$NOSTRICT" -a -z "$PASSWORD" ] && usage 91 104 if [ -n "$ZIP" -o -n "$ISO" ]; then 92 105 if [ ! -d "$OUTDIR" ]; then … … 146 159 LINBOFS=linbofs.gz 147 160 161 # determine linbo append params from group's pxe configfile 162 get_append_line() { 163 append_linbo="" 164 append_debug="" 165 local params="" 166 local line="" 167 local opt="" 168 local val="" 169 local j="" 170 local found=false 171 local cfg=$LINBODIR/pxelinux.cfg/$i 172 if [ -e "$cfg" ]; then 173 while read line; do 174 opt="$(echo $line | tr A-Z a-z | awk '{ print $1 }')" 175 val="$(echo $line | tr A-Z a-z | awk '{ print $2 }')" 176 [ "$opt" = "kernel" -a "$val" = "linbo" ] && found=true 177 if [ "$found" = "true" -a "$opt" = "append" ]; then 178 for j in $line; do 179 case $j in 180 [Aa][Pp][Pp][Ee][Nn][Dd]|[Ii][Nn][Ii][Tt][Rr][Dd]*|[Qq][Uu][Ii][Ee][Tt]|[Dd][Ee][Bb][Uu][Gg]) ;; 181 *) if [ -z "$params" ]; then params="$j"; else params="$params $j"; fi ;; 182 esac 183 done 184 break 185 fi 186 done <$cfg 187 fi 188 [ "$found" = "false" ] && echo "Warning: KERNEL linbo not found in pxe config for group $i, using default values." 189 if [ -z "$params" ]; then 190 params="vga=788" 191 [ "$found" = "true" ] && echo "Warning: No LINBO parameters found in pxe config for group $i, using default values." 192 fi 193 append_linbo="APPEND initrd=/$i/linbofs.gz $params quiet" 194 append_debug="APPEND initrd=/$i/linbofs.gz $params debug" 195 echo "LINBO parameters for $i: $params" 196 } 197 148 198 # write sys/isolinux config file 149 199 writecfg() { … … 154 204 local sysdir=/$2 155 205 fi 156 local append1157 local append2158 206 local RC=1 159 echo "DEFAULT $sysdir/vesamenu.c32207 echo "DEFAULT $sysdir/vesamenu.c32 160 208 KBDMAP $sysdir/german.kbd 161 209 PROMPT 0 … … 172 220 for i in $GRPS_CHECKED; do 173 221 174 append1=`grep ^APPEND $LINBODIR/pxelinux.cfg/$i | grep linbofs.gz | grep -vw debug | tail -1 | sed -e "s|linbofs.gz|/linbofs.$i.gz|"` 175 append2=`grep ^APPEND $LINBODIR/pxelinux.cfg/$i | grep linbofs.gz | grep -w debug | tail -1 | sed -e "s|linbofs.gz|/linbofs.$i.gz|"` 222 get_append_line 176 223 177 224 echo "LABEL menu$m 178 225 MENU LABEL ^$m. LINBO: $i 179 226 KERNEL /linbo 180 $append 1227 $append_linbo 181 228 " >> $outfile 182 229 … … 185 232 MENU LABEL ^$(($m +1)). LINBO: $i (debug) 186 233 KERNEL /linbo 187 $append 2234 $append_debug 188 235 " >> $outfile 189 236 m=$(($m +1)) … … 215 262 cd $TMPDIR 216 263 zcat $LINBODIR/$LINBOFS | cpio -i -d -H newc --no-absolute-filenames &> /dev/null || exit 1 264 # change passwords 265 if [ -n "$PASSWORD" ]; then 266 # root password 267 echo "/bin/echo root:$PASSWORD | /usr/sbin/chpasswd" > passwd.sh 268 chroot $TMPDIR /bin/sh /passwd.sh 269 rm passwd.sh 270 # md5sum of linbo password 271 local linbo_md5passwd=`echo -n $PASSWORD | md5sum | awk '{ print $1 }'` 272 echo -n "$linbo_md5passwd" > etc/linbo_passwd 273 echo "Local password for LINBO admin changed" 274 fi 275 # change dropbear options 276 if [ "$NOSTRICT" = "yes" ]; then 277 echo "Allowing password based ssh logins." 278 sed -e 's|^/sbin/dropbear .*|/sbin/dropbear -E -p 2222|' -i init.sh 279 fi 280 # remove server root's public ssh key 281 if [ "$REMKEY" = "yes" ]; then 282 echo "Removing authorized_keys." 283 rm -f .ssh/authorized_keys 284 fi 217 285 for g in $GRPS_CHECKED; do 218 286 echo -n "Creating linbofs.gz for group $g ... " … … 223 291 fi 224 292 # pack linbofs.gz 225 find . | cpio --quiet -o -H newc | gzip -9c > $MNTPNT/linbofs.$g.gz ; RC="$?" || exit 1 293 mkdir -p $MNTPNT/$g 294 find . | cpio --quiet -o -H newc | gzip -9c > $MNTPNT/$g/linbofs.gz ; RC="$?" || exit 1 226 295 echo "Ok!" 227 296 done
Note: See TracChangeset
for help on using the changeset viewer.
