首页>
技术资讯>
详情

Solaris系统的启动和关机

2021-05-08 来源:CloudBest 阅读量: 36
关键词: SOLARIS 诊断测试

  
  Solaris 2.x 采用了基于UNIX系统System V Release 4.0标准的灵活的启动过程, 使得很容易产生和定制在各个主机和系统上都通用的启动和关机过程,这与Solaris 1.x所用的简单的BSD风络的启动过程形成了对比,后者缺少针对不同的系统状态的启动脚本的不同组织形式。本章的目的是向读者介绍一些基本术语和初始化参数,它们在将Solaris系统引入到单用户和多用户运行等级或者init状态的过程中扮演了重要角色,其中init状态是非常独特的操作状态,init状态间的切换由init进程管理。阅读本章后,Solaris 2.x的管理员们在诊断他们自已系统的启动和关机过程时就会觉得有些自信了,并且在升级Solaris 1.x系统时,会对启动时各过程的顺序和之间的依赖关系有清楚的理解。
  
  在许多方面,Solaris的启动和关机于许多其它系统有相似性,然而,认识和理解Solaris操作系统于其它服务器不同的特性也是非常重要的。SPARC硬件的一个重要的功能是称为OpenBoot的固件监视系统,它负责启动前的一些重要任务:
  
  · 通过键入下面的字符启动Solaris操作系统:
  
  ok boot
  
  在 OpenBoot 提示符下, 它将启动Solaris 内核 ( Solaris x86上, boot命令必须通过Primary Boot Subsystem 菜单执行)
  
  · 设置系统配置参数,如启动设备,它可以是几个硬盘之一(由设备的全路径名确定),或者是网络上的一台其它主机,也可以是一个CD-ROM驱动器。
  
  · 通过执行下面这条命令监测网络流量:
  
  ok watch-net
  
  在OpenBoot 提示符下运行
  
  · 对系统设备执行简单的诊断和测试 (例如,检测SCSI总线的终结状态,或者执行称为上电自检的POST(Power-On Self Test POST )检测)
  
  和许多Linux版本带的LILO Linux加载器不一样,OpenBoot不只是一个简单的操作系统加载器,它还允许地启动进程开始前写入、加载和运行用基于堆栈的Forth编程语言写的程序,当为一个大企业定制服务器时,常要求在启动时显示公司的标志而不是缺省的Sun标志,这时,OpenBoot的这一特性就非常有用了,可以生成一个用合适的象素构成的Forth数组,然后运行oem-logo命令。另外,在单用户和多用户init状态中,也可以在启动后对变量的值进行设定,这可以通过以超级用户的身份运行eeprom命令实现。
  
  例如, eeprom 可以用来将启动时自检的RAM改成64M
  
  L 4-3
  
  server# eeprom selftest-#megs=64
  
  在Solaris x86 系统中,固件不直接支持eeprom 这样的功能: 每个PC厂商有不同的BIOS系统,使得很难做到这一点, 做用替代,用bootenv.rc文件中的变量集仿真内存。
  
  要想看OpenBoot为你的系统中的固件发布的信息,可以下面这一命令::
  
  L 4-4
  
  ok banner
  SPARCstation 10, Type 5 Keyboard
  ROM Rev. 2.4, 64 MB memory installed, Serial #6745644
  Ethernet address 6:3:10:a:cc:4a HostID 5767686
  
  如果OpenBoot的提示符不是ok (如,它显业为>>),那么只需简单地键入n回到ok提示符:
  
  L 4-5
  
  >>
  n
  ok
  
  Solaris操作系统的第二个重要特性是通过高效的内核和用户程序模式设计,达到up-time最大化的目的。在一些非Solaris服务器的环境中,每次安装一个新应用时必须重起系统,或者需要重新配置内核。对Solaris系统来说,只在极少的情况下才需重起系统,因为应用程序从逻辑上与系统配置选项是分开的,许多系统级的配置选项可以在超级用户的shell中设置,例如,许多TCP/IP选项可以用下面的命令动动修改:
  
  L 4-6
  
  server# ndd /dev/tcp
  
  在一些比较新的硬件配置中,甚至不需要重起就可以安装新的硬件,这些优点可以减轻系统管员的工作,因此受到新的Solaris管理员的欢迎。
  
  (1)系统V启动过程
  从OpenBoot启动后,Solaris有几个不同的操作模式,称为运行等级“init状态,之所以这么叫是因为常用init命令来改变运行等级,当然也可以用init-wrapper脚本(如关机)。这些init状态可以是单用户的也可以是多用户的,常常每一个状态都代表不同的管理目的,而且是完全不相关的(也就是说,一个系统任何时候只能在一个init状态上)。通常,一个设计成需不定期开机的Solaris系统将完成一系列预先定义好的步骤,以便启动为提供基本系统服务、主要的用户服务和可选应用服务所需的所有软件程序。这些服务一般只在Solaris系统运行在多用户状态时才提供,它们都通过运行控制 ( rc ) shell脚本初始化。通常,在Solaris安装过程中会为管理员自动生成一个运行控制脚本,然而,如果你想安装第三方软件(比如数据库服务器),就需要在/etc/init.d目录下生成你自已的运行控制脚本,以便在系统启动时能自动加载这些服务。本章后面将全面介绍这个过程。
  
  如果因为某些原因(例如,定期的电源损耗)系统需要断电或切换到一个特殊的管理模式来执行诊断测试,也可依据一系列预先定义好的控制脚本来杀死各个服务并保存用户数据。保证这些事件的执行顺序非常重要,因为这样才能保证用户数据的完整性。例如,对数据库服务器的操作通常关系到服务器端的写数据进程和后台的监听进程之间的通信,监听进程负责接受新的信息存储请求。如果这个后台进程没有在写数据进程之前关闭,它可能从网络客户端继续接受数据并将它存在一个已经被数据库关闭的缓存里,这将导致数据库以一种不协调的状态关闭,很可能会引起数据损坏或者记录丢失。图4-1说明了这个过程。Solaris管理员应利用他们的shell脚本知识严格管理系统的关机过程,就象利用运行控制脚本管理系统启动过程那样,这一点非常重要。
  
  管理员应注意三种类型的启动方式。除了在超级用户shell下用下面命令发起的正常重起过程
  
  L 4-7
  
  server# shutdown
  
  重配置启动关系到在 /dev /devices目录下重新组织设备信息,恢复