You are here: Foswiki>ATLAS Web>OpenSolaris (14 May 2008, Sebastian)Edit Attach


Solaris is an operating system desinged by Sun Microsystems. In 2004 it has been open-sourced in the OpenSolaris project.

OpenSolaris is published under CDDL, an open-source licence somewhere between GPL and BSD-licence.


Solaris 10 is available for free download. Sun offers a weekly build of OpenSolaris (Solaris Express Community Edition) and a tested version (Solaris Express Developer Edition). There are several other distributions for OpenSolaris (SchilliX, Nexenta GNU/Solaris) which are more or less in alpha state. For spring 2008 Sun has announced a (final) binary distribution of OpenSolaris called project Indiana and will be published as free and commercial version (Solaris 11?).


Software is organized by the package system (.pkg files and programs).
   1. list all packages
   1. details
pkginfo -l name
   1. install package
pkgadd -d URL
The Blastwave-project offers about 1500 packages for (Open)Solaris (e.g. apache, exim, gimp...), which can be organized by the pkg-get command:
   1. List packages
pkg-get -a
   1. Install package and requirements
pkg-get install apache
   1. Search for keyword
pkg-get describe mail
(Dont be frightened by the large amount of installation output, pkg-get produces...)


Solaris 10 tries to replace init.d scripts by the Service Management Facility ( SMF ). Each service is controlled by an xml-File in /var/svc/manifest/, where start, stop commands, etc. but also dependencies are specified. Thus Solaris can optimize the start order and restart services automatically if terminated by error. Use the following commands for service management:
   1. list and status
   1. details
svcs -l ssh
   1. or with correct name:
svcs -l svc:/network/ssh:default
   1. stop/start (-t till next boot)
svcadm disable -t apache2
svcadm enable -t apache2

SMF quickstart guide


Solaris has full ZFS support.


The later versions of Solaris 10 support Link Aggregation of LACP-type natively, for older systems there may be something called Sun Trunking. A good howto can be found here. So basically its done using the commands dladm and ifconfig

Sample configuration on our sunbox: On the switch enable active (or passive) LACP trunk groups for the four Gbit-Ports of the SunFire. Then the steps in Solaris:
  # Check which devices we have and if they are bound
  dladm show-dev
  ifconfig -a
  # If needed remove the devices configuration
  ifconfig e1000g0 unplumb
  # Create an aggregation of four devices named aggr1
  dladm create-aggr -d e1000g0 -d e1000g1 -d e1000g2 -d e1000g3 1
  # Make sure that aggregation mode is passive (active)
  dladm modify-aggr -l passive
  # Check configuration
  dladm show-aggr 1
  # Plumb the aggregation-device and enable dhcp
  ifconfig aggr1 plumb
  ifconfig aggr1 dhcp start

VLAN-tagging is done by adding the virtual interfaces drivername+vlantag+1000*nicid, e.g. via
  ifconfig e1000g234003 plumb
the e1000g3 is plumed with the tag 234. Unfortunately the following fails
  dladm create-aggr -d e1000g10000 -d e1000g20001 1


Another way of providing nic redundancy and increading bandwidth via load balancing??!


Containers and Zones

Solaris offers a method for separating applications from each other - containers in which they can run in a protected environment


DTrace is a new powerful troubleshooting system for Solaris. It even has its own (C-like?) programming language called D. dtrace offers information about about 60000 probepoints in Solaris.
dtrace -s test.d
Solaris Dynamic Tracing Guide

It is possible to load the kernel debugger kmdb just in time via mdb -K . There are several macros for observing the running system e.g. ::vfinfo or ::ps .


  • Trouble with some network-services? Check "svcs -l /network/physical" and try to restart it.
  • Some commands work slightly different to linux. Try: "ps -fA" for processlist. "shutdown -g0 -i0" for stop.
  • Disable Desktop autostart: /usr/dt/bin/dtconfig -d
  • Update boot_archive: bootadm update-archive
  • DNS, etc: HowTo">
  • Hardwareinfo:
    • prtconf, prtdiag (hardware info e.g. like lshw)
    • iostat -En (good device/disk overview)
    • hd (tool for getting harddisk information/temperatures etc.)

  • HOWTO enable rsh:
svcadm enable svc:/network/inetd:default
svcadm enable svc:/network/login:rlogin
svcadm enable svc:/network/shell:default
--> /root/.rhosts
--> /etc/default/login --> #CONSOLE=/dev/console

Installation on S11

We have got to install areca-Raid-Driver before Installation of OpenSolaris. Unfortunately the installer did not find the driver on inserted CD or floppy, so I had to install it by hand entering the "Single user shell" from OpenSolaris installation menu.

  mount -F ufs -o rw,remount /
  iostat -En
  mount -F hsfs -o ro /dev/dsk/c1t0d0s2 /mnt
  touch /etc/pkg.conf
  pkgadd -d /mnt/ -a /etc/pkg.conf SUNWarcmsr

and go on with Installation. After all data copied to the new disk, before reboot install the areca driver on the disk and execute areca watchdog:

  pkgadd -R /a -d /mnt/ SUNWarcmsr
  cd /usr/lib
  ln -s /a/usr/ucblib/

Unfortunately now we still see an error:
  do_relocate:bad strndx 334
  do_relocations; /kernel/amd64/genunix do_relocate failed
  krtld: error during initial load/link phase
  krtld could neither locate nor resolve symbols for:
  in the boot archive. Please verify that this file matches what is found in the boot archive.

So for the moment OpenSolaris DE 07/09 is installed on a separate harddisk. This way the areca-Controller seems to behave well. A zpool is created with the remaining 15 harddisks, which has to be tested.
Topic revision: r1 - 14 May 2008, Sebastian
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback