Wednesday, December 10, 2014

"pkgcond" - How to check the type of zone installed or How to check the type of zone logged in?


As a quick note let us first know the type of zones available on Solaris 10.
Zones are broadly classified into 2. Global Zone and Non-Global Zone.
Where Non-Global Zone is further classified into 3 -
a. Whole Root Zone
b. Sparse Zone
c. Branded Zone (For non-native operating system. Can be created on X86 machines. Currently CentOS and RHEL3 are supported.)

Is there any way to find out the type of zone logged in? Is there any way to find out the type of zone installed?

Yes.
"pkgcond" command is helping us to find the same.
Imagine if the
"pkgcond" command not found, kindly check and ensure to install the package "SUNWpkgcmdsu".
This package comprise the command "pkgcond".


"pkgcond"  - Used to determine the type of target being operated on global zone, non-global zone, disk less client. It has one mandatory argument, a condition.  The command test whether the condition is true for the specified path.

Here to tweak the output I have used the Solaris 10 1/13 release.

bash-3.2# cat /etc/release
                    Oracle Solaris 10 1/13 s10x_u11wos_24a X86
  Copyright (c) 1983, 2013, Oracle and/or its affiliates. All rights reserved.
                            Assembled 17 January 2013

 


bash-3.2# pkgchk -l -p /usr/bin/pkgcond
Pathname: /usr/bin/pkgcond
Type: regular file
Expected mode: 0555
Expected owner: root
Expected group: sys
Expected file size (bytes): 227524
Expected sum(1) of contents: 31891
Expected last modification: Nov 16 03:36:14 2012
Referenced by the following packages:
        SUNWpkgcmdsu
Current status: installed


bash-3.2# pkgchk -l SUNWpkgcmdsu
Pathname: /usr/bin/pkgcond
Type: regular file
Expected mode: 0555
Expected owner: root
Expected group: sys
Expected file size (bytes): 227524
Expected sum(1) of contents: 31891
Expected last modification: Nov 16 03:36:14 2012
Referenced by the following packages:
        SUNWpkgcmdsu
Current status: installed


(Output Truncated...)



I have executed the command in Global zone, non-global zones - whole root zone and sparse zone respectively
Whole Root Zone name = SampleZone
Sprase Zone name = TestZone


From the Global Zone:

bash-3.2# uname -a;date
SunOS SolarisSVM 5.10 Generic_147148-26 i86pc i386 i86pc
Wed Dec 10 09:13:21 IST 2014
bash-3.2# zonename
global

bash-3.2# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   1 TestZone         running    /export/home/TestZone1         native   shared
   2 SampleZone       running    /export/home/SampleZone        native   shared



bash-3.2# pkgcond -n is_what
can_add_driver=0
can_remove_driver=0
can_update_driver=0
is_alternative_root=0
is_boot_environment=0
is_diskless_client=0
is_global_zone=1
is_mounted_miniroot=0
is_netinstall_image=0
is_nonglobal_zone=0
is_path_writable=1
is_running_system=1
is_sparse_root_nonglobal_zone=0
is_whole_root_nonglobal_zone=0




Where option
-n = Negate return status (0 becomes1 and 1 becomes 0).  It negates results in the case of ' is_what' condition.



Where –
0 = False
1 = True


From the Whole Root Zone:
bash-3.2# uname -a;date
SunOS SampleZone 5.10 Generic_147148-26 i86pc i386 i86pc
Tue Dec  9 20:16:39 PST 2014
 

bash-3.2# zonename
SampleZone

bash-3.2# pkgcond -n is_what
can_add_driver=1
can_remove_driver=1
can_update_driver=1
is_alternative_root=0
is_boot_environment=0
is_diskless_client=0
is_global_zone=0
is_mounted_miniroot=0
is_netinstall_image=0
is_nonglobal_zone=1
is_path_writable=1
is_running_system=0
is_sparse_root_nonglobal_zone=0
is_whole_root_nonglobal_zone=1


From the Sparse Zone:
bash-3.2# uname -a;date
SunOS TestZone 5.10 Generic_147148-26 i86pc i386 i86pc
Tue Dec  9 19:42:48 PST 2014
 

bash-3.2# zonename
TestZone

bash-3.2# pkgcond -n is_what
can_add_driver=1
can_remove_driver=1
can_update_driver=1
is_alternative_root=0
is_boot_environment=0
is_diskless_client=0
is_global_zone=0
is_mounted_miniroot=0
is_netinstall_image=0
is_nonglobal_zone=1
is_path_writable=1
is_running_system=0
is_sparse_root_nonglobal_zone=1
is_whole_root_nonglobal_zone=0

3 comments:

  1. So is the concept of wholeroot ans sparse root confined to Solaris 10(native) only.
    how does the whole thing work for branded zones ?

    ReplyDelete
    Replies
    1. Hi Pavan,
      Yes. Whole root zone and Sparse zone are confined only on Solaris 10. These 2 non-global zones can be created on both the SPARC and X86 hardware.

      Branded zone is for non-native operating system (Linux) running on a Solaris 10.
      Branded zone is restricted on SPARC hardware. As SPARC hardware will not support other Operating System to be installed in. So Branded zones can be created only on Solaris 10 running on X86 hardware.

      Does my reply answer your question? If not, please let know.

      Delete
  2. Its impressive to know something about your note on sun solaris Course. Please do share your articles like this your articles for our awareness. Mostly we do also provide Online Training on Cub training sun solaris course.

    ReplyDelete