Sco-Unix的核心引導(dǎo)過程
Unix既可以從硬盤又可以從軟盤上引導(dǎo)。兩者都是由BIOS裝載硬盤或軟盤的引導(dǎo)扇區(qū),由引導(dǎo)扇區(qū)來裝載執(zhí)行核心引導(dǎo)程序??Boot程序。本文簡要介紹Boot程序的引導(dǎo)過程。
Boot的內(nèi)部命令
Boot共有“?”、“systty”、“mem”、“dir”、“l(fā)ink”共五個內(nèi)部命令。Sco Unix 5.0以上還有“debug”、“version”兩個命令。
1)?:在命令行上輸入“?”,來顯示Boot目前可以裝載Unix核心的設(shè)備,例:
fd:軟盤,hd:硬盤。fd(61):對應(yīng)于能引導(dǎo)的第一個軟盤,hd(40):對應(yīng)于能引導(dǎo)的第一個硬盤。如果是sco-Unix 5.0以上的版本,還可以從Ramdisk.net 上啟動Unix。
2)systty=0或1:
在系統(tǒng)引導(dǎo)時,由hdboot1來確認主顯示適配器和com1的有效性。在缺省方式下,控制臺位于主適配器上,如果主適配器出現(xiàn)故障不可用,則系統(tǒng)自動把com1口作為主控制臺。通過systty參數(shù)來修改位置,systty=0:控制臺位于主適配器上,systty=1:控制臺位于com1口上。缺省的通訊參數(shù)為:9600波特率,8位,1停止位,無校驗。
3)mem=[range] [/flag]:
一般來說,Boot能夠檢測到所有的系統(tǒng)內(nèi)存,可以用“mem=/p”來顯示內(nèi)存情況。如果Boot檢測內(nèi)存有誤,或出于特殊需要,可以用此參數(shù)來調(diào)整系統(tǒng)可用內(nèi)存。這是Unix系統(tǒng)的一大特點。
range:為內(nèi)存范圍
格式為:
起始內(nèi)存?終了內(nèi)存
終了內(nèi)存?起始內(nèi)存/d
起始內(nèi)存+內(nèi)存大小
內(nèi)存的單位用k(千字節(jié))和m(兆字節(jié))表示。 例:
1m?8m, 或8m?1m/d, 或1024k?8m:表示系統(tǒng)可用8m內(nèi)存。另:
1m?5m,6m?8m:表示系統(tǒng)8m內(nèi)存中,5m?6m內(nèi)存不能使用。
flag標志,有以下幾種形式:
/d: 高地址向低地址掃描。
/n:標明該段內(nèi)存為非DMA方式存取,所有16M以外的內(nèi)存,系統(tǒng)自動標為非DMA方式。
/r:專用內(nèi)存段。如果該段內(nèi)存為Rom Shadowing,則該段內(nèi)存確定為專用段,防止被Boot和Unix核心所覆蓋。除了Shadow Rom外,其它可以獨立運行的程序正文段也可以放在專用段內(nèi)。
/l: Unix核心正文須放在16m內(nèi)存以下。
/p: 顯示Boot初始檢測到的內(nèi)存情況,或經(jīng)過mem參數(shù)調(diào)整后,再次驗證到的內(nèi)存情況。
需要說明的是,以上參數(shù)調(diào)整必須是1M以外的內(nèi)存。如果內(nèi)存中存在內(nèi)存孔穴,孔穴以外的內(nèi)存Boot不能檢測到。在許多機器上,Unix不能很好地處理Rom Shadowing問題,必須在機器的設(shè)置中禁止掉。有時候,我們可能發(fā)現(xiàn)有些機型的機器存在Rom Shadowing,Unix仍能正常工作,是因為Boot引導(dǎo)時自動地把機器的Rom Shadowing禁止掉了。
4)dir: 查看當前Boot設(shè)備上的文件系統(tǒng)的目錄情況。
5)link: Unix核心引導(dǎo)時裝入有關(guān)設(shè)備的驅(qū)動程序(稱為BTLD程序)。
格式1:在Boot命令提示符下,鍵入“l(fā)ink”后回車,系統(tǒng)提示:
what packages do you need linked into the system,
or q to quit?:
在“:”后,可以輸入BTLD名稱,多個BTLD之間用空格隔開,再根據(jù)系統(tǒng)提示,插入相應(yīng)的BTLD盤。
格式2:在Boot命令提示符下,鍵入:link=“BTLD名1 BTLD名2 …”
BTLD名之間用空格隔開,并且括在引號內(nèi)。
Boot的外部可執(zhí)行程序
Boot的外部可執(zhí)行程序是指能夠脫離Unix核心代碼,能獨立運行的程序。一般來說,這些程序是用匯編編寫的機器碼,比如:Dos,bootos等。
在Boot提示符下,輸入dos或bootos dos就可以使系統(tǒng)轉(zhuǎn)到dos操作系統(tǒng)下。除了DOS外,可啟動的系統(tǒng)有:各種版本的DOS系統(tǒng)(dos_12、dos_16、dos_32、dos_ext)、Windows、Novell、NT、OS2、OS2_hpfs、picx、xenix、ccpm及Unix等。其格式為:
bootos sysname
(其中:sysname 為上述系統(tǒng)名稱)
Unix啟動的缺省配置
如果在Boot的命令行提示符“:”下,直接回車,Boot認為是要啟動缺省的系統(tǒng)核心,初始化缺省的系統(tǒng)環(huán)境。這些缺省的信息放置在./etc/default/boot文件中。其常用的參數(shù)如下:
AUTOBOOT=Y(jié)es 或NO 如果AUTOBOOT=Yes,Boot在出現(xiàn)提示符“:”后,沒有任何輸入,在TIMEOUT所定義的時間后,自動裝載由DEFBOOTSTR所定義的Unix核心。缺省時,AUTOBOOT=No。
TIMEOUT=秒數(shù) 系統(tǒng)在出現(xiàn)提示符后沒有人為干預(yù),系統(tǒng)應(yīng)等待多少秒后,系統(tǒng)作為回車輸入。缺省時,TIMEOUT=60。
DEFBOOTSTR=standalone參數(shù)表 Standalone為可獨立運行的程序。定義系統(tǒng)缺省引導(dǎo)的核心名稱。
RONLYROOT=Y(jié)es 或No RONLYROOT=Yes,根文件系統(tǒng)安裝為只讀狀態(tài)。缺省為No。
SYSTTY=0 或 1 若為0,控制臺位于主顯示適配器上。若為1,則在COM1上。缺省在主顯示適配器上。
SERIAL=參數(shù)1,參數(shù)2,… 定義主控臺的通訊參數(shù)。例:SERIAL=9600,8,1,N 端口通訊波特率為9600,字節(jié)寬度為8位,停止位為1位,非校驗。
另外,與INIT共用的參數(shù)有:
MAPKEY、PANICBOOT、MULTUSER、SLEEPTIME、SPAWN_INTERVAL、 SPAWN_LIMIT、 INHIBIT、DEFAULT_LEVEL等。
核心的自我調(diào)整
Unix核心引導(dǎo)時,Boot可以向核心傳遞參數(shù)。具體用法為:
Sco Unix System V/386
Boot
: unix kernel.name=value
可用參數(shù)有:
kernel.root=device
根文件系統(tǒng)缺省在hd(40)設(shè)備上,通過此項可以定位到其它設(shè)備上。
kernel.swap=device
定義初始交換區(qū),缺省在hd(40)上。
kernel.swplo=s
定義頁面調(diào)度塊在交換區(qū)的位置,缺省的首塊位置始于交換區(qū)的0塊。
kernel.nswap=n
定義頁面調(diào)度塊的大小。此時,頁面調(diào)度塊的實際位置為s至s+n-1。
kernel.auto
使核心能夠自動啟動,不要人工干預(yù)。
kernel.ronly
使根文件系統(tǒng)為只讀狀態(tài)。
kernel.hd=xnamex
定義主硬盤的設(shè)備驅(qū)動程序。
引導(dǎo)過程顯示說明
正確地引導(dǎo)Boot后,系統(tǒng)會提示:
Sco Unix System V/386
Boot
:
說明系統(tǒng)目前在交互式程序Boot的控制下,“:”為其命令行提示符。在該提示符下,就可以輸入內(nèi)部命令、Unix或其它可以獨立運行的程序(standalone)。
--------------------------------------------------------------------------------
Sco-Unix錯誤信息注釋
IO ERR:找不到活動分區(qū)。
CLY OVF:操作系統(tǒng)位于硬盤的1024柱面之外,主引導(dǎo)程序不能夠裝載分區(qū)引導(dǎo)塊。
BAD TBL:在分區(qū)表上標有兩個以上的活動分區(qū)。
NO OS:沒有活動分區(qū)或活動分區(qū)引導(dǎo)塊不能裝載運行。
hdboot0引導(dǎo)程序錯誤信息?
cannot open:找不到/boot。
Bad param:/boot 參數(shù)出錯。
stage 1 boot failure:/boot找不到或文件出錯,需用系統(tǒng)盤啟動機器。
hdboot1引導(dǎo)程序錯誤信息?
bad magic number:鍵入的程序不能運行。
can’t open :文件找不到。
COFF files not supported as standalone programs:該程序不能獨立運行,需內(nèi)核支持。
Command line too long - aborting:boot命令行長度為256字節(jié)。
not a Directory:表明某一設(shè)備上沒有特定的文件系統(tǒng),或所查找的目錄實為一文件。
