usr/src/lib/brand/solaris10/zone/p2v.ksh
author jv227347 <Jordan.Vaughan@Sun.com>
Tue, 18 May 2010 12:28:09 -0700
changeset 12433 a15cace5f27d
parent 10840 7df556caf412
child 12773 f0d486d64936
permissions -rw-r--r--
6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive 6927878 removing patches that affect solaris10 emulation hoses solaris10-branded zones 6947847 Solaris 10 Containers need s10_replacefile to support S10 patch tools
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
     1
#!/bin/ksh -p
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
     2
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
     3
# CDDL HEADER START
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
     4
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
     8
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    12
# and limitations under the License.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    13
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    19
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    20
# CDDL HEADER END
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    21
#
12433
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
    22
# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    23
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    24
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    25
# NOTE: this script runs in the global zone and touches the non-global
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    26
# zone, so care should be taken to validate any modifications so that they
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    27
# are safe.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    28
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    29
. /usr/lib/brand/solaris10/common.ksh
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    30
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    31
LOGFILE=
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    32
MSG_PREFIX="p2v: "
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    33
EXIT_CODE=1
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    34
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    35
usage()
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    36
{
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    37
	echo "$0 [-s] [-m msgprefix] [-u] [-v] [-b patchid]* zonename" >&2
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    38
	exit $EXIT_CODE
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    39
}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    40
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    41
# Clean up on interrupt
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    42
trap_cleanup()
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    43
{
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    44
	msg=$(gettext "Postprocessing cancelled due to interrupt.")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    45
	error "$msg"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    46
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    47
	if (( $zone_is_running != 0 )); then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    48
		error "$e_shutdown" "$ZONENAME"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    49
		/usr/sbin/zoneadm -z $ZONENAME halt
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    50
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    51
12433
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
    52
	#
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
    53
	# Delete temporary files created during the hollow package removal
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
    54
	# process.
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
    55
	#
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
    56
	rm -f $hollow_pkgs $hollow_file_list $hollow_dir_list
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
    57
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    58
	exit $EXIT_CODE
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    59
}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    60
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    61
#
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    62
# Disable any existing live-upgrade configuration.
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    63
# We have already called safe_dir to validate the etc/lu directory.
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    64
#
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    65
fix_lu()
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    66
{
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    67
	ludir=$ZONEROOT/etc/lu
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    68
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    69
	[[ ! -d $ludir ]] && return
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    70
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    71
	safe_rm etc/lutab
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    72
	safe_rm etc/lu/.BE_CONFIG
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    73
	safe_rm etc/lu/.CURR_VARS
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    74
	safe_rm etc/lu/ludb.local.xml
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    75
	for i in $ludir/ICF* $ludir/vtoc* $ludir/GRUB*
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    76
	do
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    77
		nm=`basename $i`
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    78
		safe_rm etc/lu/$nm
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    79
	done
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    80
}
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    81
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
    82
#
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    83
# For an exclusive stack zone, fix up the network configuration files.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    84
# We need to do this even if unconfiguring the zone so sys-unconfig works
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    85
# correctly.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    86
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    87
fix_net()
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    88
{
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    89
	[[ "$STACK_TYPE" == "shared" ]] && return
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    90
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    91
	NETIF_CNT=$(/usr/bin/ls $ZONEROOT/etc/hostname.* 2>/dev/null | \
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    92
	    /usr/bin/wc -l)
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    93
	if (( $NETIF_CNT != 1 )); then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    94
		vlog "$v_nonetfix"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    95
		return
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    96
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    97
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    98
	NET=$(LC_ALL=C /usr/sbin/zonecfg -z $ZONENAME info net)
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
    99
	if (( $? != 0 )); then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   100
		error "$e_badinfo" "net"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   101
		return
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   102
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   103
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   104
	NETIF=$(echo $NET | /usr/bin/nawk '{
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   105
		for (i = 1; i < NF; i++) {
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   106
			if ($i == "physical:") {
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   107
				if (length(net) == 0) {
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   108
					i++
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   109
					net = $i
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   110
				} else {
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   111
					multiple=1
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   112
				}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   113
			}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   114
		}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   115
	}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   116
	END {	if (!multiple)
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   117
			print net
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   118
	}')
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   119
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   120
	if [[ -z "$NETIF" ]]; then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   121
		vlog "$v_nonetfix"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   122
		return
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   123
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   124
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   125
	OLD_HOSTNET=$(/usr/bin/ls $ZONEROOT/etc/hostname.*)
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   126
	if [[ "$OLD_HOSTNET" != "$ZONEROOT/etc/hostname.$NETIF" ]]; then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   127
		safe_move $OLD_HOSTNET $ZONEROOT/etc/hostname.$NETIF
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   128
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   129
}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   130
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   131
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   132
# Disable all of the shares since the zone cannot be an NFS server.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   133
# Note that we disable the various instances of the svc:/network/shares/group
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   134
# SMF service in the fix_smf function. 
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   135
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   136
fix_nfs()
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   137
{
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   138
	zonedfs=$ZONEROOT/etc/dfs
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   139
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   140
	[[ ! -d $zonedfs ]] && return
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   141
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   142
	if [[ -h $zonedfs/dfstab || ! -f $zonedfs/dfstab ]]; then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   143
		error "$e_badfile" "/etc/dfs/dfstab"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   144
		return
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   145
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   146
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   147
	tmpfile=$(mktemp -t)
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   148
	if [[ $? == 1 || -z "$tmpfile" ]]; then
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   149
		error "$e_tmpfile"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   150
		return
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   151
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   152
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   153
	/usr/bin/nawk '{
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   154
		if (substr($1, 0, 1) == "#") {
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   155
			print $0
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   156
		} else {
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   157
			print "#", $0
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   158
			modified=1
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   159
		}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   160
	}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   161
	END {
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   162
		if (modified == 1) {
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   163
			printf("# Modified by p2v ")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   164
			system("/usr/bin/date")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   165
			exit 0
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   166
		}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   167
		exit 1
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   168
	}' $zonedfs/dfstab >>$tmpfile
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   169
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   170
	if (( $? == 0 )); then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   171
		if [[ ! -f $zonedfs/dfstab.pre_p2v ]]; then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   172
			safe_copy $zonedfs/dfstab $zonedfs/dfstab.pre_p2v
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   173
		fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   174
		safe_copy $tmpfile $zonedfs/dfstab
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   175
		chown root:sys $zonedfs/dfstab || \
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   176
		    fail_fatal "$f_chown" "$zonedfs/dfstab"
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   177
		chmod 644 $zonedfs/dfstab || \
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   178
		    fail_fatal "$f_chmod" "$zonedfs/dfstab"
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   179
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   180
	/usr/bin/rm -f $tmpfile
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   181
}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   182
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   183
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   184
# Comment out most of the old mounts since they are either unneeded or
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   185
# likely incorrect within a zone.  Specific mounts can be manually 
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   186
# reenabled if the corresponding device is added to the zone.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   187
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   188
fix_vfstab()
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   189
{
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   190
	if [[ -h $ZONEROOT/etc/vfstab || ! -f $ZONEROOT/etc/vfstab ]]; then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   191
		error "$e_badfile" "/etc/vfstab"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   192
		return
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   193
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   194
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   195
	tmpfile=$(mktemp -t)
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   196
	if [[ $? == 1 || -z "$tmpfile" ]]; then
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   197
		error "$e_tmpfile"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   198
		return
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   199
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   200
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   201
	/usr/bin/nawk '{
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   202
		if (substr($1, 0, 1) == "#") {
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   203
			print $0
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   204
		} else if ($1 == "fd" || $1 == "/proc" || $1 == "swap" ||
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   205
		    $1 == "ctfs" || $1 == "objfs" || $1 == "sharefs" ||
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   206
		    $4 == "nfs" || $4 == "lofs") {
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   207
			print $0
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   208
		} else {
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   209
			print "#", $0
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   210
			modified=1
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   211
		}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   212
	}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   213
	END {
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   214
		if (modified == 1) {
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   215
			printf("# Modified by p2v ")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   216
			system("/usr/bin/date")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   217
			exit 0
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   218
		}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   219
		exit 1
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   220
	}' $ZONEROOT/etc/vfstab >>$tmpfile
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   221
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   222
	if (( $? == 0 )); then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   223
		if [[ ! -f $ZONEROOT/etc/vfstab.pre_p2v ]]; then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   224
			safe_copy $ZONEROOT/etc/vfstab \
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   225
			    $ZONEROOT/etc/vfstab.pre_p2v
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   226
		fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   227
		safe_copy $tmpfile $ZONEROOT/etc/vfstab
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   228
		chown root:sys $ZONEROOT/etc/vfstab || \
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   229
		    fail_fatal "$f_chown" "$ZONEROOT/etc/vfstab"
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   230
		chmod 644 $ZONEROOT/etc/vfstab || \
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   231
		    fail_fatal "$f_chmod" "$ZONEROOT/etc/vfstab"
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   232
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   233
	/usr/bin/rm -f $tmpfile
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   234
}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   235
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   236
#
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   237
# Collect the data needed to delete SMF services.  Since we're p2v-ing a
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   238
# physical image there are SMF services which must be deleted.
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   239
#
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   240
fix_smf_pre_uoa()
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   241
{
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   242
	#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   243
	# Start by getting the svc manifests that are delivered by hollow
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   244
	# pkgs then use 'svccfg inventory' to get the names of the svcs
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   245
	# delivered by those manifests.  The svc names are saved into a
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   246
	# temporary file.
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   247
	#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   248
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   249
	SMFTMPFILE=$(mktemp -t smf.XXXXXX)
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   250
	if [[ $? == 1 || -z "$SMFTMPFILE" ]]; then
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   251
		error "$e_tmpfile"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   252
		return
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   253
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   254
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   255
	for i in $ZONEROOT/var/sadm/pkg/*
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   256
	do
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   257
		pkg=$(/usr/bin/basename $i)
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   258
		[[ ! -f $ZONEROOT/var/sadm/pkg/$pkg/save/pspool/$pkg/pkgmap ]] \
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   259
		    && continue
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   260
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   261
		/usr/bin/egrep -s "SUNW_PKG_HOLLOW=true" \
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   262
		    $ZONEROOT/var/sadm/pkg/$pkg/pkginfo || continue
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   263
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   264
		for j in $(/usr/bin/nawk '{if ($2 == "f" &&
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   265
		    substr($4, 1, 17) == "var/svc/manifest/") print $4}' \
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   266
		    $ZONEROOT/var/sadm/pkg/$pkg/save/pspool/$pkg/pkgmap)
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   267
		do
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   268
			svcs=$(SVCCFG_NOVALIDATE=1 \
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   269
			    SVCCFG_REPOSITORY=$ZONEROOT/etc/svc/repository.db \
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   270
			    /usr/sbin/svccfg inventory $ZONEROOT/$j)
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   271
			for k in $svcs
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   272
			do
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   273
				echo $k /$j >> $SMFTMPFILE
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   274
			done
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   275
		done
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   276
	done
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   277
}
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   278
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   279
#
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   280
# Delete or disable SMF services.
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   281
# Zone is booted to milestone=none when this function is called.
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   282
# Use the SMF data collected by fix_smf_pre_uoa() to delete the services.
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   283
#
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   284
fix_smf()
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   285
{
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   286
	# 
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   287
	# Zone was already booted to milestone=none, wait until SMF door exists.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   288
	#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   289
	for i in 0 1 2 3 4 5 6 7 8 9
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   290
	do
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   291
		[[ -r $ZONEROOT/etc/svc/volatile/repository_door ]] && break
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   292
		sleep 5
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   293
	done
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   294
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   295
	if [[ $i -eq 9 && ! -r $ZONEROOT/etc/svc/volatile/repository_door ]];
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   296
	then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   297
		error "$e_nosmf"
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   298
		/usr/bin/rm -f $SMFTMPFILE
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   299
		return
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   300
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   301
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   302
	insttmpfile=$(mktemp -t instsmf.XXXXXX)
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   303
	if [[ $? == 1 || -z "$insttmpfile" ]]; then
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   304
		error "$e_tmpfile"
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   305
		/usr/bin/rm -f $SMFTMPFILE
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   306
		return
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   307
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   308
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   309
	vlog "$v_rmhollowsvcs"
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   310
        while read fmri mfst
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   311
	do
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   312
		# Delete the svc.
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   313
		vlog "$v_delsvc" "$fmri"
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   314
		echo "/usr/sbin/svccfg delete -f $fmri"
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   315
		echo "/usr/sbin/svccfg delhash -d $mfst"
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   316
		echo "rm -f $mfst"
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   317
	done < $SMFTMPFILE > $ZONEROOT/tmp/smf_rm
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   318
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   319
	/usr/sbin/zlogin -S $ZONENAME /bin/sh /tmp/smf_rm >/dev/null 2>&1
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   320
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   321
	/usr/bin/rm -f $SMFTMPFILE
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   322
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   323
	# Get a list of the svcs that now exist in the zone.
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   324
	LANG=C /usr/sbin/zlogin -S $ZONENAME /usr/bin/svcs -aH | \
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   325
	    /usr/bin/nawk '{print $3}' >>$insttmpfile
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   326
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   327
	[[ -n $LOGFILE ]] && \
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   328
	    printf "[$(date)] ${MSG_PREFIX}${v_svcsinzone}\n" >&2
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   329
	[[ -n $LOGFILE ]] && cat $insttmpfile >&2
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   330
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   331
	#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   332
	# Fix network services if shared stack.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   333
	#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   334
	if [[ "$STACK_TYPE" == "shared" ]]; then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   335
		vlog "$v_fixnetsvcs"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   336
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   337
		NETPHYSDEF="svc:/network/physical:default"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   338
		NETPHYSNWAM="svc:/network/physical:nwam"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   339
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   340
		/usr/bin/egrep -s "$NETPHYSDEF" $insttmpfile
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   341
		if (( $? == 0 )); then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   342
			vlog "$v_enblsvc" "$NETPHYSDEF"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   343
			/usr/sbin/zlogin -S $ZONENAME \
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   344
			    /usr/sbin/svcadm enable $NETPHYSDEF || \
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   345
			    error "$e_dissvc" "$NETPHYSDEF"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   346
		fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   347
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   348
		/usr/bin/egrep -s "$NETPHYSNWAM" $insttmpfile
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   349
		if (( $? == 0 )); then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   350
			vlog "$v_dissvc" "$NETPHYSNWAM"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   351
			/usr/sbin/zlogin -S $ZONENAME \
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   352
			    /usr/sbin/svcadm disable $NETPHYSNWAM || \
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   353
			    error "$e_enblsvc" "$NETPHYSNWAM"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   354
		fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   355
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   356
		for i in $(/usr/bin/egrep network/routing $insttmpfile)
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   357
		do
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   358
			# Disable the svc.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   359
			vlog "$v_dissvc" "$i"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   360
			/usr/sbin/zlogin -S $ZONENAME \
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   361
			    /usr/sbin/svcadm disable $i || \
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   362
			    error "$e_dissvc" $i
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   363
		done
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   364
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   365
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   366
	#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   367
	# Disable well-known services that don't run in a zone.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   368
	#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   369
	vlog "$v_rminvalidsvcs"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   370
	for i in $(/usr/bin/egrep -hv "^#" \
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   371
	    /usr/lib/brand/solaris10/smf_disable.lst \
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   372
	    /etc/brand/solaris10/smf_disable.conf)
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   373
	do
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   374
		# Skip svcs not installed in the zone.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   375
		/usr/bin/egrep -s "$i:" $insttmpfile || continue
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   376
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   377
		# Disable the svc.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   378
		vlog "$v_dissvc" "$i"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   379
		/usr/sbin/zlogin -S $ZONENAME /usr/sbin/svcadm disable $i || \
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   380
		    error "$e_dissvc" $i
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   381
	done
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   382
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   383
	#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   384
	# Since zones can't be NFS servers, disable all of the instances of
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   385
	# the shares svc.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   386
	#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   387
	for i in $(/usr/bin/egrep network/shares/group $insttmpfile)
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   388
	do
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   389
		vlog "$v_dissvc" "$i"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   390
		/usr/sbin/zlogin -S $ZONENAME /usr/sbin/svcadm disable $i || \
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   391
		    error "$e_dissvc" $i
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   392
	done
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   393
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   394
	/usr/bin/rm -f $insttmpfile
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   395
}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   396
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   397
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   398
# Remove well-known pkgs that do not work inside a zone.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   399
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   400
rm_pkgs()
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   401
{
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   402
	/usr/bin/cat <<-EOF > $ZONEROOT/tmp/admin || fatal "$e_adminf"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   403
	mail=
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   404
	instance=overwrite
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   405
	partial=nocheck
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   406
	runlevel=nocheck
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   407
	idepend=nocheck
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   408
	rdepend=nocheck
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   409
	space=nocheck
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   410
	setuid=nocheck
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   411
	conflict=nocheck
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   412
	action=nocheck
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   413
	basedir=default
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   414
	EOF
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   415
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   416
	for i in $(/usr/bin/egrep -hv "^#" /usr/lib/brand/solaris10/pkgrm.lst \
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   417
	    /etc/brand/solaris10/pkgrm.conf)
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   418
	do
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   419
		[[ ! -d $ZONEROOT/var/sadm/pkg/$i ]] && continue
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   420
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   421
		vlog "$v_rmpkg" "$i"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   422
		/usr/sbin/zlogin -S $ZONENAME \
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   423
		    /usr/sbin/pkgrm -na /tmp/admin $i >&2 || error "$e_rmpkg" $i
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   424
	done
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   425
}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   426
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   427
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   428
# Zoneadmd writes a one-line index file into the zone when the zone boots,
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   429
# so any information about installed zones from the original system will
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   430
# be lost at that time.  Here we'll warn the sysadmin about any pre-existing
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   431
# zones that they might want to clean up by hand, but we'll leave the zonepaths
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   432
# in place in case they're on shared storage and will be migrated to
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   433
# a new host.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   434
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   435
warn_zones()
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   436
{
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   437
	zoneconfig=$ZONEROOT/etc/zones
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   438
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   439
	[[ ! -d $zoneconfig ]] && return
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   440
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   441
	if [[ -h $zoneconfig/index || ! -f $zoneconfig/index ]]; then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   442
		error "$e_badfile" "/etc/zones/index"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   443
		return
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   444
	fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   445
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   446
	NGZ=$(/usr/bin/nawk -F: '{
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   447
		if (substr($1, 0, 1) == "#" || $1 == "global")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   448
			continue
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   449
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   450
		if ($2 == "installed")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   451
			printf("%s ", $1)
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   452
	}' $zoneconfig/index)
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   453
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   454
	# Return if there are no installed zones to warn about.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   455
	[[ -z "$NGZ" ]] && return
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   456
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   457
	log "$v_rmzones" "$NGZ"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   458
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   459
	NGZP=$(/usr/bin/nawk -F: '{
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   460
		if (substr($1, 0, 1) == "#" || $1 == "global")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   461
			continue
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   462
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   463
		if ($2 == "installed")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   464
			printf("%s ", $3)
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   465
	}' $zoneconfig/index)
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   466
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   467
	log "$v_rmzonepaths"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   468
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   469
	for i in $NGZP
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   470
	do
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   471
		log "    %s" "$i"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   472
	done
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   473
}
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   474
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   475
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   476
# ^C Should cleanup; if the zone is running, it should try to halt it.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   477
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   478
zone_is_running=0
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   479
trap trap_cleanup INT
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   480
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   481
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   482
# Parse the command line options.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   483
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   484
OPT_U=
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   485
OPT_V=
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   486
OPT_M=
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   487
OPT_L=
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   488
while getopts "uvm:l:" opt
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   489
do
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   490
	case "$opt" in
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   491
		u)	OPT_U="-u";;
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   492
		v)	OPT_V="-v";;
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   493
		m)	MSG_PREFIX="$OPTARG"; OPT_M="-m \"$OPTARG\"";;
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   494
		l)	LOGFILE="$OPTARG"; OPT_L="-l \"$OPTARG\"";;
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   495
		*)	usage;;
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   496
	esac
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   497
done
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   498
shift OPTIND-1
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   499
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   500
(( $# < 1 )) && usage
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   501
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   502
(( $# > 2 )) && usage
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   503
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   504
[[ -n $LOGFILE ]] && exec 2>>$LOGFILE
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   505
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   506
ZONENAME=$1
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   507
ZONEPATH=$2
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   508
# XXX shared/common script currently uses lower case zonename & zonepath
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   509
zonename="$ZONENAME"
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   510
zonepath="$ZONEPATH"
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   511
ZONEROOT=$ZONEPATH/root
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   512
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   513
e_badinfo=$(gettext "Failed to get '%s' zone resource")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   514
e_badfile=$(gettext "Invalid '%s' file within the zone")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   515
v_mkdirs=$(gettext "Creating mount points")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   516
v_nonetfix=$(gettext "Cannot update /etc/hostname.{net} file")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   517
v_adjust=$(gettext "Updating the image to run within a zone")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   518
v_stacktype=$(gettext "Stack type '%s'")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   519
v_booting=$(gettext "Booting zone to single user mode")
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   520
e_nosmf=$(gettext "SMF repository unavailable.")
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   521
v_svcsinzone=$(gettext "The following SMF services are installed:")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   522
v_rmhollowsvcs=$(gettext "Deleting SMF services from hollow packages")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   523
v_fixnetsvcs=$(gettext "Adjusting network SMF services")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   524
v_rminvalidsvcs=$(gettext "Disabling invalid SMF services")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   525
v_delsvc=$(gettext "Delete SMF svc '%s'")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   526
e_delsvc=$(gettext "deleting SMF svc '%s'")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   527
v_enblsvc=$(gettext "Enable SMF svc '%s'")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   528
e_enblsvc=$(gettext "enabling SMF svc '%s'")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   529
v_dissvc=$(gettext "Disable SMF svc '%s'")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   530
e_dissvc=$(gettext "disabling SMF svc '%s'")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   531
e_adminf=$(gettext "Unable to create admin file")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   532
v_rmpkg=$(gettext "Remove package '%s'")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   533
e_rmpkg=$(gettext "removing package '%s'")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   534
v_rmzones=$(gettext "The following zones in this image will be unusable: %s")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   535
v_rmzonepaths=$(gettext "These zonepaths could be removed from this image:")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   536
v_halting=$(gettext "Halting zone")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   537
e_shutdown=$(gettext "Shutting down zone %s...")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   538
e_badhalt=$(gettext "Zone halt failed")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   539
v_exitgood=$(gettext "Postprocessing successful.")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   540
e_exitfail=$(gettext "Postprocessing failed.")
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   541
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   542
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   543
# Do some validation on the paths we'll be accessing
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   544
#
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   545
safe_dir /etc
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   546
safe_dir /var
12433
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   547
safe_dir /var/sadm
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   548
safe_dir /var/sadm/install
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   549
safe_dir /var/sadm/pkg
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   550
safe_opt_dir /etc/dfs
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   551
safe_opt_dir /etc/lu
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   552
safe_opt_dir /etc/zones
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   553
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   554
mk_zone_dirs
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   555
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   556
# Now do the work to update the zone.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   557
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   558
# Check for zones inside of image.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   559
warn_zones
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   560
fix_smf_pre_uoa
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   561
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   562
log "$v_adjust"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   563
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   564
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   565
# Any errors in these functions are not considered fatal.  The zone can be
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   566
# be fixed up manually afterwards and it may need some additional manual
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   567
# cleanup in any case.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   568
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   569
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   570
STACK_TYPE=$(/usr/sbin/zoneadm -z $ZONENAME list -p | \
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   571
    /usr/bin/nawk -F: '{print $7}')
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   572
if (( $? != 0 )); then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   573
	error "$e_badinfo" "stacktype"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   574
fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   575
vlog "$v_stacktype" "$STACK_TYPE"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   576
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   577
fix_lu
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   578
fix_net
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   579
fix_nfs
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   580
fix_vfstab
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   581
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   582
vlog "$v_booting"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   583
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   584
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   585
# Boot the zone so that we can do all of the SMF updates needed on the zone's
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   586
# repository.
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   587
#
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   588
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   589
zone_is_running=1
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   590
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   591
/usr/sbin/zoneadm -z $ZONENAME boot -f -- -m milestone=none
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   592
if (( $? != 0 )); then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   593
	error "$e_badboot"
8994
3f12cbbe75b6 6810950 p2v needs to handle cross-arch svc cleanup
<gerald.jelinek@sun.com>
parents: 8759
diff changeset
   594
	/usr/bin/rm -f $SMFTMPFILE
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   595
	fatal "$e_exitfail"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   596
fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   597
12433
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   598
#
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   599
# Remove all files and directories installed by hollow packages.  Such files
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   600
# and directories shouldn't exist inside zones.
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   601
#
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   602
hollow_pkgs=$(mktemp -t .hollow.pkgs.XXXXXX)
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   603
hollow_file_list=$(mktemp $ZONEROOT/.hollow.pkgs.files.XXXXXX)
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   604
hollow_dir_list=$(mktemp $ZONEROOT/.hollow.pkgs.dirs.XXXXXX)
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   605
[ -f "$hollow_pkgs" -a -f "$hollow_file_list" -a -f "$hollow_dir_list" ] || {
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   606
	error "$e_tmpfile"
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   607
	rm -f $hollow_pkgs $hollow_file_list $hollow_dir_list
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   608
	fatal "$e_exitfail"
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   609
}
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   610
for pkg_name in $ZONEROOT/var/sadm/pkg/*; do
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   611
	grep 'SUNW_PKG_HOLLOW=true' $pkg_name/pkginfo >/dev/null 2>&1 && \
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   612
	    basename $pkg_name >>$hollow_pkgs
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   613
done
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   614
/usr/bin/nawk -v hollowpkgs=$hollow_pkgs -v filelist=$hollow_file_list \
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   615
    -v dirlist=$hollow_dir_list '
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   616
	BEGIN {
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   617
		while (getline p <hollowpkgs > 0)
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   618
			pkgs[p] = 1;
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   619
		close(hollowpkgs);
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   620
	}
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   621
	{
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   622
		# fld is the field where the pkg names begin.
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   623
		# nm is the file/dir entry name.
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   624
		if ($2 == "f") {
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   625
			fld=10;
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   626
			nm=$1;
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   627
		} else if ($2 == "d") {
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   628
			fld=7;
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   629
			nm=$1;
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   630
		} else if ($2 == "s" || $2 == "l") {
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   631
			fld=4;
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   632
			split($1, a, "=");
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   633
			nm=a[1];
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   634
		} else {
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   635
			next;
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   636
		}
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   637
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   638
		# Determine whether the file or directory is delivered by any
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   639
		# non-hollow packages.  Files and directories can be
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   640
		# delivered by multiple pkgs.  The file or directory should only
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   641
		# be removed if it is only delivered by hollow packages.
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   642
		for (i = fld; i <= NF; i++) {
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   643
			if (pkgs[get_pkg_name($i)] != 1) {
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   644
				# We encountered a non-hollow package.  Skip
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   645
				# this entry.
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   646
				next;
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   647
			}
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   648
		}
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   649
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   650
		# The file or directory is only delivered by hollow packages.
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   651
		# Mark it for removal.
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   652
		if (fld != 7)
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   653
			print nm >>filelist
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   654
		else
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   655
			print nm >>dirlist
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   656
	}
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   657
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   658
	# Get the clean pkg name from the fld entry.
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   659
	function get_pkg_name(fld) {
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   660
		# Remove any pkg control prefix (e.g. *, !)
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   661
		first = substr(fld, 1, 1)
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   662
		if (match(first, /[A-Za-z]/)) {
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   663
			pname = fld 
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   664
		} else {
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   665
			pname = substr(fld, 2)
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   666
		}
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   667
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   668
		# Then remove any class action script name
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   669
		pos = index(pname, ":")
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   670
		if (pos != 0)
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   671
			pname = substr(pname, 1, pos - 1)
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   672
                return (pname)
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   673
        }
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   674
' $ZONEROOT/var/sadm/install/contents
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   675
/usr/sbin/zlogin -S $ZONENAME "cat /$(basename $hollow_file_list) | xargs rm -f"
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   676
/usr/sbin/zlogin -S $ZONENAME "sort -r /$(basename $hollow_dir_list) | \
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   677
    xargs rmdir >/dev/null 2>&1"
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   678
rm -f $hollow_pkgs $hollow_file_list $hollow_dir_list
a15cace5f27d 6909222 reboot of system upgraded from 128 to build 129 generated error from an s10 zone due to boot-archive
jv227347 <Jordan.Vaughan@Sun.com>
parents: 10840
diff changeset
   679
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   680
# cleanup SMF services
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   681
fix_smf
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   682
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   683
# remove invalid pkgs
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   684
rm_pkgs
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   685
10840
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   686
if [[ -z $failed && -n $OPT_U ]]; then
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   687
	vlog "$v_unconfig"
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   688
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   689
	sysunconfig_zone
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   690
	if (( $? != 0 )); then
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   691
		failed=1
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   692
	fi
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   693
fi
7df556caf412 PSARC 2009/253 S10C
Gerald Jelinek <Gerald.Jelinek@Sun.COM>
parents: 8994
diff changeset
   694
8759
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   695
vlog "$v_halting"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   696
/usr/sbin/zoneadm -z $ZONENAME halt
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   697
if (( $? != 0 )); then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   698
	error "$e_badhalt"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   699
	failed=1
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   700
fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   701
zone_is_running=0
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   702
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   703
if [[ -n $failed ]]; then
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   704
	fatal "$e_exitfail"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   705
fi
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   706
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   707
vlog "$v_exitgood"
8436cd998603 PSARC 2008/766 native zones p2v
<gerald.jelinek@sun.com>
parents:
diff changeset
   708
exit 0