Monday, November 26, 2012

Create a Soalris 8 zone (32bit) to a container

Last time I had successfully created a flar image from an old Solaris 8 server (ref). Now I have to setup a zone of Solaris 10 container and install the image into it. The overall idea is clear and easy. Normally just create the zone configuration, and install it from a "flar" image.

1. Create zone configuration

root@sol10 # zonecfg -z z_sol8
z_sol8: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:z_sol8> create -t SUNWsolaris8
zonecfg:z_sol8> set zonepath=/pool/zone/sol8
zonecfg:z_sol8> set autoboot=false
zonecfg:z_sol8> set ip-type=shared
zonecfg:z_sol8> add net
zonecfg:z_sol8:net> set address=192.168.123.123
zonecfg:z_sol8:net> set physical=nxge0
zonecfg:z_sol8:net> end
zonecfg:z_sol8> verify
zonecfg:z_sol8> commit
zonecfg:z_sol8> exit


Next install the zone from the flar image:       



root@sol10 # zoneadm -z z_sol8 install -v -p -a
      Log File: /var/tmp/z_sol8.install.xx.log
       Product: Solaris 8 Containers 1.0
     Installer: solaris8 brand installer 1.23
          Zone: z_sol8
          Path: /sol8
        Source: /pool1/zones/hkgcpmgr3.flar
    Media Type: flash archive
    Installing: This may take several minutes...
  Sanity Check: Passed.  Looks like a Solaris 8 system.
Postprocessing: This may take several minutes...
   Postprocess: Gathering information about zone z_sol8
   Postprocess: Creating mount points
   Postprocess: Linking in appropriate libc_psr.so for this platform
   Postprocess: Processing /etc/system
   Postprocess: Booting zone to single user mode
   Postprocess: Applying p2v module S20_apply_patches
        S20_apply_patches:  Unpacking patch:  109147-44
        S20_apply_patches: Installing patch:  109147-44
        S20_apply_patches:  Unpacking patch:  111023-03
        S20_apply_patches: Installing patch:  111023-03
        S20_apply_patches:  Unpacking patch:  111431-01
        S20_apply_patches: Installing patch:  111431-01
        S20_apply_patches:  Unpacking patch:  112605-04
        S20_apply_patches: Installing patch:  112605-04
        S20_apply_patches:  Unpacking patch:  112050-04
        S20_apply_patches: Installing patch:  112050-04
        S20_apply_patches:  Unpacking patch:  109221-01
        S20_apply_patches: Installing patch:  109221-01
   Postprocess: Applying p2v module S31_fix_net
   Postprocess: Applying p2v module S32_fix_nfs
   Postprocess: Applying p2v module S33_fix_vfstab
   Postprocess: Applying p2v module S34_fix_inittab
   Postprocess: Applying p2v module S35_fix_crontab
   Postprocess: Applying p2v module S36_fix_pam_conf
   Postprocess: Applying p2v module S40_setup_preload
   Postprocess: ERROR: p2v module S40_setup_preload failed: 0
   Postprocess: Halting zone
   Postprocess: ERROR: Postprocessing failed.
        Result: Postprocessing failed.

        Result: *** Installation FAILED ***
      Log File: /var/tmp/z_sol8.install.xx.log

==================
Oops, what's going wrong? I took a look of the log under /var/tmp/z_sol8*.log, this is a strange error:

/var/tmp
ln: cannot create /usr/lib/secure/64/s8_preload.so.1: No such file or directory


Seems something about 32bit/64bit issues. So I login to the old Solaris 8 physical server, it is a 32bit only system:
     
# isainfo -v
32-bit sparc applications


Then I search any solutions from the web, one of the possible method is to modify the script /usr/lib/brand/solaris8/mods/S40_setup_preload, in order to remove the lines related to 64 bit.

Then run the zoneadm install command again and this time the zone is created! (of course, uninstall the failed zone config first)

root@sol10 # zoneadm -z z_sol8 uninstall
Are you sure you want to uninstall zone z_sol8 (y/[n])? y
root@sol10 # zoneadm -z z_sol8 install -v -p -a /pool1/zones/sol8>
      Log File: /var/tmp/z_sol8.install.xx.log
       Product: Solaris 8 Containers 1.0
     Installer: solaris8 brand installer 1.23
          Zone: z_sol8
          Path: /sol8
        Source: /pool1/zones/hkgcpmgr3.flar
    Media Type: flash archive
    Installing: This may take several minutes...
  Sanity Check: Passed.  Looks like a Solaris 8 system.
Postprocessing: This may take several minutes...
   Postprocess: Gathering information about zone z_sol8
   Postprocess: Creating mount points
   Postprocess: Linking in appropriate libc_psr.so for this platform
   Postprocess: Processing /etc/system
   Postprocess: Booting zone to single user mode
   Postprocess: Applying p2v module S20_apply_patches
        S20_apply_patches:  Unpacking patch:  109147-44
        S20_apply_patches: Installing patch:  109147-44
        S20_apply_patches:  Unpacking patch:  111023-03
        S20_apply_patches: Installing patch:  111023-03
        S20_apply_patches:  Unpacking patch:  111431-01
        S20_apply_patches: Installing patch:  111431-01
        S20_apply_patches:  Unpacking patch:  112605-04
        S20_apply_patches: Installing patch:  112605-04
        S20_apply_patches:  Unpacking patch:  112050-04
        S20_apply_patches: Installing patch:  112050-04
        S20_apply_patches:  Unpacking patch:  109221-01
        S20_apply_patches: Installing patch:  109221-01
   Postprocess: Applying p2v module S31_fix_net
   Postprocess: Applying p2v module S32_fix_nfs
   Postprocess: Applying p2v module S33_fix_vfstab
   Postprocess: Applying p2v module S34_fix_inittab
   Postprocess: Applying p2v module S35_fix_crontab
   Postprocess: Applying p2v module S36_fix_pam_conf
   Postprocess: Applying p2v module S40_setup_preload
   Postprocess: Halting zone
   Postprocess: Postprocessing successful.
        Result: Postprocessing complete.
   Service Tag: Gathering information about zone z_sol8
   Service Tag: Adding service tag: urn:st:xxxxxx-649a-ee33-b5bc-9b38652ec17e
   Service Tag: Operation successful.

        Result: Installation completed successfully.
      Log File: /sol8/root/var/log/z_sol8.install.xx.log
root@sol10 #



     
     
     

No comments: