[OmniOS-discuss] r151020 zone clone failure
Michael Talbott
mtalbott at lji.org
Thu Nov 10 22:47:29 UTC 2016
Here's a clone attempt after the change:
# zoneadm -z sbp11 clone sbp10
+ . /usr/lib/brand/ipkg/common.ksh
+ unset LD_LIBRARY_PATH
+ PATH=/usr/bin:/usr/sbin
+ export PATH
+ . /usr/lib/brand/shared/common.ksh
+ TEXTDOMAIN=SUNW_OST_OSCMD
+ export TEXTDOMAIN
+ gettext '%s: error: wrapper file already exists'
+ e_cannot_wrap='%s: error: wrapper file already exists'
+ gettext $'Invalid \'%s\' directory within the zone'
+ e_baddir=$'Invalid \'%s\' directory within the zone'
+ gettext $'Invalid \'%s\' file within the zone'
+ e_badfile=$'Invalid \'%s\' file within the zone'
+ gettext $'Pathname specified to -a \'%s\' must be absolute.'
+ e_path_abs=$'Pathname specified to -a \'%s\' must be absolute.'
+ gettext '%s: error: file or directory not found.'
+ e_not_found='%s: error: file or directory not found.'
+ gettext 'Installation aborted.'
+ e_install_abort='Installation aborted.'
+ gettext $'Cannot read directory \'%s\''
+ e_not_readable=$'Cannot read directory \'%s\''
+ gettext 'Error: must be a directory'
+ e_not_dir='Error: must be a directory'
+ gettext 'Error: Unknown archive format. Must be a flash archive, a cpio archive (can also be gzipped or bzipped), a pax XUSTAR archive, or a level 0 ufsdump archive.'
+ e_unknown_archive='Error: Unknown archive format. Must be a flash archive, a cpio archive (can also be gzipped or bzipped), a pax XUSTAR archive, or a level 0 ufsdump archive.'
+ gettext 'Error: archive contains absolute paths instead of relative paths.'
+ e_absolute_archive='Error: archive contains absolute paths instead of relative paths.'
+ gettext 'Error: the archive top-level directory (%s) does not match the zonepath (%s).'
+ e_mismatch_archive='Error: the archive top-level directory (%s) does not match the zonepath (%s).'
+ gettext 'Unable to create temporary file'
+ e_tmpfile='Unable to create temporary file'
+ gettext 'Zonepath root %s exists and contains data; remove or move aside prior to install.'
+ e_root_full='Zonepath root %s exists and contains data; remove or move aside prior to install.'
+ gettext 'Unable to create directory %s.'
+ f_mkdir='Unable to create directory %s.'
+ gettext 'Unable to chmod directory %s.'
+ f_chmod='Unable to chmod directory %s.'
+ gettext 'Unable to chown directory %s.'
+ f_chown='Unable to chown directory %s.'
+ gettext 'HWCAP: %s\n'
+ f_hwcap_info='HWCAP: %s'
+ gettext $'The image was created with an incompatible libc.so.1 hwcap lofs mount.\\n The zone will not boot on this platform. See the zone\'s\\n documentation for the recommended way to create the archive.'
+ f_sanity_hwcap=$'The image was created with an incompatible libc.so.1 hwcap lofs mount.\n The zone will not boot on this platform. See the zone\'s\n documentation for the recommended way to create the archive.'
+ gettext 'Analysing the archive'
+ m_analyse_archive='Analysing the archive'
+ gettext $'Cannot read file \'%s\''
+ not_readable=$'Cannot read file \'%s\''
+ gettext 'Input is not a flash archive'
+ not_flar='Input is not a flash archive'
+ gettext 'Flash archive is a corrupt'
+ bad_flar='Flash archive is a corrupt'
+ gettext 'Flash archive contains a ZFS send stream.\n\tRecreate the flar using the -L option with cpio or pax.'
+ bad_zfs_flar=$'Flash archive contains a ZFS send stream.\n\tRecreate the flar using the -L option with cpio or pax.'
+ gettext 'Unpacking the archive failed'
+ f_unpack_failed='Unpacking the archive failed'
+ gettext 'Archiver %s is not supported'
+ unknown_archiver='Archiver %s is not supported'
+ gettext $'Required command \'%s\' not executable!'
+ cmd_not_exec=$'Required command \'%s\' not executable!'
+ ZONE_SUBPROC_OK=0
+ ZONE_SUBPROC_USAGE=253
+ ZONE_SUBPROC_NOTCOMPLETE=254
+ ZONE_SUBPROC_FATAL=255
+ PROP_PARENT=org.opensolaris.libbe:parentbe
+ PROP_ACTIVE=org.opensolaris.libbe:active
+ gettext 'cannot specify both %s and %s options'
+ f_incompat_options='cannot specify both %s and %s options'
+ gettext 'Missing %s at %s'
+ f_sanity_detail='Missing %s at %s'
+ gettext 'Is this a sparse zone image? The image must be whole-root.'
+ f_sanity_sparse='Is this a sparse zone image? The image must be whole-root.'
+ gettext ' Sanity Check: Passed. Looks like an OpenSolaris system.'
+ sanity_ok=' Sanity Check: Passed. Looks like an OpenSolaris system.'
+ gettext ' Sanity Check: FAILED (see log for details).'
+ sanity_fail=' Sanity Check: FAILED (see log for details).'
+ gettext ' Sanity Check: the Solaris image (release %s) is not an OpenSolaris image and cannot be installed in this type of branded zone.'
+ sanity_fail_vers=' Sanity Check: the Solaris image (release %s) is not an OpenSolaris image and cannot be installed in this type of branded zone.'
+ gettext ' Result: *** Installation FAILED ***'
+ install_fail=' Result: *** Installation FAILED ***'
+ gettext $'Installing a zone inside of the root pool\'s \'ROOT\' dataset is unsupported.'
+ f_zfs_in_root=$'Installing a zone inside of the root pool\'s \'ROOT\' dataset is unsupported.'
+ gettext $'Unable to create the zone\'s ZFS dataset.'
+ f_zfs_create=$'Unable to create the zone\'s ZFS dataset.'
+ gettext $'Unable to create the zone\'s ZFS dataset mountpoint.'
+ f_root_create=$'Unable to create the zone\'s ZFS dataset mountpoint.'
+ gettext 'unable to determine global zone boot environment.'
+ f_no_gzbe='unable to determine global zone boot environment.'
+ gettext 'the zonepath must be a ZFS dataset.\nThe parent directory of the zonepath must be a ZFS dataset so that the\nzonepath ZFS dataset can be created properly.'
+ f_no_ds=$'the zonepath must be a ZFS dataset.\nThe parent directory of the zonepath must be a ZFS dataset so that the\nzonepath ZFS dataset can be created properly.'
+ gettext 'multiple active datasets.'
+ f_multiple_ds='multiple active datasets.'
+ gettext 'no active dataset.'
+ f_no_active_ds='no active dataset.'
+ gettext $'Unable to unmount the zone\'s root ZFS dataset (%s).\\nIs there a global zone process inside the zone root?\\nThe current zone boot environment will remain mounted.\\n'
+ f_zfs_unmount=$'Unable to unmount the zone\'s root ZFS dataset (%s).\nIs there a global zone process inside the zone root?\nThe current zone boot environment will remain mounted.'
+ gettext $'Unable to mount the zone\'s ZFS dataset.'
+ f_zfs_mount=$'Unable to mount the zone\'s ZFS dataset.'
+ gettext 'Expected %s to be a directory.'
+ f_safedir='Expected %s to be a directory.'
+ gettext 'Failed to cp %s %s.'
+ f_cp='Failed to cp %s %s.'
+ gettext 'Failed to safely copy %s to %s.'
+ f_cp_unsafe='Failed to safely copy %s to %s.'
+ gettext 'brand-specific usage: '
+ m_brnd_usage='brand-specific usage: '
+ gettext 'Performing zone unconfiguration'
+ v_unconfig='Performing zone unconfiguration'
+ gettext 'Zone unconfiguration failed'
+ e_unconfig='Zone unconfiguration failed'
+ gettext 'Mounting the zone'
+ v_mounting='Mounting the zone'
+ gettext 'Zone mount failed'
+ e_badmount='Zone mount failed'
+ gettext 'Unmounting zone'
+ v_unmount='Unmounting zone'
+ gettext 'Zone unmount failed'
+ e_badunmount='Zone unmount failed'
+ gettext 'Postprocessing failed.'
+ e_exitfail='Postprocessing failed.'
+ gettext ' Done: Installation completed in %s seconds.'
+ m_complete=' Done: Installation completed in %s seconds.'
+ gettext ' Next Steps: Boot the zone, then log into the zone console (zlogin -C)'
+ m_postnote=' Next Steps: Boot the zone, then log into the zone console (zlogin -C)'
+ gettext ' to complete the configuration process.'
+ m_postnote2=' to complete the configuration process.'
+ gettext 'clone {sourcezone}'
+ m_usage='clone {sourcezone}'
+ gettext 'Error: unable to determine source zone dataset.'
+ f_nosource='Error: unable to determine source zone dataset.'
+ gettext 'Error: specified snapshot is invalid for this source zone.'
+ f_badsource='Error: specified snapshot is invalid for this source zone.'
+ ROOT=rpool/ROOT
+ getopts R:s:Xz: opt
+ ZONENAME=sbp11
+ getopts R:s:Xz: opt
+ ZONEPATH=/zones/sbp11
+ getopts R:s:Xz: opt
+ shift 4
+ [ 1 -ne 1 ]
+ sourcezone=sbp10
+ get_current_gzbe
+ [ -x /usr/sbin/beadm ]
+ /usr/bin/nawk -v alt= '-F;' $'{\n\t\t\tif (length(alt) == 0) {\n\t\t\t # Field 3 is the BE status. N is the active BE.\n\t\t\t if ($3 !~ "N")\n\t\t\t\tnext\n\t\t\t} else {\n\t\t\t # Field 4 is the BE mountpoint.\n\t\t\t if ($4 != alt)\n\t\t\t\tnext\n\t\t\t}\n\t\t\t# Field 2 is the BE UUID\n\t\t\tprint $2\n\t\t}'
+ /usr/sbin/beadm list -H
+ CURRENT_GZBE=0e7a1eea-12fd-4ec5-8daa-b70a31aa59df
+ [ -z 0e7a1eea-12fd-4ec5-8daa-b70a31aa59df ]
+ [ -z '' ]
+ awk -F: '{print $4}'
+ /usr/sbin/zoneadm -z sbp10 list -p
+ sourcezonepath=/zones/sbp10
+ [ -z /zones/sbp10 ]
+ get_zonepath_ds /zones/sbp10
+ /usr/bin/nawk -v zonepath=/zones/sbp10 $'{\n\t\tif ($2 == zonepath)\n\t\t\tprint $1\n\t}'
+ /usr/sbin/zfs list -H -t filesystem -o name,mountpoint
+ ZONEPATH_DS=rpool/zones/sbp10
+ [ -z rpool/zones/sbp10 ]
+ get_active_ds 0e7a1eea-12fd-4ec5-8daa-b70a31aa59df rpool/zones/sbp10
+ /usr/bin/nawk -v gzbe=0e7a1eea-12fd-4ec5-8daa-b70a31aa59df $' {\n\t\tif ($1 ~ /ROOT\\/[^\\/]+$/ && $2 == gzbe && $3 == "on") {\n\t\t\tprint $1\n\t\t\tif (found == 1)\n\t\t\t\texit 1\n\t\t\tfound = 1\n\t\t}\n\t }'
+ /usr/sbin/zfs list -H -r -t filesystem -o name,org.opensolaris.libbe:parentbe,org.opensolaris.libbe:active rpool/zones/sbp10/ROOT
+ ACTIVE_DS=rpool/zones/sbp10/ROOT/zbe-2
+ [ 0 -ne 0 ]
+ [ -z rpool/zones/sbp10/ROOT/zbe-2 ]
+ [ x != x ]
+ /usr/bin/dirname /zones/sbp11
+ pdir=/zones
+ /usr/bin/basename /zones/sbp11
+ zpname=sbp11
+ get_zonepath_ds /zones
+ /usr/bin/nawk -v zonepath=/zones $'{\n\t\tif ($2 == zonepath)\n\t\t\tprint $1\n\t}'
+ /usr/sbin/zfs list -H -t filesystem -o name,mountpoint
+ ZONEPATH_DS=rpool/zones
+ [ -z rpool/zones ]
+ zpds=rpool/zones
+ fail_zonepath_in_rootds rpool/zones
+ break
+ /usr/sbin/zfs create rpool/zones/sbp11
+ /usr/sbin/zfs create -o mountpoint=legacy -o zoned=on rpool/zones/sbp11/ROOT
+ [ x = x ]
+ SNAPNAME=sbp11_snap
+ SNAPNUM=0
+ [ 0 -lt 100 ]
+ /usr/sbin/zfs snapshot rpool/zones/sbp10/ROOT/zbe-2 at sbp11_snap
+ [ 0 = 0 ]
+ break
+ [ 0 -ge 100 ]
+ BENAME=zbe
+ BENUM=0
+ [ 0 -lt 100 ]
+ /usr/sbin/zfs clone rpool/zones/sbp10/ROOT/zbe-2 at sbp11_snap rpool/zones/sbp11/ROOT/zbe
+ [ 0 = 0 ]
+ break
+ [ 0 -ge 100 ]
+ /usr/sbin/zfs set org.opensolaris.libbe:active=on rpool/zones/sbp11/ROOT/zbe
+ /usr/sbin/zfs set org.opensolaris.libbe:parentbe=0e7a1eea-12fd-4ec5-8daa-b70a31aa59df rpool/zones/sbp11/ROOT/zbe
+ /usr/sbin/zfs set canmount=noauto rpool/zones/sbp11/ROOT/zbe
+ [ ! -d /zones/sbp11/root ]
+ /usr/bin/mkdir -p /zones/sbp11/root
+ /usr/bin/chmod 700 /zones/sbp11
+ ZONE_IS_MOUNTED=0
+ trap trap_exit EXIT
+ is_brand_labeled
+ [ -z ]
+ AR_OPTIONS=''
+ awk -F: '{print $6}'
+ /usr/sbin/zoneadm -z sbp11 list -p
+ brand=ipkg
+ [[ ipkg == labeled ]]
+ return 0
+ (( 0 == 0 ))
+ [ x = xyes ]
+ unconfigure_zone
+ vlog 'Performing zone unconfiguration'
+ fmt='Performing zone unconfiguration'
+ typeset fmt
+ shift
+ [[ -n '' ]]
+ [[ -n '' ]]
+ vlog 'Mounting the zone'
+ fmt='Mounting the zone'
+ typeset fmt
+ shift
+ [[ -n '' ]]
+ [[ -n '' ]]
+ ZONE_IS_MOUNTED=1
+ zoneadm -z sbp11 mount -f
zone 'sbp11': "/usr/lib/fs/dev/mount -o attrdir=/zones/sbp11/root/dev /dev /zones/sbp11/lu/dev" failed with exit code 1
zoneadm: zone 'sbp11': call to zoneadmd failed
+ fatal 'Zone mount failed'
+ fmt='Zone mount failed'
+ typeset fmt
+ shift
+ error 'Zone mount failed'
+ fmt='Zone mount failed'
+ typeset fmt
+ shift
+ printf 'ERROR: Zone mount failed\n'
ERROR: Zone mount failed
+ [[ -n '' ]]
+ exit
+ trap_exit
+ (( 1 != 0 ))
+ error 'Unmounting zone'
+ fmt='Unmounting zone'
+ typeset fmt
+ shift
+ printf 'ERROR: Unmounting zone\n'
ERROR: Unmounting zone
+ [[ -n '' ]]
+ zoneadm -z sbp11 unmount
zoneadm: zone 'sbp11': must be mounted before unmount.
+ exit
> On Nov 10, 2016, at 2:40 PM, Dan McDonald <danmcd at omniti.com> wrote:
>
>> On Nov 10, 2016, at 5:27 PM, Michael Talbott <mtalbott at lji.org> wrote:
>>
>> zonecfg:sbp12> set ip-type=shared
>
>
> Oh, I didn't notice this was a shared-IP zone. The LX stuff (Joyent's code in general) has been very abusive toward shared-stack IP zones. I may have clobbered shared-stack code by accident as part of the LX port. (Not all of the LX port was confined to the brand/lx package.)
>
> Please do what I said earlier if you've the time, though.
>
> Dan
>
More information about the OmniOS-discuss
mailing list