How to list network interfaces in Solaris10

March 29, 2010

If you have a Solaris box with few NIC cards configured. You can list them as follows:

# ifconfig -a

ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
vsw0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 172.168.2.71 netmask ffffff00 broadcast 172.168.2.255
ether 0:14:4f:fa:95:15

And you’d get the output as shown above. So this is reflecting on localhost and one virtual switch vsw0. But what about other NIC cards? You can list all of the network cards at once using the following command:

ifconfig -a plumb

ifconfig -a

This will list all the network devices available on the Solaris Box. So even if you have a freshly installed Solaris machine with no interface configured, you can use the above command to list the network cards and then proceed with configuring them.


Mount cdrom manually in Solaris

March 18, 2010

It actually happens a number of times that although you’ve inserted the disc in a sparc machine but still it refuses to mount the disk. One of the workaround is to restart the vold and vomgt daemons. But even the if you don’t see your cdrom mounted, you can do it manually as mentioned below:

First find the cdrom, i.e. we need to know the x in cxtxdx.

Fire the following command to find the actual path of cdrom:

ls -al /dev/sr*

This would look like something as follows:

bash-3.00# ls -al /dev/sr*
lrwxrwxrwx   1 root     root          12 Mar  8 14:14 /dev/sr0 -> dsk/c1t0d0s2

So here my cdrom is /dev/dsk/c1t0d0sx

We’re not yet sure about the slice no. so I’ve mentioned sx in above line.

Now we’ll ltry to mount the above slice manually:

mount -F hsfs /dev/dsk/c0t1d0s2 /mnt/cdrom

hsfs mount: /dev/dsk/c1t0d0s1 is not an hsfs file system.

If this fails then we can try for another slice:

mount -F hsfs /dev/dsk/c1t0d0s0 /mnt/cdrom

And it works this time, meaning our cdrom was at s0 slice.


Package Mangement in Solaris

November 22, 2009

Here are the list of useful commands frequently used during package management.

pkgadd

Adds software packages to the system

pkgrm

Removes software packages from the system

pkginfo

Displays software package information

pkgchk

Checks the accuracy of a software package installation

So, we’ll take an example to use above commands. I’ve a package called SUNWant.Z, which I want to install.

So I use the following syntax to add a package.

pkgadd -d SUNWant.Z

To check whether your package has been installed, you can use pkginfo and grep the output to find a specific package.

pkginfo | grep SUNWant

To check the accuracy of the package, you can use pkgchk command as:

pkgchk SUNWant

To remove above package, we have the pkgrm command to use:

pkgrm SUNWant

Refer the Sun documentation for further details.


Solaris Run Levels

November 12, 2009

The run levels in Solaris are little different than what you know about run levels in Linux. So, if you come from Linux background this could be little confusing initially.

There are total 8 run levels in Solaris. Default run level is 3. At a given point of time, a system can be in only one run level.

0    Power Down State
To shut down the operating system so that it is safe to turn off power to the system. This will bring the machine to Open Boot Prompt (OK)

s or S    Single User State
To run as a single user with some file systems mounted and accessible.

1     Administrative State
To access all available file systems. User logins are disabled.

2    Multiuser State
For normal operations. Multiple users can access the system and all file system. All daemons are running except for the NFS server daemons.

3    Multiuser level with NFS resources shared
For normal operations with NFS resources shared. This is the default run level for the Solaris environment.

4    Alternative multiuser state
Currently unavailable.

5    Power-down state
To shut down the operating system so that it is safe to turn off power to the system. If possible, automatically turns off power on systems that support this feature.

6    Reboot state
To shut down the system to run level 0, and then reboot to multiuser level with NFS resources shared (or whatever level is the default in the inittab file).


How to create a Solaris Flash Archive (Flar)

October 22, 2009

A solaris filesystem can be copied into an flash archive. This archive can then be used to install the Solaris OS on another system. Installation through flar is fast and efficient.

The format of the command is as follows:

# flarcreate -n name options path/filename

name
The name that you give the archive.

options
For a description of options, see The flar Command.

path
The path to the directory in which you want to save the archive file. If you do not specify a path, flarcreate saves the archive file in the current directory.

filename
The name of the archive file.

So for example I wan to create a flar with the name Solaris9 and the filename as myarchive.flar, the command will look like as mentioned below:

# flarcreate -n solaris9 -c myarchive.flar

where -c is an option to create compressed flar.

See the manpages for more options.


Solaris 10 versions

September 21, 2009

Often the Solaris 10 versions are referred by two ways. Either by the date on which they were released or the update no. So the latest release of Solaris10 is U8 released in Oct-2009 (10/09).

But what about the rest?
Given below is a simple table mentioning the release date and its corresponding update no:

Update Release
1 01/06
2 06/06
3 11/06
4 08/07
5 05/08
6 10/08
7 05/09
8 10/09

How to mount a iso file

June 21, 2009

So you’ve a cd image in iso format and you want to accesss it. Quite simple, it consists of two parts, creating a loopback device and then mounting this block device to any mount point.

1. Creating a loopdevice using lofiadm

# lofiadm -a /export/home/cdimage.iso /dev/lofi/1

If this file already exists then simply go for /dev/lofi/2 and so on.

2. Mounting the block device to a mount point

# mount -F hsfs -o ro /dev/lofi/1 /mnt/cdrom

Here hsfs is the filesystem type for CD-ROM/DVD on Solaris platform.

Fortunately there is a quicker alternative to firing both the commands. The output of these can be achieved in a single command

# mount -F hsfs -o ro `lofiadm -a /export/home/cdimage.iso` /mnt/cdrom

Ans so now you can access the iso like a mount cdrom at the mount point.

To unmont use ‘umount’ command and the mount point.

# umount /mnt/cdrom

And so you’re done.


How to change IP address

June 20, 2009

If your solaris system has a static address assigned to it and you wish to change it, simply update the files corresponding to your version of Solaris as explained below.

Solaris 9 and below change the IP in following file

/etc/hosts

Solaris 10 till update 3

/etc/hosts

/etc/inet/ipnodes

Solaris 10 update 4 and later

/etc/hosts

In case you also want to change your gateway, change the router address in…

/etc/defaultrouter

Also ensure that you have the correct netmask mentioned in the file…

/etc/netmasks

Create the netmasks file if it does not exist.


How to share a directory through nfs

June 10, 2009

This is quite simple than you thought. First just make sure that your nfs server is enabled or not with the following command:

# svcs network/nfs/server
STATE          STIME    FMRI
online         16:01:36 svc:/network/nfs/server:default

And if working you will get an output as shown above or else you will get something like…

STATE          STIME    FMRI
disabled       17:42:25 svc:/network/nfs/server:default

If this is the case you need to enable your nfs server with svcadm command as shown below:

# svcadm enable network/nfs/server

Confirm that your nfs server is running with the above command.

Once you are sure that your nfs is running, next task is to share the directory.

Now for example purpose, say you want to share ‘/export/home/share’ directory. Fire the following command straight away:

#/usr/sbin/share -F nfs -o ro,anon=0 /export/home/share

To check all the directories shared on your Solaris system, use the share command:

#share

-               /nbsin_share   ro,anon=0   ""   /export/home/share

And you should get the output as shown above.

But make a note that this is a temporary sharing of the directory. If you happen to reboot your system or restart the nfs service the sharing will be disabled.

By default only those directories are shared by the nfs server who have an entry into its configuration file located at ‘/etc/dfs/dfstab’

So to make our above directory sharing persist forever we will append our share command into dfstab file:

#echo "/usr/sbin/share -F nfs -o ro,anon=0 /export/home/share" >> /etc/dfs/dfstab

Then we’ll ask the nfs service to share all the directories as metioned in dfstab file with the following command:

#shareall

You can crosscheck your sharing by ‘share’ command as now you already know.


How to set the hostname in Solaris 10

May 23, 2009

If you have a system with a fresh installed Solaris 10 and it does not have an entry with ‘name server’, there are chances that it’ll set the hostname as ‘unknown’. To change this hostname you need to edit 3 files, follow the following steps:

For the sake of example, say the IP of my system is 192.168.1.32 and I want to set the hostname to ‘sol10_sparc’

File 1

Use a text editor like vi to open and edit the following file:

# vi /etc/hosts

By default you’ll find the following line in the above file:

192.168.1.32 unknown #set by DHCP

Simply edit the file to replace ‘unknown’ with your hostname to make it look like as:

192.168.1.32 sol10_sparc #set by DHCP

File 2

Next we need to edit the file called nodename

# vi /etc/nodename

Just insert the hostname ‘sol10_sparc’ into this file.

File 3

And now last, find out the name of your ethernet card with the ‘ifconfig -a’ command. Say my ethernet card is called ‘rge0’. I’ll create and edit the following file:

# vi /etc/hostname.rge0

Insert your new hostname ‘sol10_sparc’ in this file, save and exit.

Restart your machine:

# init 6

That’s it, after your machine restarts, check the hostname:

# hostname

Done, enjoy 🙂