Booting process inside solaris SPARC architecture is done with the help of middleware layer known as firmware. This firmware is known as OBP (Open Boot Prompt), this layer is used to manage the H/W independent of Operating System. The entire information of OBP is stored inside 1 Mb Chip known as as Prom (Programmable read only memory) Chip.
The parameters stored inside the chip are known as NVRAM(Non Volatile Random access memory) parameters. We can set the parameters such as booting sequence, identifying devices, set alias names for device and also provide security for devices.
Boot Process:
- Boot Prom
- Boot Programme
- Kernel initialization
- Init phase
- Svc.startd (SMF)
1. Boot Prom: In this phase it loads the primary boot block known as boot block on to the memory.
Backend:
a. When the server is powered on the PROM run POST (Power on self test).
b. POST identifies all the devices and boot prom identifies bootable devices with the help of NVRAM parameters “boot-device”
c. It reads the VTOC(Volume Table of contents) of boot device and reads the slice number zero from 1-15 sectors and loads the boot on the 16th memory.
d. At the time of initialization, installed boot programme will load boot block into 1-15th sector of root (/)
2. Boot Programme:
This loads the secondary boot known as UFS book.
a. In this phase the boot block will load the secondary boot block known as UFS boot on to memory.
b. The location of UFS boot is stored inside bootblock by installed boot programme.
c. UFS boot contains two parts of kernel knows as UNIX and GENUNIX which is platform dependant and independent respectfully.
d. UFS boot combine these tow part kernel into a single running kernel.
3. Kernel Initialization: It reads the file /etc/system to get boot parameters.
a. In this phase the UFS boot will start the kernel and the kernel will read the file /etc/system file.
b. The kernel cannot load by itself and hence takes the help of UFS boot till it loads the root (/) module.
c. Once root module is loaded it starts booting by itself.
d. In this phase the kernel will start the first phase of process known as init process with process ID 1.
4. /etc/inittab (init phase):
a. In this phase the first process called init process will read the file /etc/inittab.
b. Till Solaris 9, system in this phase use to come with the help of run level.
c. Run levels define the system state of reach.
d. From Solaris 10 onwards this file does not contain any run leve but this will start the master starter and restarter daemon known as svcstartd. This daemon will enable the main configuration daemon svcconfigd. This will read repository database to start the services.
RUN LEVELS In Solaris 10
0 ----------- Ok Boot prompt
s or S ----------- Single user with only critical file system.
1 ----------- Single user with all filesystems mounted.
2 ----------- Multiuser without NFS
3 ----------- Multiuser with NFS
4 ----------- Reserved
5 ----------- Shutdown or power off
6 ----------- Reboot
#init is the command to change from one run level to another . The major difference Init s and Init 1 is – when we change from run level 3 to run level s and go back to run level 3, the users will be automatically connected. But in the case of run level 1 the users will have to manually connect to the server.
To know a run level - #who –r
It has four fields
It has four fields
a. Current runlevel
b. Date and time
c. The current runlevel
d. The no of times at this run-level since the last reboot.
e. Previous runlevel
/etc/inittab file contain four fields
a. ID
b. Rstate (One or more runlevels to which this entry applies)
c. Action (How the process to be treated)
d. Process ( The command or the script to be scripted)
When we change from one run level to another runlevel or while booting the system to the appropriate runlevel it executes the runlevel scripts which are stored under the /etc/ directory.
#cd /etc
#ls | grep rc
This rc#.d directory contains scripts which start with ‘S’ knows as starting and ‘K’ known as killing scripts.
#cd rcs.d
#ls
When ever we mention the default runlevel as 3. The sysinit entry in the /etc/inittab will execute following commands
/sbin/autopush
/sbin/soconfig
/sbin/rcS
The ‘R’ state inside the inittab will execute
/sbin/rc2
/sbin/rc3
From Solaris 10 onwards the system will not boot with the help of runlevels, it boots with the help of milestone.
A milestone is defined as a system state of reach.
A repository database is an configurations database which maintain the information of services and how to manage these services.
Repository DB contains default milestone information with which it boots the server. It increases the performance while booting, as it starts all the services parallel.
Repository DB contains default milestone information with which it boots the server. It increases the performance while booting, as it starts all the services parallel.
Important points to be remembered:
Path of bootblock in X86
#cd /usr/platform/i86pc/lib/fs/ufs
In SPARC machines
# cd /usr/platform/sun4c/lib/fs/ufs
How to install boot block – Login to a system in single user mode
Ok> boot cdrom –s
* Go to a location (Root ‘/’ file)
* Go to a location (Root ‘/’ file)
Installboot bootblk /dev/rdsk/c0t0d0s0
The booting process of Solaris has changed from Solaris 10 2006 release onwards. It has been redesigned in such a fashion to have a common boot process between SPARC and X86 architecture. As a part of redesign the Solaris boot archives and bootadm commands are introduced in both architectures.
The primary difference between X86 and SPARC is, how the boot device and the files are selected at boot time.
The SPARC based platforms continue to use OBP as primary administrative interface with boot-options selected by using OBP commands. But in X86 architecture the options are selected through BIOS and GRUB.
In order to understand the new device we have to know bootup and shutdown terminal.
No comments:
Post a Comment