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

Back to archive index

SAWADA Keiji card_capto****@users*****
2006年 2月 27日 (月) 02:21:21 JST


Index: dlkit2/sv.setup
diff -u dlkit2/sv.setup:1.9 dlkit2/sv.setup:1.10
--- dlkit2/sv.setup:1.9	Mon Feb 27 00:39:10 2006
+++ dlkit2/sv.setup	Mon Feb 27 02:21:20 2006
@@ -1,5 +1,5 @@
 #!/bin/sh
-# sv.setup - setup script starter for server-side
+# sv.setup - 1st-stage setup script for server-side
 # Copyright (c) 2005-2006 SAWADA Keiji <card_capto****@users*****>
 # 
 # This program is free software; you can redistribute it and/or modify
@@ -64,9 +64,13 @@
     ) | sh
 }
 
+copy_hier() {
+    # copy_hier src dst
+    src=${1:?}; dst=${2:?}
+    (cd "$src" && tar cpf - .) | (cd "$dst" && tar xpf -)
+}
 
 #----------------------------------------------------------------------
-# remove work files
 remove_work_files() {
     rm -f .v.*
     rm -rf $trandir
@@ -336,9 +340,9 @@
 #----------------------------------------------------------------------
 check_tftpboot_newboot() {
     echon "Checking TFTP accessibility... "
-	set +e
+    set +e
     tftp=`typep tftp`
-	set -e
+    set -e
     #tftp=/bin/true # debug
     if [ -x "$tftp" ]; then
 	echo "get /boot/grub/pxegrub .v.pxegrub" | $tftp $SV_NAME > /dev/null 2>&1
@@ -452,16 +456,30 @@
     backup_distfile $SV_INSTROOT/etc/svc/repository.db
     rm -f $SV_INSTROOT/etc/svc/repository-boot*
 
+    echon ", rtc_config"
+    rm -f $SV_INSTROOT/etc/rtc_config
+    echo zone_info=Japan >  $SV_INSTROOT/etc/rtc_config
+    echo zone_lag=-32400 >> $SV_INSTROOT/etc/rtc_config
+
+    backup_distfile $SV_INSTROOT/.tmp_proto/root/boot/solaris/bootenv.rc
+    backup_distfile $SV_INSTROOT/boot/solaris/bootenv.rc
+
+    echon ", bootenv.rc"
+    rm -f $SV_INSTROOT/boot/solaris/bootenv.rc
+    cp -p $SV_INSTROOT/.tmp_proto/root/boot/solaris/bootenv.rc \
+	$SV_INSTROOT/boot/solaris/bootenv.rc
+    echon ", md.conf"
+    rm -f $SV_INSTROOT/kernel/drv/md.conf
+    cp -p $SV_INSTROOT/.tmp_proto/root/kernel/drv/md.conf \
+	$SV_INSTROOT/kernel/drv/md.conf
+    echon ", sbpro.conf"
+    rm -f $SV_INSTROOT/kernel/drv/sbpro.conf
+    cp -p $SV_INSTROOT/platform/i86pc/kernel/drv/sbpro.conf \
+	$SV_INSTROOT/kernel/drv/sbpro.conf
+
     if [ ! -z "$CL_KEYBOARD" ]; then
 	echon ", keyboard type[$CL_KEYBOARD]"
-	backup_distfile $SV_INSTROOT/.tmp_proto/root/boot/solaris/bootenv.rc
-	backup_distfile $SV_INSTROOT/boot/solaris/bootenv.rc
-	(cat $SV_INSTROOT/.tmp_proto/root/boot/solaris/bootenv.rc.dist
-	    echo "setprop kbd-type '$CL_KEYBOARD'"
-	) > $SV_INSTROOT/.tmp_proto/root/boot/solaris/bootenv.rc
-	(cat $SV_INSTROOT/boot/solaris/bootenv.rc.dist
-	    echo "setprop kbd-type '$CL_KEYBOARD'"
-	) > $SV_INSTROOT/boot/solaris/bootenv.rc
+	echo "setprop kbd-type '$CL_KEYBOARD'" >> $SV_INSTROOT/boot/solaris/bootenv.rc
     fi
 
     if [ ! -z "$CL_NFS_CLIENT_VERSION" ]; then
@@ -628,84 +646,71 @@
 
 #----------------------------------------------------------------------
 create_mininfsroot() {
-OSTYPE=`uname -s`
+    OSTYPE=`uname -s`
 
-if [ ! -d $SV_INSTROOT ]; then
+    if [ ! -d $SV_INSTROOT ]; then
 	tempdir=/tmp/tmp.$$
 	rm -rf $tempdir
 	mkdir $tempdir
 	mkdir $tempdir/pnt
 	mkdir $SV_INSTROOT
+
 	echon "Extracting original miniroot-image to $SV_INSTROOT ..."
 	gzip -dc $SV_DVDDIR/boot/x86.miniroot > $tempdir/miniroot.extd
 	case "$OSTYPE" in
-	SunOS)
+	    SunOS)
 		DEVICE=`lofiadm -a $tempdir/miniroot.extd`
 		mount -F ufs -r $DEVICE $tempdir/pnt
-		# XXX TODO lofiadm -d
+		copy_hier $tempdir/pnt $SV_INSTROOT
+		umount $tempdir/pnt
+		lofiadm -d $DEVICE
 		;;
-	Linux)
+	    Linux)
 		mount -o loop -t ufs $tempdir/miniroot.extd $tempdir/pnt
+		copy_hier $tempdir/pnt $SV_INSTROOT
+		umount $tempdir/pnt
 		;;
-	*)
+	    *)
 		echo "Not inplemented yet"
 		;;
 	esac
-	(cd $tempdir/pnt; tar cpf - .)|(cd $SV_INSTROOT; tar xpf -) 
-	umount $tempdir/pnt
 	rm -rf $tempdir
 	echo "done"
-fi
+    fi
 
-if [ ! -d $SV_INSTROOT/a ]; then
+    if [ ! -d $SV_INSTROOT/a ]; then
 	perror "$SV_INSTROOT/a must be there"
-fi
-
+    fi
 
-rsync -au $SV_INSTROOT/.tmp_proto/root/etc $SV_INSTROOT/tmp/root
-echon "Creating default rtc_config for boot_archive..."
-rm -f $SV_INSTROOT/etc/rtc_config
-cat <<EOF>$SV_INSTROOT/etc/rtc_config
-zone_info=Japan
-zone_lag=-32400
-EOF
-echo "done"
-rm -f $SV_INSTROOT/boot/solaris/bootenv.rc
-cp -p $SV_INSTROOT/.tmp_proto/root/boot/solaris/bootenv.rc $SV_INSTROOT/boot/solaris/bootenv.rc
-rm -f $SV_INSTROOT/kernel/drv/md.conf
-cp -p $SV_INSTROOT/.tmp_proto/root/kernel/drv/md.conf $SV_INSTROOT/kernel/drv/md.conf
-rm -f $SV_INSTROOT/kernel/drv/sbpro.conf
-cp -p $SV_INSTROOT/platform/i86pc/kernel/drv/sbpro.conf $SV_INSTROOT/kernel/drv/sbpro.conf
+    copy_hier $SV_INSTROOT/.tmp_proto/root/etc $SV_INSTROOT/tmp/root/etc
 }
 
 #----------------------------------------------------------------------
 create_boot_archive() {
-OSTYPE=`uname -s`
-tempdir=/tmp/tmp.$$
-case "$OSTYPE" in
-SunOS)
-	;;
-Linux)
-	rm -rf $tempdir
-	mkdir $tempdir
-	pushd $tempdir
-	files="prtconf lockfs"
-	for file in $files; do
-		touch $file; chmod +x $file
-	done
-	popd
-	PATH=${PATH}:$tempdir
-	export PATH
-	;;
-*)
-	echo "Not inplemented yet"
-	;;
-esac
-echo "[creating $SV_PXEBOOTDIR/$BOOT_ARCHIVE_FILE ...]"
-${SUN_SCRIPT} ${ALT_ROOT}
-rm -rf $tempdir
-cp -pf ${ALT_ROOT}/${BOOT_ARCHIVE_SRC} $SV_PXEBOOTDIR/$BOOT_ARCHIVE_FILE
-echo "done"
+    OSTYPE=`uname -s`
+    tempdir=/tmp/tmp.$$
+    case "$OSTYPE" in
+	SunOS)
+	    ;;
+	Linux)
+	    rm -rf $tempdir
+	    mkdir $tempdir
+	    files="prtconf lockfs"
+	    for file in $files; do
+		touch $tempdir/$file; chmod +x $tempdir/$file
+	    done
+	    PATH=${PATH}:$tempdir
+	    export PATH
+	    ;;
+	*)
+	    echo "Not inplemented yet"
+	    ;;
+    esac
+
+    echo "Creating $SV_PXEBOOTDIR/$BOOT_ARCHIVE_FILE ..."
+    ${SUN_SCRIPT} ${ALT_ROOT}
+    rm -rf $tempdir
+    cp -pf ${ALT_ROOT}/${BOOT_ARCHIVE_SRC} $SV_PXEBOOTDIR/$BOOT_ARCHIVE_FILE
 }
 
 #----------------------------------------------------------------------
@@ -716,7 +721,8 @@
 remove_work_files
 check_install_type
 if [ "$INSTALL_TYPE" = "diskless" -a "$BOOT_TYPE" = "newboot" ]; then 
-	( echo "$SV_PKGDIR"|grep -v "/Tools/Boot">/dev/null ) && create_mininfsroot
+    # TODO: remove next line
+    (echo "$SV_INSTROOT" | grep -v "/Tools/Boot" > /dev/null) && create_mininfsroot
 fi
 prepare_base_dirs
 $use_dvddir && enumerate_packages
@@ -731,7 +737,8 @@
 [ $INSTALL_TYPE = diskless ] && prepare_postinstall_env
 [ $INSTALL_TYPE = offline ] && prepare_postinstall_env
 if [ "$INSTALL_TYPE" = "diskless" -a "$BOOT_TYPE" = "newboot" ]; then 
-	( echo "$SV_PKGDIR"|grep -v "/Tools/Boot">/dev/null ) && create_boot_archive
+    # TODO: remove next line
+    (echo "$SV_INSTROOT" | grep -v "/Tools/Boot" > /dev/null) && create_boot_archive
 fi
 transfer_installation_script
 finalize_1st_stage


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