[dl-x86solaris-devel 86] CVS update: dlkit2

Back to archive index

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
 '
 
-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


dl-x86solaris-devel メーリングリストの案内
Back to archive index