Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103652825
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-10 21:58:50


作者:方天红  摘自 《中国计算机报》

 

  Unix既可以从硬盘又可以从软盘上引导。两者都是由BIOS装载硬盘或软盘的引导扇区,由引导扇区来装载执行核心引导程序——Boot程序。本文简要介绍Boot程序的引导过程。


  Boot的内部命令


  Boot共有“?”、“systty”、“mem”、“dir”、“link”共五个内部命令。Sco Unix 5.0以上还有“debug”、“version”两个命令。

  1)?:在命令行上输入“?”,来显示Boot目前可以装载Unix核心的设备,例:

  fd:软盘,hd:硬盘。fd(61):对应于能引导的第一个软盘,hd(40):对应于能引导的第一个硬盘。如果是sco-Unix 5.0以上的版本,还可以从Ramdisk.net 上启动Unix。

  2)systty=0或1:

  在系统引导时,由hdboot1来确认主显示适配器和com1的有效性。在缺省方式下,控制台位于主适配器上,如果主适配器出现故障不可用,则系统自动把com1口作为主控制台。通过systty参数来修改位置,systty=0:控制台位于主适配器上,systty=1:控制台位于com1口上。缺省的通讯参数为:9600波特率,8位,1停止位,无校验。

  3)mem=[range] [/flag]:

  一般来说,Boot能够检测到所有的系统内存,可以用“mem=/p”来显示内存情况。如果Boot检测内存有误,或出于特殊需要,可以用此参数来调整系统可用内存。这是Unix系统的一大特点。

  range:为内存范围

  格式为:

  起始内存—终了内存

  终了内存—起始内存/d

  起始内存+内存大小

  内存的单位用k(千字节)和m(兆字节)表示。 例:

  1m—8m, 或8m—1m/d, 或1024k—8m:表示系统可用8m内存。另:

  1m—5m,6m—8m:表示系统8m内存中,5m—6m内存不能使用。

  flag标志,有以下几种形式:

  /d: 高地址向低地址扫描。

  /n:标明该段内存为非DMA方式存取,所有16M以外的内存,系统自动标为非DMA方式。

  /r:专用内存段。如果该段内存为Rom Shadowing,则该段内存确定为专用段,防止被Boot和Unix核心所覆盖。除了Shadow Rom外,其它可以独立运行的程序正文段也可以放在专用段内。

  /l: Unix核心正文须放在16m内存以下。 

  /p: 显示Boot初始检测到的内存情况,或经过mem参数调整后,再次验证到的内存情况。

  需要说明的是,以上参数调整必须是1M以外的内存。如果内存中存在内存孔穴,孔穴以外的内存Boot不能检测到。在许多机器上,Unix不能很好地处理Rom Shadowing问题,必须在机器的设置中禁止掉。有时候,我们可能发现有些机型的机器存在Rom Shadowing,Unix仍能正常工作,是因为Boot引导时自动地把机器的Rom Shadowing禁止掉了。

  4)dir: 查看当前Boot设备上的文件系统的目录情况。

  5)link: Unix核心引导时装入有关设备的驱动程序(称为BTLD程序)。

  格式1:在Boot命令提示符下,键入“link”后回车,系统提示:

  what packages do you need linked into the system,

  or q to quit?:

  在“:”后,可以输入BTLD名称,多个BTLD之间用空格隔开,再根据系统提示,插入相应的BTLD盘。

  格式2:在Boot命令提示符下,键入:link=“BTLD名1 BTLD名2 …”

  BTLD名之间用空格隔开,并且括在引号内。


  Boot的外部可执行程序


  Boot的外部可执行程序是指能够脱离Unix核心代码,能独立运行的程序。一般来说,这些程序是用汇编编写的机器码,比如:dos,bootos等。

  在Boot提示符下,输入dos或bootos dos就可以使系统转到dos操作系统下。除了DOS外,可启动的系统有:各种版本的DOS系统(dos_12、dos_16、dos_32、dos_ext)、Windows、Novell、NT、OS2、OS2_hpfs、picx、xenix、ccpm及Unix等。其格式为:

  bootos sysname

  (其中:sysname 为上述系统名称)


  Unix启动的缺省配置


  如果在Boot的命令行提示符“:”下,直接回车,Boot认为是要启动缺省的系统核心,初始化缺省的系统环境。这些缺省的信息放置在./etc/default/boot文件中。其常用的参数如下:

  AUTOBOOT=Yes 或NO 如果AUTOBOOT=Yes,Boot在出现提示符“:”后,没有任何输入,在TIMEOUT所定义的时间后,自动装载由DEFBOOTSTR所定义的Unix核心。缺省时,AUTOBOOT=No。

  TIMEOUT=秒数 系统在出现提示符后没有人为干预,系统应等待多少秒后,系统作为回车输入。缺省时,TIMEOUT=60。

  DEFBOOTSTR=standalone参数表 Standalone为可独立运行的程序。定义系统缺省引导的核心名称。

  RONLYROOT=Yes 或No RONLYROOT=Yes,根文件系统安装为只读状态。缺省为No。

  SYSTTY=0 或 1 若为0,控制台位于主显示适配器上。若为1,则在COM1上。缺省在主显示适配器上。

  SERIAL=参数1,参数2,… 定义主控台的通讯参数。例:SERIAL=9600,8,1,N 端口通讯波特率为9600,字节宽度为8位,停止位为1位,非校验。

  另外,与INIT共用的参数有:

  MAPKEY、PANICBOOT、MULTUSER、SLEEPTIME、SPAWN_INTERVAL、 SPAWN_LIMIT、 INHIBIT、DEFAULT_LEVEL等。


  核心的自我调整


  Unix核心引导时,Boot可以向核心传递参数。具体用法为:

  Sco Unix System V/386

  Boot

  : unix kernel.name=value

  可用参数有:

  kernel.root=device 

  根文件系统缺省在hd(40)设备上,通过此项可以定位到其它设备上。

  kernel.swap=device 

  定义初始交换区,缺省在hd(40)上。

  kernel.swplo=s 

  定义页面调度块在交换区的位置,缺省的首块位置始于交换区的0块。

  kernel.nswap=n 

  定义页面调度块的大小。此时,页面调度块的实际位置为s至s+n-1。

  kernel.auto 

  使核心能够自动启动,不要人工干预。

  kernel.ronly 

  使根文件系统为只读状态。

  kernel.hd=xnamex 

  定义主硬盘的设备驱动程序。


  引导过程显示说明


  正确地引导Boot后,系统会提示:

  Sco Unix System V/386

  Boot

  :

  说明系统目前在交互式程序Boot的控制下,“:”为其命令行提示符。在该提示符下,就可以输入内部命令、Unix或其它可以独立运行的程序(standalone)。


--------------------------------------------------------------------------------


  Sco-Unix错误信息注释


  IO ERR:找不到活动分区。

  CLY OVF:操作系统位于硬盘的1024柱面之外,主引导程序不能够装载分区引导块。

  BAD TBL:在分区表上标有两个以上的活动分区。

  NO OS:没有活动分区或活动分区引导块不能装载运行。

  hdboot0引导程序错误信息?

  cannot open:找不到/boot。

  Bad param:/boot 参数出错。

  stage 1 boot failure:/boot找不到或文件出错,需用系统盘启动机器。

  hdboot1引导程序错误信息?

  bad magic number:键入的程序不能运行。

  can’t open :文件找不到。

  COFF files not supported as standalone programs:该程序不能独立运行,需内核支持。

  Command line too long - aborting:boot命令行长度为256字节。

  not a directory:表明某一设备上没有特定的文件系统,或所查找的目录实为一文件。
阅读(548) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~