Sco UNIX 的核心引导过程详解

来源:百度文库 编辑:神马文学网 时间:2024/04/27 17:35:56
Sco UNIX 的核心引导过程详解   作者:ljmmail  出处:unix-cd.com  更新时间: 2007年06月07日 

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 linkedsintosthe 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:表明某一设备上没有特定的文件系统,或所查找的目录实为一文件。