- Introduction
- Booting a System
- The OpenBoot Environment
- The OpenBoot Architecture
- The OpenBoot Interface
- Getting Help in OpenBoot
- PROM Device Tree (Full Device Pathnames)
- OpenBoot NVRAM
- OpenBoot Security
- OpenBoot Diagnostics
- OpenBoot PROM Versions
- Booting a System
- The Kernel
- The init Phase
- System Shutdown
- Summary
- Suggested Readings and Resources
Summary
This chapter provides a description of the OpenBoot environment, the PROM, NVRAM, and the kernel. It describes how to access OpenBoot and the various commands that are available to test and provide information about the hardware.
This chapter describes the OpenBoot architecture, and it explains how OpenBoot controls many of the hardware devices. By using the programmable user interface available in OpenBoot, you can set several parameters that control system hardware and peripherals.
The device tree and OpenBoot device names are explained in this chapter. Throughout this book, the text refers to various device names used in Solaris. It’s important that you understand each one of them. Along with device names, this chapter explains how to set temporary and permanent device aliases.
The system startup phases are described in this chapter, and you have learned how Solaris processes and services are started, from bootup, to loading and initializing the two-part kernel, to continuing to the multi-user milestone. You can further control these services through the Service Management Facility.
This chapter describes how important it is to shut down the system properly because the integrity of the data can be compromised if the proper shutdown steps are not performed. All the various commands used to shut down a system in an orderly manner are outlined.
Chapter 4, "User and Security Administration," describes how to protect your system and data from unauthorized access.
Key Terms
- Autoconfiguration
- Boot
- Bootblock
- Bootstrapping
- Service Contract
- Dependency
- Sub-dependencies
- Device alias
- Device tree
- Dynamic kernel
- Full device name
- init state
- Interactive boot
- Kernel
- Loadable module
- Multiuser mode
- NVRAM
- OBP
- OpenBoot
- POST
- PROM
- Reconfiguration boot
- Run control script
- Run level
- Service Management Facility (SMF)
- Service
- Service Instance Object
- Single-user mode
- ufsboot
Exercises
3.1 Using OpenBoot Commands
In this exercise, you will halt the system and use the OpenBoot commands to set parameters and gather basic information about your system.
Estimated time: 30 minutes
- Issue the OpenBoot command to display the banner, as follows:
- Set parameters to their default values, as follows:
- Set the auto-boot? parameter to false to prevent the system from booting automatically after a reset. From the OpenBoot ok prompt, type the following:
- Display the list of OpenBoot help topics, as follows:
- Use the banner command to get the following information from your system:
- Display the following list of OBP parameters by using the printenv command:
- Use the following commands to display the list of disk devices attached to your system:
- List the target number and the device type of each SCSI device attached to your system by using the OpenBoot commands in step 7.
- From the OpenBoot prompt, identify your default boot device as follows:
- Use the show-disks OpenBoot command to get a listing of the disk drives on your system, as follows:
- Create a permanent device alias named bootdisk that points to the IDE master disk, as follows:
- Reset the system and verify that the device alias is set properly by typing the following:
- Now, set the system up so that it boots into single-user mode without any user intervention:
- I suggest changing the auto-boot? parameter back to true and resetting the system to validate that your boot-command parameter is set properly as follows:
- Boot the system, log on as root, and use the eeprom command to list all NVRAM parameters.
- Use the eeprom command to list only the setting of the boot-device parameter, as follows:
- Reset boot-device to its default parameter from the OpenBoot prompt, as follows:
- From the OpenBoot prompt, remove the alias bootdisk, as follows:
- Reset the system and verify that bootdisk is no longer set, as follows:
- Set all the OpenBoot parameters back to their default values, as follows:
banner
reset-all
setenv auto-boot? false
Verify that the parameter has been set by typing the following:
printenv auto-boot?
help
ROM revision
Amount of installed memory
System type
System serial number
Ethernet address
Host ID
output-device input-device auto-boot? boot-device
probe-scsi probe-scsi-all probe-ide
Explain the main differences between these commands.
printenv boot-device
show-disks
nvalias bootdisk /pci@1f,0/pci@1,1/ide@3/disk@0,0
You'll need to select a SCSI disk if your system does not have IDE disks attached to it.
reset-all
After the system resets, type the following:
devalias bootdisk
setenv boot-command 'boot -s'
setenv auto-boot? true reset-all
eeprom boot-device
set-default boot-device
nvunalias bootdisk
reset-all printenv
set-defaults
3.2 Booting the System
This exercise takes you through the steps of powering on and booting the system.
Estimated time: 5 minutes
- Turn on power to all the peripheral devices, if any exist.
- If the OpenBoot parameter auto-boot is set to false, you should see the ok prompt shortly after you power on the system. If the system is set to auto-boot, you should see a message similar to the following displayed onscreen:
- At the ok prompt, type boot to boot the system.
SunOS Release 5.10 Version Generic 64-bit Copyright 1983-2005 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
You should see the system begin the boot process. Interrupt the boot process by pressing Stop+A. The ok prompt appears.
3.3 Booting an Alternate Kernel
In this exercise, you'll practice booting from a backup copy of the /etc/system file. You should use this process if your /etc/system file ever becomes corrupt or unbootable.
Estimated time: 15 minutes
- Log in as root.
- Create a backup copy of the /etc/system file by typing this:
- Now remove the /etc/system file by typing this:
- Halt the system by typing this:
- At the ok prompt, boot the system by using the interactive option to supply the backup name of the /etc/system file. You do that by typing this:
- You are prompted to enter a filename for the kernel and a default directory for modules. Press Return to answer each of these questions. When you are prompted with this message to use the default /etc/system file
- Later you'll be asked to enter the root file system type and the physical name of the root device. At that point, press Return to answer both questions.
- When the system is ready, log in as root and put the original /etc/system file back in place:
cp /etc/system /etc/system.orig
rm /etc/system
/usr/sbin/shutdown -y -g0 -i0
boot -a
Name of system file [etc/system]:
enter the following:
/etc/system.orig
cp /etc/system.orig/etc/system
Review Questions
- The hardware-level user interface that you see before the operating system has been started is called what?
- OpenBoot
- EEPROM
- Firmware
- Boot PROM
- Which of the following is where the system identification information, such as the hostid, is stored?
- Firmware
- OpenBoot
- NVRAM
- Kernel
- What tasks are performed by OpenBoot? (Select the two best answers.)
- Executing POST
- Loading bootblk
- Executing ufsboot
- Loading the operating system kernel
- Which of the following is not a task of the OpenBoot firmware?
- Testing and initializing the system hardware
- Loading the kernel
- Starting up the operating system from either a mass storage device or from a network
- Allowing modification and management of system startup configuration, such as NVRAM parameters
- Which of the following is attached to a host computer through a hierarchy of interconnected buses on the device tree?
- SBus cards
- SCSI peripherals
- Plug-in device drivers
- Nodes
- What is /pci@1f,0/pci@1,1/ide@3/disk@0,0?
- Full device pathname
- Physical device
- Logical device
- Instance
- Which of the following is used to obtain information about devices and to display device pathnames in OpenBoot?
- show-devs
- dmesg
- pwd
- sysdef
- Which of the following commands creates a temporary device alias named bootdisk?
- setenv bootdisk /pci@1f,0/pci@1,1/ide@3/disk@0,0
- set bootdisk /pci@1f,0/pci@1,1/ide@3/disk@0,0
- nvalias bootdisk /pci@1f,0/pci@1,1/ide@3/disk@0,0
- devalias bootdisk /pci@1f,0/pci@1,1/ide@3/disk@0,0
- If you want to create permanent aliases in NVRAM (that show up after a reboot), which of the following commands should you use?
- devalias
- nvalias
- setenv
- eeprom
- Which NVRAM variable specifies the device from which to start up?
- boot-device
- boot-file
- output-device
- input-device
- If a system will not start due to a bad NVRAM variable, which of the following, performed before you see the OpenBoot prompt, resets the NVRAM variables to their default settings?
- set-default <variable>
- Stop+N
- set-defaults
- Ctrl+N
- Which of the following can restrict the set of operations that users are allowed to perform at the OpenBoot prompt?
- security-password
- security-mode
- set-secure
- set-security
- Which of the following is used in OpenBoot to test all devices that have built-in self-test methods below the specified device tree node?
- diag
- probe-scsi
- test-all
- test
- Which option do you use with the OpenBoot boot command so that you are prompted for the name of the standalone program to load?
- -v
- -f
- -s
- -a
- What resides in blocks 115 of the startup device?
- bootblk
- superblock
- kernel
- ufsboot
- Which of the following loads the operating system kernel?
- ufsboot
- openBoot
- bootblk
- init
- Which of the following commands lists all hardware devices, system devices, loadable modules, and the values of selected kernel tunable parameters?
- more /var/adm/messages
- adb
- dmesg
- sysdef
- What key combination would you enter to interrupt a system that is not responding?
- Ctrl+B
- Ctrl+C
- Stop+A
- Ctrl+Alt+Delete
- m E. Ctrl+Break
- What is the function of the auto-boot parameter that is set in the OpenBoot PROM?
- Boots automatically after power-on or reset
- Sets the default boot device
- Reboots after a watchdog reset
- Automatically performs a system reboot when a system core file has been generated
- Which of the following commands is used to set the auto-boot parameter?
- setenv auto-boot?=false
- set auto-boot=false
- eeprom auto-boot?=false
- nvset
- To display all OpenBoot parameter settings, such as boot-device and ttya-mode, what should you type?
- nvalias
- devalias
- printenv
- show all
- To check the target IDs on all the SCSI devices connected to all the SCSI controllers, what should you type?
- test-all
- probe-scsi
- probe-scsi-all
- test-scsi
- The kernel reads which of the following files when loading? (This is where system configuration information is stored.)
- /etc/system
- kernel/sparcv9/unix
- /etc/inittab
- /kernel/unix
- Select the sequence of events that best describes the boot process.
- Boot PROM phase, boot program phase, kernel initialization phase, init phase, and svc.startd phase
- Boot program phase, boot PROM phase, kernel initialization phase, svc.startd phase, and init phase
- Boot program phase, boot PROM phase, init phase, kernel initialization phase, svc.startd phase
- Boot PROM phase, boot program phase, svc.startd phase, kernel initialization phase
- What consists of a small static core and many dynamically loadable modules?
- The kernel
- ufsboot
- The shell
- The bootblock
- After reading the /etc/inittab file, which daemon does the init process startup?
- sched
- /sbin/rc1
- ufsboot
- svc.startd
- How can system messages displayed at bootup be viewed later?
- By issuing the dmesg command
- By viewing the /var/adm/messages file
- By issuing the sysdef command
- By viewing logs in the /var/svc/log directory
- To boot a system into a single-user state, which commands are entered at the ok prompt?
- boot
- boot -s
- boot -a
- boot -m milestone=single-user
- Which command, typed at the ok prompt, stops and asks for boot information during the boot process?
- boot -i
- boot -a
- boot -v
- boot -s
- Which of the following programs is responsible for executing ufsboot?
- bootblk
- kernel
- init
- boot
- What command do you use to change run levels?
- run
- init
- kill
- su
- This XML-based file contains a complete set of properties that are associated with a SMF service or a service instance. Where are these files stored?
- /var/svc/method
- /lib/svc/method
- /var/svc/manifest
- /var/svc/profile
- Which command is used to transition your system into the single-user milestone from the multi-user milestone?
- svcadm milestone single-user
- svcadm milestone/single-user
- init -s
- init single-user
- Which of the following is NOT the valid FMRI name of a service instance?
- svc://localhost/network/inetd:default
- lrc:/etc/rc3_d/S90samba
- network/inetd:default
- svc:/inetd:default
- Which command is used to obtain a detailed view of the service state of all service instances in the configuration repository?
- inetadm -a
- svcs -a
- svcadm -a
- svcprop -l
- Which of the following service states indicates that the service is configured to run, but is not yet running or available to run?
- offline
- maintenance
- disabled
- degraded
- Which SMF command displays the services that must be running before the multi-user milestone is reached?
- svcs -d milestone/multi-user
- svcs -D milestone/multi-user
- svcs -p milestone/multi-user
- svcs -l milestone/multi-user
Answers to Review Questions
- A. The hardware-level user interface that you see before the operating system starts is called the OpenBoot PROM (OBP). For more information, see the section "The OpenBoot Environment."
- C. Non-Volatile RAM (NVRAM) is where the system identification informationsuch as the host ID, Ethernet address, and TOD clockis stored. For more information, see the section "The OpenBoot Environment."
- A, B. The two primary tasks of the OpenBoot firmware are to run the POST and to load the bootblock. For more information, see the section "The OpenBoot Environment."
- B. OpenBoot runs POSTs to initialize the system hardware. It also loads the primary startup program, bootblk, from the default startup device. The bootblk program finds and executes the secondary startup program, ufsboot, and loads it into memory. From that point, the ufsboot program loads the operating system kernel. For more information, see the section "The OpenBoot Environment."
- D. Devices called nodes are attached to a host computer through a hierarchy of interconnected buses on the device tree. A node that represents the host computer's main physical address bus forms the tree's root node. For more information, see the section "The OpenBoot Architecture."
- A. A full device pathname is a series of node names separated by slashes (/). The root of the tree is the machine node, which is not named explicitly but is indicated by a leading slash. Each device pathname has this form:
- A. The OpenBoot command show-devs is used to obtain information about devices and to display device pathnames. For more information, see the section "PROM Device Tree (Full Device Pathnames)."
- D. You use the devalias command as follows to create a temporary device alias named bootdisk:
- B. or D. You use the nvalias command from the OpenBoot PROM or the eeprom command from the Unix prompt to create a permanent alias in NVRAM that remains in effect even after a reboot. For more information, see the section "OpenBoot Device Aliases."
- A. The NVRAM variable named boot-device contains the name of the default startup device. For more information, see the section "Booting a System."
- B. To reset the NVRAM variables to their default settings, you hold down the Stop+N keys simultaneously while the machine is powering up. For more information, see the section "OpenBoot NVRAM."
- B. The OpenBoot command security-mode restricts the set of operations that users are allowed to perform at the OpenBoot prompt. For more information, see the section "OpenBoot Security."
- C. The OpenBoot command test-all tests all devices that have built-in self-test methods below the specified device tree node. For more information, see the section "OpenBoot Diagnostics."
- D. You issue the OpenBoot boot command with the -a option to be prompted for the name of the standalone program to load. For more information, see the section "The boot Command."
- A. The bootblock resides in blocks 115 of the startup device. For more information, see the section "The boot Command."
- A. The secondary startup program, ufsboot, loads the two-part operating system kernel. For more information, see the section "Booting a System."
- D. You use the sysdef command to list all hardware devices, system devices, and loadable modules, as well as the values of selected kernel tunable parameters. For more information, see the section "The Kernel."
- C. You interrupt a system that is not responding by pressing Stop+A. For more information, see the section "Stopping the System for Recovery Purposes."
- A. auto-boot? controls whether the system automatically starts up after a system reset or when the power is turned on. The default for this variable is true. When the system is powered on, the system automatically starts up to the default run level. For more information, see the section "OpenBoot NVRAM."
- C. eeprom auto-boot?=false is used to set the auto-boot? parameter from the Unix shell. Option A is wrong because the "=" sign should not be used with the setenv command. Option B is wrong because there is not a set command at the OpenBoot prompt, and using set from the Unix shell will not set an OpenBoot parameter. Option D is wrong because there is not an nvset command. For more information, see the section "OpenBoot NVRAM."
- C. At the OpenBoot prompt, you use the printenv command to display all OpenBoot parameter settings. For more information, see the section "OpenBoot NVRAM."
- C. You use the probe-scsi-all command to check the target IDs on all the SCSI devices that are connected to all the SCSI controllers. For more information, see the section "OpenBoot Diagnostics."
- A. When the kernel is loading, it reads the /etc/system file, where system configuration information is stored. This file modifies the kernel's parameters and treatment of loadable modules. For more information, see the section "The Kernel."
- A. The boot process goes through the following five phases: boot PROM phase, boot programs phase, kernel initialization phase, init phase, and svc.startd phase. For more information, see the section "Booting a System."
- A. The kernel consists of a two-piece static core that is made up of genunix and unix. genunix is the platform-independent generic kernel file, and unix is the platform-specific kernel file. When the system boots, ufsboot combines these two files and many dynamically loadable modules into memory to form the running kernel. For more information, see the section "The Kernel."
- D. The init process reads the /etc/inittab file and executes any process entries that have sysinit in the action field, so that any special initializations can take place before users log in. After reading the /etc/inittab file, init starts the svc.startd daemon, which is responsible for starting and stopping other system services such as mounting file systems and configuring network devices. In addition, svc.startd will execute legacy run control (rc) scripts. For more information, see the section "The init Phase."
- B. The boot process creates fewer messages. All of the information that was provided by the boot messages in previous versions of Solaris is now located in the /var/svc/log directory. For more information, see the section "The Solaris Management Facility (SMF) Service."
- B, D. You issue the boot -s command or the boot -m milestone=single-user at the OpenBoot ok prompt to boot the system into single-user mode. For more information, see the section "Booting a System." You can also boot to a specific milestone using the boot -m command.
- B. The boot -a command performs an interactive boot. With this option, you are prompted to enter the name of the kernel, the default modules directory, the name of the system file, the root file system type, and the device name for the root device. For more information, see the section "Booting a System."
- A. The bootblk program finds and executes the secondary boot program, called ufsboot, from the UFS and loads it into memory. For more information, see the section "Booting a System."
- B. You use the init command to change run levels. For more information, see the section "System Run States."
- C. An SMF manifest is an XML (Extensible Markup Language) file that contains a complete set of properties that are associated with a service or a service instance. The properties are stored in files and subdirectories located in /var/svc/manifest. For more information, see the section "The Solaris Management Facility (SMF) Service."
- A. Use the svcadm milestone single-user command to switch into the single-user milestone. For more information, see the section "Starting Services During Boot."
- D. A valid FMRI instance names take the form of:
- B. Running the svcs command without options will display the status of all enabled services. Use the -a option to list all services, including disabled services. For more information, see the section "SMF Command-line Administration Utilities."
- A. The offline status indicates that a service instance is enabled (configured to run), but the service is not yet running or available to run. A disabled service is configured not to start. For more information, see the section "SMF Command-line Administration Utilities."
- A. The -d option for the svcs command lists the services or service instances upon which the multi-user service instance is dependent on. For more information, see the section "SMF Command-line Administration Utilities."
driver-name@unit-address:device-arguments
For more information, see the section "PROM Device Tree (Full Device Pathnames)."
devalias bootdisk /pci@1f,0/pci@1,1/ide@3/disk@0,0
For more information, see the section "OpenBoot Device Aliases."
svc://localhost/network/inetd:default svc:/network/inetd:default network/inetd:default
svc:/inetd:default does not contain the service category name.
lrc:/etc/rc3_d/S90samba is an FMRI for a legacy run control script not managed by SMF.
For more information, see the section "The Solaris Management Facility (SMF) Service."