Solaris学习之OpenBoot PROM(2)

来源:互联网 发布:淘宝卖家补差价怎么弄 编辑:程序博客网 时间:2024/04/29 03:57

OBP监测程序管理SPARC的系统固件。

OPENboot不是一个简单的OS加载程序,如LILO。它是一个固件,允许在引导开始前编写、加载和运行基于堆栈的FORTH语言写成的程序,这在一个大型企业中定制服务器特别有用。

OpenBoot监测器有两个输入命令的提示符,ok提示符和>提示符

> n

ok

在>下输入n即可切换到ok提示符。命令一般在ok下输入。

直接输入boot即可以启动Solaris系统。如果上次启动后修改了硬件配置,则用boot -r重新引导。

boot -a可以进行手工引导,在启动各个阶段可以配置指定参数,包括内核路径、系统文件路径、引导设备的名称。

ok banner

可以浏览固件的版本信息和系统配置。

ok boot cdrom           从光盘引导系统

ok boot net               从网络引导

ok boot flooy           从软盘

ok setenv boot-device disk               设置默认引导设备为主驱动器

ok printenv boot-device           显示默认引导设备

ok reset                          重新启动系统

ok test net                    测试网络设备

ok probe-scsi                检测系统中安装的所有SCSI设备

恢复系统

如果系统连单用户模式也无法进入,那么就只能使用CD、DVD启动并进入单用户模式。例如/etc/passwd文件中有一个针对根用户无效的条目,此时系统不能进入单用户或多用户模式。此时:

ok boot cdrom

INIT: single user mode

Type Ctrl-d to process with normal startup,

#mkdir /temp

#mount /dev/dsk/c0t0d0s1 /temp

#vi /temp/etc/passwd

#sync; init 6

如果系统挂起,不能在上述控制台下输入命令,则可以用STOP+A(Ctrl+SPACE)停止系统,访问Openboot。在这种情况下,可以用go命令恢复系统正常的操作,否则没有保存的数据会丢失。

 

STOP命令: 只在SPARC平台上使用

STOP 进入POST环境

STOP-A 进入PROM监视器环境

STOP-D 执行诊断测试

STOP-F 进入FORTH语言环境

STOP-N 初始化永久RAM,设置默认目录。

实践,我用IBM X31通过USB2COM口接到SUN V440的Serial Management Port,然后运行SecureCRT 6.1控制。可以顺利进入SC>,但是用console总是没有办法切换到ok提示符下,后来在系统启动显示:

Rebooting with command: boot   

时按下Ctrl+break(Stop+A),此时可以进入ok提示符。

然后输入:

ok boot cdrom –s

系统启动后显示#提示符。

#fsck –y

#reboot

重新启动系统,还是不行,显示错误:

Use is subject to license terms.
e_ddi_get_dev_info: Illegal major device number <-1>WARNING: md: d20: (Unavailable) needs maintenance
WARNING: Error writing ufs log state
WARNING: ufs log for / changed state to Error
WARNING: Please umount(1M) / and run fsck(1M)
WARNING: forceload of misc/md_trans failed
WARNING: forceload of misc/md_raid failed
WARNING: forceload of misc/md_hotspares failed
WARNING: forceload of misc/md_sp failed
Hardware watchdog enabled

怀疑是RAID没有同步,试着重新用CDROM启动,然后sync,

#sync

#init 0

#format                           //查看系统中磁盘个数

#fsck /dev/dsk/c1t0d0s0