Tuesday, March 22, 2011

Booting Issues in Solaris

Booting Problems in Solaris 

Most important step in  diagnosing the booting problems is booting the system in single user mode and examining the hard disk for possible errors & work out the corrective measure. Single user mode can be achieved by any of the following methods :-
ok> boot -s           ;from root disk
ok> boot net -s       ;from network

ok>boot cdrom -s      ;from cdrom
Rebooting with command: cdrom -s 
Configuring the /devices directory
Configuring the /dev directory |
INIT: SINGLE USER MODE
#
# fsck /dev/rdsk/c0t3d0s0
# mount /dev/dsk/c0t3d0s0 /mnt

Perform the required operation on mounted disk , now accessible through /mnt ,& unmount the hard disk after you are done ;
# umount /mnt
# reboot

In case system can not boot from primary disk  and it is needed to make another boot disk to access the data , nvalias command is used .
nvalias command makes the device alias  and assigns an alternate name to a physical disk. Physical address of target disk is required  which can be had by show-disk command on ok>.

ok> nvalias disk7 /iommu@f,e0000000/sbus@f,e0001000/dma@3,81000/esp@3,80000/sd2,0
The new aliased disk can be named as boot disk or can be used for booting by refering its name .
ok> setenv boot-device disk7
ok>reset
or
ok> boot disk7

Booting Issues in Solaris

At ok> type printenv and look for these parameters .
  boot-device           disk
  mfg-switch?           false
  diag-switch?          false
if you see "boot-device net " or true value for the other two parameter change it to the values above.
In case you wants to boot from network make sure your client is properly configured in boot server and network connections & configuration are proper.

Boot block on the hard disk is corrupted .Boot the system in single user mode with cdrom and reinstall boot block .
#installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c0t3d0s0
boot block can not find the boot programe - ufsboot in Solaris .Either ufsboot is missing or corrupted . In such cases it can be restored from the cdrom after booting from cdrom & mounting the hard disk 
# cp /platform/`uname -i`/ufsboot /mnt/platform/`uname -i`

Kernel directory or unix kernel file in this directory is not found .Probably deleted during fsck or deleted by mistake .Copy it from the cdrom or restore from the backup tape.
# cp /platform/`uname -i`/kernel/unix /mnt/platform/`uname -i`/kernel

Kernel directory or unix kernel file in this directory is corrupted.Copy it from the cdrom or restore from the backup tape.
# cp /platform/`uname -i`/kernel/unix /mnt/platform/`uname -i`/kernel

System can not find the /etc/path_to_install file .It might be missing or corrupted and needs to be rebuild.
To rebuild this file  boot the system with  -ar option :
ok>boot -ar
Press enter to select default values for the questions  asked during booting and select yes to rebuild /etc/path_to_install
The /etc/path_to_inst on your system does not exist or is empty. Do you want to rebuild this file [n]? y
system will continue booting after rebuilding the file.

When booted from cdrom  and done fsck the root partition comes out to be fine but on booting from root disk this error occurs. The device name for / is missing from /dev/dsk directory and to resolve the issue /dev & /devices directories has to be restored from root backup tapes .

Solaris Interview Questions

Explain rc script and run level
Rc script : check and mount the file system, start and stop the various process.
Run level: Base on the init phases 8 run level
m
Which file will take place while booting.
# /etc/inittab

How many file to modify the host name to be changed without rebooting the system.
There are 6 files.
#vi /etc/hosts
#vi /etc/nodename
#vi /etc/hostname.hme
#vi /etc/net/ticlts/hosts
#vi /etc/net/ticosts/hosts
#vi /etc/net/ticotsord/hostst

Where the ip address will be stored

# /etc/hosts
# /etc/hosts.equi
# /etc/hosts.hme

How to configure the network card

# ifconfig hme0 plumb
# ifconfig hme0 192.9.200.10 netmask 255.255.255.0 up
# vi /etc/hosts ( update the ip address )
# vi /etc/hosts.hme0 ( update the ip address ) --> to bring the interface along with the ipaddress during boot time.

How to configure the virtual ip address

Infinity virtual ip address can be created.
# ifconfig hme0:1 plumb
# ifconfig hme0:1 192.9.200.10 netmask 255.255.255.0 up
# vi /etc/hosts ( update the ip address )
# vi /etc/hosts.hme0:1 ( update the ip address ) --> to bring the interface along with the ipaddress during boot time.

How to find the network card speed

# ndd –get /dev/hme link_speed            
1 = 100mbps
0 = 10mbps

How to modify network card speed

# ndd –set /dev/hme instance 0
# ndd –get /dev/hme link_status
# ndd –get /dev/hme link_mode
             To modify
# ndd –set /dev/eri instance 0
# ndd –set /dev/eri adv_100T4_cap0
# ndd –set /dev/eri adv_100fdx_cap1
# ndd –set /dev/eri adv_100hdx_cap0
# ndd –set /dev/eri adv_10fdx_cap0
# ndd –set /dev/eri adv_10hdx_cap0
# ndd –set /dev/eri adv_autoneg_cap0