SAWADA Keiji
card_capto****@users*****
2006年 3月 12日 (日) 14:18:56 JST
Index: dlkit2/.cvsignore diff -u dlkit2/.cvsignore:1.3 dlkit2/.cvsignore:1.3.4.1 --- dlkit2/.cvsignore:1.3 Sun Feb 26 15:58:40 2006 +++ dlkit2/.cvsignore Sun Mar 12 14:18:56 2006 @@ -1,5 +1 @@ -config.in site_* -.v.* -sv.*.conf -cl.trandir Index: dlkit2/ChangeLog diff -u dlkit2/ChangeLog:1.1.1.1 dlkit2/ChangeLog:1.1.1.1.4.1 --- dlkit2/ChangeLog:1.1.1.1 Fri Feb 24 01:15:29 2006 +++ dlkit2/ChangeLog Sun Mar 12 14:18:56 2006 @@ -1,3 +1,7 @@ +2006-03-03 ksw <card_capto****@users*****> + + * 複数クライアント対応開始 + 2006-02-24 ksw <card_capto****@users*****> * 0.2.x系列の開発開始 Index: dlkit2/Makefile diff -u dlkit2/Makefile:1.6.4.1 dlkit2/Makefile:1.6.4.2 --- dlkit2/Makefile:1.6.4.1 Fri Mar 3 10:11:12 2006 +++ dlkit2/Makefile Sun Mar 12 14:18:56 2006 @@ -46,5 +46,3 @@ chroot: env LANG= LC_MESSAGES= chroot FIN_ROOT /bin/tcsh - - Index: dlkit2/TODO diff -u dlkit2/TODO:1.5 dlkit2/TODO:1.5.4.1 --- dlkit2/TODO:1.5 Fri Mar 3 09:23:42 2006 +++ dlkit2/TODO Sun Mar 12 14:18:56 2006 @@ -33,3 +33,17 @@ * disklessifyにインストールDVD(orイメージ)が必要になってしまった クライアントをローカルからブートしている時に実行する新しい cl.disklessify が欲しい。 + +* timezone、キーボード、カーネル、ドライバ等、変更時の鯖側でのboot_archive + のコピー 何とか自動化したい + * tftpの/を/にすれば、もちろんシンボリックリンクが使えるが、大概/bootは + 鯖自身の起動の為に使用している。しかし、現在のbuggyなpxegrubでも最初は + /menu.lstを読みにいくので、この方法、使えなくもない + * tftpの/をSV_FIN_ROOT/platform/i86pcにすればもちろんコピーの必要はないが、 + 弊害も非常に大きい + * 理想は、自由に接ぎ木できる高機能なtftpdを導入、あるいは自作すること。 + +* cl.disklessifyは、今のままならメニューを付けたほうがいい。あるいは自動で + -copyと-bootenvをやってしまうようにするか + +* disklessとdisklessifyのmenu.lstのタイトルの文言を簡潔にして下さい。 Index: dlkit2/cl.diskless-installer diff -u dlkit2/cl.diskless-installer:1.7 dlkit2/cl.diskless-installer:1.8 --- dlkit2/cl.diskless-installer:1.7 Fri Mar 3 09:52:54 2006 +++ dlkit2/cl.diskless-installer Sat Mar 4 00:04:50 2006 @@ -42,6 +42,13 @@ mount -F nfs -o $CL_MOUNT_OPTION $SV_IPADDR:$SV_DVDDIR /cdrom } +check_fin_root_clean() { + if [ `/bin/ls $CL_ROOT|wc -l` -ne 0 ]; then + echo "Error: Installation aborted. SV_FIN_ROOT is not clean" + exit 1 + fi +} + install_pkgs() { mkdir -p $LOGDIR set +e @@ -247,6 +254,7 @@ case "$1" in -nopkg) mount_fin_root + check_fin_root_clean mount_cdrom install_non_std_driver config_etc @@ -258,6 +266,7 @@ *) mount_fin_root + check_fin_root_clean mount_cdrom install_pkgs install_non_std_driver Index: dlkit2/cl.disklessify diff -u dlkit2/cl.disklessify:1.5 dlkit2/cl.disklessify:1.6 --- dlkit2/cl.disklessify:1.5 Fri Mar 3 09:52:54 2006 +++ dlkit2/cl.disklessify Sat Mar 4 00:04:50 2006 @@ -8,6 +8,13 @@ printf "%s" "$@" } +usage() { + echo + echo "Usage: $0 {-probe | -copy | -bootenv}" + exit 0 +} + + backup_file() { file=${1:?} if [ ! -f "$file.localdisk" ]; then @@ -131,54 +138,46 @@ fi } -#---------------------------------------------------------------------- - -mode=${1:--probe} - -trandir=/cl.trandir -. $trandir/config.in - -check_nfsroot - -umount /localdisk > /dev/null 2>&1 -mkdir -p /localdisk +is_fin_root_notclean() { + if [ `/bin/ls $CL_ROOT|wc -l` -ne 0 ]; then + echo "Error: Operation aborted. SV_FIN_ROOT is not clean" + return 0 + else + return 1 + fi +} -echo "Mounting $CL_ROOT on $SV_IPADDR:$SV_FIN_ROOT..." -umount $CL_ROOT > /dev/null 2>&1 -mount $SV_IPADDR:$SV_FIN_ROOT $CL_ROOT +find_root_slice() { + echo "Searching for ufs slice(s) on local disk(s)... " + for ldev in `enum_slices` + do + if slice_is_ufs "$ldev"; then + ufs_slices="$ufs_slices $ldev" + fi + done -echo "Searching for ufs slice(s) on local disk(s)... " -for ldev in `enum_slices` -do - if slice_is_ufs "$ldev"; then - ufs_slices="$ufs_slices $ldev" - fi -done - -for ldev in $ufs_slices -do - echon "Checking if $ldev is root slice... " - if slice_is_root_slice "$ldev"; then - echo "yes"; root_slice="$ldev" - else - echo "no" - fi -done -if [ -z "$root_slice" ]; then - echo "Error: root slice not found"; exit 1 -fi - -echo "Gathering /dev and vfstab info from root slice..." -mount -F ufs -o ro $root_slice /localdisk -(cd /localdisk - cp etc/vfstab /tmp/.v.vfstab - find ./dev -type l -ls > /tmp/.v.ldisk_devlist) -(cd / - find ./dev -type l -ls > /tmp/.v.curr_devlist) -umount /localdisk + for ldev in $ufs_slices + do + echon "Checking if $ldev is root slice... " + if slice_is_root_slice "$ldev"; then + echo "yes"; root_slice="$ldev" + else + echo "no" + fi + done + if [ -z "$root_slice" ]; then + echo "Error: root slice not found"; exit 1 + fi -#---------------------------------------------------------------------- -# + echo "Gathering /dev and vfstab info from root slice..." + mount -F ufs -o ro $root_slice /localdisk + (cd /localdisk + cp etc/vfstab /tmp/.v.vfstab + find ./dev -type l -ls > /tmp/.v.ldisk_devlist) + (cd / + find ./dev -type l -ls > /tmp/.v.curr_devlist) + umount /localdisk +} copy_local_disks() { echo "Copying ufs directories on local disk(s)... " @@ -301,16 +300,44 @@ mkdir -p $CL_ROOT/etc/skel/.gnome2/panel2.d/default/launchers } +#---------------------------------------------------------------------- + +#mode=${1:--probe} +mode=${1} +[ -z "$mode" ] && usage && exit 1 + +trandir=/cl.trandir +. $trandir/config.in + +check_nfsroot + +umount /localdisk > /dev/null 2>&1 +mkdir -p /localdisk + +echo "Mounting $CL_ROOT on $SV_IPADDR:$SV_FIN_ROOT..." +umount $CL_ROOT > /dev/null 2>&1 +mount $SV_IPADDR:$SV_FIN_ROOT $CL_ROOT case "x$mode" in + x-probe) + find_root_slice + enum_local_disks ;; x-copy) + if is_fin_root_notclean; then + echo "Unmounting $CL_ROOT..." + umount $CL_ROOT > /dev/null 2>&1 + exit 1 + fi + find_root_slice copy_local_disks ;; x-bootenv) + find_root_slice setup_bootenv ;; *) - enum_local_disks ;; + usage ;; esac + echo "Unmounting $CL_ROOT..." umount $CL_ROOT rmdir /localdisk Index: dlkit2/cl.install-setup-diskless diff -u dlkit2/cl.install-setup-diskless:1.2 dlkit2/cl.install-setup-diskless:1.3 --- dlkit2/cl.install-setup-diskless:1.2 Thu Mar 2 23:06:41 2006 +++ dlkit2/cl.install-setup-diskless Sat Mar 4 00:04:50 2006 @@ -20,14 +20,10 @@ Solaris/x86 diskless-kit2: diskless [0;39m' -if [ -f /cl.trandir/cl.diskless-installer ]; then - if ( sh /cl.trandir/cl.diskless-installer ); then +if ( sh /cl.trandir/cl.diskless-installer ); then # installation successful : - else - echo "Installation failed. Fix problem and exit shell." - fi else - echo "Error: cannot run /cl.trandir/cl.diskless-installer" + echo "Installation failed. Fix problem and exit shell." fi exec /bin/sh Index: dlkit2/cl.install-setup-disklessify diff -u dlkit2/cl.install-setup-disklessify:1.3 dlkit2/cl.install-setup-disklessify:1.4 --- dlkit2/cl.install-setup-disklessify:1.3 Thu Mar 2 23:04:27 2006 +++ dlkit2/cl.install-setup-disklessify Sat Mar 4 00:04:50 2006 @@ -24,6 +24,6 @@ # execution successful : else - echo "Error: /cl.trandir/cl.disklessify: not found or not executable" + echo "Execution failed. Fix problem and exit shell." fi exec /bin/sh Index: dlkit2/dlkit diff -u /dev/null dlkit2/dlkit:1.1.2.1 --- /dev/null Sun Mar 12 14:18:56 2006 +++ dlkit2/dlkit Sun Mar 12 14:18:56 2006 @@ -0,0 +1,84 @@ +#!/bin/sh + +# Variables: +# CL_CONFIG = tag name of client configuration + +set -e + +usage() { + cat<<EOF +Usage: + dlkit add <clientname> + dlkit install <clientname> + dlkit finish <clientname> + + dlkit remove <clientname> + dlkit clear miniroot <clientname> + dlkit clear finroot <clientname> +EOF +} + +perror() { + echo "ERROR: " "$@" + exit 1 +} + +# load_conf_file: Load common configuration file and client-specific +# configuration file. Needs $CL_CONFIG and must be set. +load_conf_file() { + [ ! -r config/server00.conf ] && perror "cannot load config/server00.conf" + . config/server00.conf + client_conf=config/client.$CL_CONFIG.conf + [ ! -r $client_conf ] && perror "cannot load $client_conf" + . $client_conf + [ ! -r config/server99.conf ] && perror "cannot load config/server99.conf" + . config/server99.conf +} + +#---------------------------------------------------------------------- +# main routine + +case "$1" in + add) + CL_CONFIG=${2:?"ERROR: CL_CONFIG name not supplied"} + load_conf_file + . sv/add-client.sub + ;; + install) + CL_CONFIG=${2:?"ERROR: CL_CONFIG name not supplied"} + load_conf_file + . sv/install-client.sub + ;; + finish) + CL_CONFIG=${2:?"ERROR: CL_CONFIG name not supplied"} + load_conf_file + . sv/finish-client.sub + ;; + + remove) + CL_CONFIG=${2:?"ERROR: CL_CONFIG name not supplied"} + load_conf_file + . sv/remove-client.sub + ;; + + clear) + CL_CONFIG=${3:?"ERROR: CL_CONFIG name not supplied"} + load_conf_file + case "$2" in + miniroot) + basedir=`dirname $SV_INSTROOT`; dirname=`basename $SV_INSTROOT` + echo "Clearing $basedir/$dirname..." + cd $basedir && rm -rf $dirname + ;; + finroot) + basedir=`dirname $SV_FIN_ROOT`; dirname=`basename $SV_FIN_ROOT` + echo "Clearing $basedir/$dirname..." + cd $basedir && rm -rf $dirname + ;; + esac + ;; + + *) + usage + ;; +esac Index: dlkit2/sv.grub-menu.m4 diff -u dlkit2/sv.grub-menu.m4:1.2 dlkit2/sv.grub-menu.m4:1.4 --- dlkit2/sv.grub-menu.m4:1.2 Sun Feb 26 04:16:06 2006 +++ dlkit2/sv.grub-menu.m4 Thu Mar 9 03:51:54 2006 @@ -64,11 +64,34 @@ module MINIROOT ')dnl dnl ###################################################################### -ifdef(`INSTUPDATE1', `dnl +ifdef(`DISKLESSIFY', `dnl define(`LOADER', ``/boot/multiboot'')dnl define(`KERNFILE', ``kernel/unix'')dnl define(`MODULE', ``/boot/boot_archive'')dnl define(`PROPDEF', `fstype=nfs,server-ip=SV_IPADDR,server-name=SV_NAME,server-path=SV_INSTROOT')dnl +define(`POSTPROPDEF', `fstype=nfs,server-ip=SV_IPADDR,server-name=SV_NAME,server-path=SV_FIN_ROOT')dnl +#---------------------------------------------------------------------- + +title Disklessify Solaris (PXE) * Remove this section later + kernel LOADER KERNFILE - nowin -B PROPDEF + module MODULE +title Disklessify Solaris with kernel debugger (PXE) * Remove this section later + kernel LOADER KERNFILE -kv - nowin -B PROPDEF + module MODULE +title Solaris (PXE) * Use this section after disklessfying + kernel LOADER KERNFILE -B POSTPROPDEF + module MODULE +title Solaris with kernel debugger (PXE) * use this section after disklessifying + kernel LOADER KERNFILE -kv -B POSTPROPDEF + module MODULE +')dnl +dnl +dnl ###################################################################### +ifdef(`NETINSTALL', `dnl +define(`LOADER', ``/boot/multiboot'')dnl +define(`KERNFILE', ``kernel/unix'')dnl +define(`MODULE', ``/boot/boot_archive'')dnl +define(`PROPDEF', `install_media=SV_IPADDR:SV_DVDDIR,fstype=nfs,server-ip=SV_IPADDR,server-name=SV_NAME,server-path=SV_INSTROOT')dnl #---------------------------------------------------------------------- title Install Solaris (PXE) @@ -80,18 +103,24 @@ ')dnl dnl dnl ###################################################################### -ifdef(`POSTUPDATE1', `dnl +ifdef(`DISKLESS', `dnl define(`LOADER', ``/boot/multiboot'')dnl define(`KERNFILE', ``kernel/unix'')dnl define(`MODULE', ``/boot/boot_archive'')dnl -define(`PROPDEF', `fstype=nfs,server-ip=SV_IPADDR,server-name=SV_NAME,server-path=SV_FIN_ROOT')dnl +define(`PROPDEF', `fstype=nfs,server-ip=SV_IPADDR,server-name=SV_NAME,server-path=SV_INSTROOT')dnl +define(`POSTPROPDEF', `fstype=nfs,server-ip=SV_IPADDR,server-name=SV_NAME,server-path=SV_FIN_ROOT')dnl #---------------------------------------------------------------------- -title Solaris (PXE) - kernel LOADER KERNFILE -B PROPDEF +title Install Solaris (PXE) * Remove this section later + kernel LOADER KERNFILE - nowin -B PROPDEF + module MODULE +title Install Solaris with kernel debugger (PXE) * Remove this section later + kernel LOADER KERNFILE -kv - nowin -B PROPDEF module MODULE -title Solaris with kernel debugger (PXE) - kernel LOADER KERNFILE -kv -B PROPDEF +title Solaris (PXE) * Use this section after installing + kernel LOADER KERNFILE -B POSTPROPDEF + module MODULE +title Solaris with kernel debugger (PXE) * use this section after installing + kernel LOADER KERNFILE -kv -B POSTPROPDEF module MODULE ')dnl -dnl Index: dlkit2/sv.mk-grubmenu-newbootpostupdate1.sh diff -u dlkit2/sv.mk-grubmenu-newbootpostupdate1.sh:1.4 dlkit2/sv.mk-grubmenu-newbootpostupdate1.sh:removed --- dlkit2/sv.mk-grubmenu-newbootpostupdate1.sh:1.4 Mon Feb 27 23:14:31 2006 +++ dlkit2/sv.mk-grubmenu-newbootpostupdate1.sh Sun Mar 12 14:18:56 2006 @@ -1,27 +0,0 @@ -#!/bin/sh -# sv.mk-grubmenu-newbootpostupdate1.sh - utility to generate GRUB's menu.lst file -# when after diskless-installing. - -# Copyright (c) 2006 teelime <teeli****@users*****> -# Copyright (c) 2006 SAWADA Keiji <card_capto****@users*****> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License AND Common -# Development and Distribution License. - -asserta='== << Assertion >> ==================================================' - -apply_m4() { - # apply_m4 -Dmacro=value input.m4 > output - CONFIG=./config.in - (echo ". $CONFIG" - echo "m4 \\" - sed -n 's/^\([^#=]*\)=.*$/\1/p' < $CONFIG | sort -u | sed 's/\(.*\)/-D\1="$\1" \\/' - echo "$@" - ) | sh -} - -. ./config.in - -echo "menu.lst" -apply_m4 -DPOSTUPDATE1 sv.grub-menu.m4 > $SV_PXEBOOTDIR/grub/menu.lst Index: dlkit2/sv.setup diff -u dlkit2/sv.setup:1.14 dlkit2/sv.setup:1.17 --- dlkit2/sv.setup:1.14 Fri Mar 3 09:52:54 2006 +++ dlkit2/sv.setup Sun Mar 12 11:28:51 2006 @@ -81,16 +81,24 @@ check_install_type() { case "$INSTALL_TYPE" in disklessify) - use_dvddir=false # already installed + use_dvddir=true # already installed, but needed by mini-nfsroot + use_instroot=true # rootdir on NFS at install-time use_fin_root=true # rootdir on NFS (post-install) ;; - diskless|offline) + netinstall) use_dvddir=true # going to install + use_instroot=true # rootdir on NFS at install-time + use_fin_root=false # rootdir on hard drive (post-install) + ;; + diskless) + use_dvddir=true # going to install + use_instroot=true # rootdir on NFS at install-time use_fin_root=true # rootdir on NFS (post-install) ;; - netinstall) + offline) use_dvddir=true # going to install - use_fin_root=false # rootdir on hard drive (post-install) + use_instroot=false # rootdir... ? + use_fin_root=true # rootdir on NFS (post-install) ;; *) perror "choose INTALL_TYPE value from: disklessify, netinstall, diskless, offline" @@ -99,7 +107,6 @@ case "$BOOT_TYPE" in newboot) - use_instroot=true # rootdir on NFS at install-time ;; *) perror "BOOT_TYPE should be newboot" @@ -319,15 +326,28 @@ echon "Preparing TFTP..." echon " pxegrub" - mkdir -p /tftpboot/boot - rm -rf /tftpboot/boot/grub - cp -rp $SV_DVDDIR/boot/grub /tftpboot/boot + mkdir -p $SV_PXEBOOTDIR + rm -rf $SV_PXEBOOTDIR/grub + cp -rp $SV_DVDDIR/boot/grub $SV_PXEBOOTDIR echon " multiboot" - cp $SV_DVDDIR/boot/multiboot /tftpboot/boot + cp $SV_DVDDIR/boot/multiboot $SV_PXEBOOTDIR echon " menu.lst" - apply_m4 -DINSTUPDATE1 sv.grub-menu.m4 > /tftpboot/boot/grub/menu.lst + + case "$INSTALL_TYPE" in + disklessify) + apply_m4 -DDISKLESSIFY sv.grub-menu.m4 > $SV_PXEBOOTDIR/grub/menu.lst + ;; + netinstall) + apply_m4 -DNETINSTALL sv.grub-menu.m4 > $SV_PXEBOOTDIR/grub/menu.lst + ;; + diskless) + apply_m4 -DDISKLESS sv.grub-menu.m4 > $SV_PXEBOOTDIR/grub/menu.lst + ;; + *) + ;; + esac echo " done" } @@ -350,8 +370,8 @@ echo "get /boot/multiboot .v.multiboot" | $tftp $SV_NAME > /dev/null 2>&1 warn_tftp=false - diff .v.pxegrub /tftpboot/boot/grub/pxegrub > /dev/null 2>&1 || warn_tftp=true - diff .v.multiboot /tftpboot/boot/multiboot > /dev/null 2>&1 || warn_tftp=true + diff .v.pxegrub $SV_PXEBOOTDIR/grub/pxegrub > /dev/null 2>&1 || warn_tftp=true + diff .v.multiboot $SV_PXEBOOTDIR/multiboot > /dev/null 2>&1 || warn_tftp=true if $warn_tftp; then echo "failed" @@ -450,12 +470,11 @@ } #---------------------------------------------------------------------- -prepare_installation_env() { - echon "Preparing installation environment..." +prepare_for_boot_archive() { + echon "Preparing various files in boot_archive..." - echon " SMF repository" - backup_distfile $SV_INSTROOT/etc/svc/repository.db - rm -f $SV_INSTROOT/etc/svc/repository-boot* + echon " vfstab" + touch $SV_INSTROOT/tmp/root/etc/vfstab echon ", rtc_config" rm -f $SV_INSTROOT/etc/rtc_config @@ -483,27 +502,39 @@ echo "setprop kbd-type '$CL_KEYBOARD'" >> $SV_INSTROOT/boot/solaris/bootenv.rc fi - if [ ! -z "$CL_NFS_CLIENT_VERSION" ]; then - echon ", NFS protocol version" - backup_distfile $SV_INSTROOT/etc/default/nfs - (cat $SV_INSTROOT/etc/default/nfs.dist - echo "NFS_CLIENT_VERSMAX=$CL_NFS_CLIENT_VERSION" - ) > $SV_INSTROOT/etc/default/nfs - fi + echo '.' +} - echon ", boot scripts" +#---------------------------------------------------------------------- +prepare_installation_env() { + echon "Preparing installation environment..." + +# echon " /tmp/root directory" +# copy_hier $SV_INSTROOT/.tmp_proto/root/etc $SV_INSTROOT/tmp/root/etc + + echon ", SMF repository" + backup_distfile $SV_INSTROOT/etc/svc/repository.db + rm -f $SV_INSTROOT/etc/svc/repository-boot* + + echo '.' +} + +#---------------------------------------------------------------------- +setup_install_kicker() { + echo "Preparing installation script..." # boot script and install script for install session backup_distfile $SV_INSTROOT/sbin/install-setup cp /dev/null $SV_INSTROOT/boot/solaris/bootargs.rc - case "$INSTALL_TYPE" in disklessify) cp -p cl.install-setup-disklessify $SV_INSTROOT/sbin/install-setup ;; netinstall) - cp -p $SV_INSTROOT/sbin/install-setup.dist \ - $SV_INSTROOT/sbin/install-setup + cp -p cl.post-install-netinstall $SV_INSTROOT/sbin/post-setup + echo "Reducing the limitation of physical memory size..." + echon " " + patch -p0 < install-setup-reduce-memory-limitation.patch $SV_INSTROOT/sbin/install-setup ;; diskless) @@ -513,11 +544,8 @@ offline) ;; esac - - echo '.' } - #---------------------------------------------------------------------- prepare_postinstall_env() { echo "Preparing post-installation environment..." @@ -681,7 +709,6 @@ perror "$SV_INSTROOT/a must be there" fi - copy_hier $SV_INSTROOT/.tmp_proto/root/etc $SV_INSTROOT/tmp/root/etc } #---------------------------------------------------------------------- @@ -712,6 +739,20 @@ } #---------------------------------------------------------------------- +prepare_nfs_environment() { + echon "Preparing NFS protocol version..." + + if [ ! -z "$CL_NFS_CLIENT_VERSION" ]; then + backup_distfile $SV_INSTROOT/etc/default/nfs + (cat $SV_INSTROOT/etc/default/nfs.dist + echo "NFS_CLIENT_VERSMAX=$CL_NFS_CLIENT_VERSION" + ) > $SV_INSTROOT/etc/default/nfs + fi + + echo '.' +} + +#---------------------------------------------------------------------- set -e . ./config.in @@ -719,21 +760,34 @@ OSTYPE=`uname -s` remove_work_files check_install_type -[ "$INSTALL_TYPE" != "netinstall" -a "$BOOT_TYPE" = "newboot" ] && create_mininfsroot +prepare_tftpboot +$use_instroot && create_mininfsroot +$use_instroot && prepare_for_boot_archive +$use_instroot && create_boot_archive + +if [ $INSTALL_TYPE = netinstall ]; then + /bin/rm -rf $SV_INSTROOT + create_mininfsroot # again + mkdir -p $SV_INSTROOT/cdrom/Solaris_10/Tools/Boot + cp -p $SV_DVDDIR/Solaris_10/Tools/Boot/X*.cpio.bz2 $SV_INSTROOT/cdrom/Solaris_10/Tools/Boot +elif [ $INSTALL_TYPE = disklessify -o $INSTALL_TYPE = diskless ]; then + prepare_installation_env +fi + prepare_base_dirs -$use_dvddir && enumerate_packages +[ $INSTALL_TYPE = diskless ] && enumerate_packages +[ $INSTALL_TYPE = offline ] && enumerate_packages $use_fin_root && make_swap_file check_nfs_export -prepare_tftpboot check_tftpboot start_dhcpd -[ $INSTALL_TYPE = netinstall ] && generate_sysidcfg +#[ $INSTALL_TYPE = netinstall ] && generate_sysidcfg prepare_non_std_driver -$use_instroot && prepare_installation_env +$use_instroot && prepare_nfs_environment [ $INSTALL_TYPE = diskless ] && prepare_postinstall_env [ $INSTALL_TYPE = offline ] && prepare_postinstall_env -[ "$INSTALL_TYPE" != "netinstall" -a "$BOOT_TYPE" = "newboot" ] && create_boot_archive transfer_installation_script +$use_instroot && setup_install_kicker finalize_1st_stage exit