當使用安裝程序Sysinstall完成了系統安裝和基本配置任務之后,系統需要重新啟動。在系統從硬盤上重
新啟動之后,一個完好的FreeBSD系統就展現在使用者面前了。系統將出現登錄提示,允許使用者登錄進入FreeB
SD操作系統。
Unix是一種多用戶、多任務的操作系統,它支持并能管理多個用戶使用系統,其用戶分為普通用戶和管理員兩類
。普通用戶只能使用系統提供的具體應用功能,而只有管理員才能更改系統的配置、維護整個系統。FreeBSD系統的擁
有者不但是僅僅使用系統的普通用戶,同樣也是整個系統的管理員,要負責系統維護的任務。
Unix下系統維護的任務具有相當大的伸縮性,按照不同的系統的要求,可以非常簡單,僅僅使用系統初始提供的
管理策略即可,也能是一種相當復雜的任務,對訪問的客戶進行更嚴格、更全面的限制。無論如何,FreeBSD的使用和
維護都是一件富有挑戰性的任務。
不象個人計算機上的其他几種操作系統,FreeBSD被設計為一種可以永久運行的系統,正常情況下不需要也不
應該頻繁的啟動和關閉。然而,FreeBSD的啟動過程從計算機系統自檢到載入FreeBSD系統內核,其中經過了几
個不同的階段,這些階段的操作都涉及到系統維護,因此相當重要,需要系統管理員加以了解。同樣,由于FreeBSD是
一個多用戶系統,在后台運行著相當多對系統而言非常重要的進程,系統關閉時就需要首先關閉這些進程,因而FreeBS
D的關閉過程也必須按照一定的要求來操作,否則就會對系統造成破壞。
- 系統啟動過程
普通個人計算機的啟動過程相當簡單,首先是系統BIOS自檢,自檢之后將載入啟動硬盤上的主引導區,由主引導
區上的引導程序再載入具體操作系統。標准的主引導區將按照啟動分區的設置,引導該分區上的操作系統,FreeBSD也
可以使用這種方式。但更常見的引導FreeBSD的方式,是使用FreeBSD Boot Manager,來管理和
負責引導包括FreeBSD在內的多個操作系統。
按照計算機啟動硬盤第一個扇區的系統主引導程序的不同,計算機有不同的啟動過程。FreeBSD最常使用
FreeBSD Boot Manager,它可以讓使用者在系統中共存的不同操作系統進行選擇。
如果使用了Boot Manager用于多操作系統的引導,則系統自檢后首先進入Boot Manager的
引導界面。
F1: FreeBSD
F2: Dos
F5: Disk 2
Default F1
Boot Manager使用計算機的功能鍵來啟動各個分區的操作系統,使用F1將啟動第一個分區wd0s1
上的操作系統,F2啟動wd0s2,F3對應wd0s3,等等,F5啟動另一個硬盤上主引導區的引導程序。這樣可以在
第二個磁盤上也安裝Boot Manager,由它來引導自己硬盤上各分區的操作系統。只有在分區的確存在的情況下,
Boot Manager才顯示相應的啟動熱鍵,并從分區的類型判斷它是那種操作系統。在使用者選擇了某個選項,或者
經過了一定的延遲時間之后,Boot Manager就啟動FreeBSD系統。
使用Boot Manager作多操作系統引導需要注意的是:一旦在這台計算機中重新安裝Dos/Windo
ws系統,則主引導區就被重寫,需要重新安裝BootManager。
當不想使用Boot Manager引導系統,而打算回到標准引導區的方式(不再需要引導多操作系統)時,可
以使用DOS程序fdisk.exe來恢復主引導區的內容。也可以使用FreeBSD的sysinstall程序來重
新安裝標准主引導區。
A:> fdisk /mbr
但是,Boot Manager仍然使用BIOS調用來獲得分區上的數據,由于BIOS只能訪問硬盤1024
柱面內的分區,因此FreeBSD的引導分區必須在1024柱面以內才能正常啟動系統。新的BIOS中使用LBA等方
式對硬盤數據進行了重新映射,來避免這個問題。然而就需注意不能隨意更改BIOS中的硬盤映射方式不可隨便更改,必須
與硬盤進行分區時的設置一致,否則BIOS就不能正確找到以前設置的分區。
無論是標准引導程序,還是FreeBSD Boot Manager,都將載入FreeBSD基本分區的第一
個扇區,這里放置著FreeBSD的啟動程序Boot Block,它將載入FreeBSD文件系統中的boot l
oader程序,不需進行任何操作,boot loader程序將引導系統內核來啟動系統。但在這個過程中也可以中斷
自動啟動進程,進入交互模式,從而更改啟動內核、進行硬件設置、甚至提供了選擇不同的boot loader程序的機
會。
FreeBSD 3.1-release中更新了系統的boot loader程序,這個新boot loa
der程序與FreeBSD 2.2.x和3.0版本使用的boot loader不同,升級的原因之一是老版本的b
oot loader不能啟動ELF格式的內核,此外新版本的boot loader功能更強大。因此老版本的boo
t loader的行為與下面描述的不同。
通常沒有必要改變Boot Loader,如果要更改使用的Boot Loader程序,就要在啟動屏幕最先
印出一個簡單的斜線 “/” 時,在几秒時間內按下空格鍵,否則啟動過程將略過這個步驟,直接進入下一步。如果按下空
格,則系統將出現boot提示符。
/
>>FreeBSD/i386 BOOT
Default: 0:wd(0,a)/boot/loader
boot:
此時輸入 “?” ,可以列出對應的硬盤分區中根目錄下的所有文件。這時可以在boot提示符下輸入另一個b
oot loader程序,啟動該boot loader程序,也可以直接輸入某個內核文件名,從而略過boot l
oader而直接啟動相應的內核。然而,通過boot loader能完成更多的任務,包括進行硬件資源設置。
此時也可以列出、選擇不同的硬盤分區上的不同啟動文件,正如之前的提示信息,0:wd(0,a)用于一個包含
FreeBSD根文件系統的子分區,其中第一個0為硬盤控制器的序號,而wd(0,a)為硬盤分區wd0a,根據硬盤
分區情況,這對應第一個UFS分區上的根文件系統。而后面可以跟隨目錄和文件名,以及可以使用?來列出目錄下的文件,
當然選擇啟動內核的任務可以在boot loader內部中更好的完成,一般情況下不需要進入這個階段改變boot
loader程序。
此后系統將進入Boot Loader程序中,由Boot Loader將內核/kernel和內核模塊載入
內存,接著Boot Loader就等待10秒間隔,在這個時間內可以讓用戶按下了除回車之外的其他任意鍵,進入Bo
ot Loader的交互模式。
/
BTX loader 1.00 BTX version is 1.01
Console: internal video/keyboard
BIOS drive A: is disk0
BIOS drive C: is disk1
BIOS drive D: is disk2
FreeBSD/i386 bootstrap loader, Revision 0.5 638/64512kB
(wb@email.online.ha.cn, Web Mar 3 02:54:38 CST 1999)
/kernel text=0x1697f2 data=0x168d0+0x1f17c syms=[0x4+0x1eb70+0x4+0x2014a]
/modules/splash_bmp.ko text=0x1025 data=0xc+0x634 syms=[0x4+0x400+0x4+0x213]
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 8 seconds...
Type ‘?’ for a list of commands, ‘help’ for more detiled help.
disk1s3a:>
新的Boot Loader使用BIOS的硬盤表示順序,沒有區分SCSI硬盤da和IDE硬盤wd,而直接
使用disk0、disk1、disk2按BIOS中的順序表示硬盤。本例中的提示符為disk1s3a,由于本例中
使用的硬盤為IDE接口,因此這實際就代表wd1s3a分區。
在boot loader提示符下有很多相當有用的命令,例如使用ls命令可以列出disk1s3a中各級目
錄下的文件,使用lsdev可以列出當前內核中的設備驅動,使用lsmod可以列出已經載入的內核模塊,使用load
可以載入另外的需要載入的內核模塊,使用autoboot可以在給定時間之后啟動系統,而使用boot命令可以立即啟
動系統內核,或者使用pnpscan命令掃描當前系統中的PNP卡。一般boot命令比較常用,例如使用 “boot
-s” 命令,將啟動系統并進入單用戶模式,在這個模式下可以執行系統維護任務。通常由于只有可以信任的管理人員才能
訪問控制台,因此缺省狀況下進入單用戶模式不需要使用口令認証。
在boot命令之后使用其他內核名字作參數,用來使用缺省內核/kernel之外的其他內核來啟動系統。每個
FreeBSD系統都至少具備一個備用的通用內核kernel.GENERIC,在當前系統內核被破壞的情況下可以使
用它來啟動系統。因此在引導程序被破壞而系統完好的情況下(通常是由于重新安裝了Windows的原因),可以使用安
裝軟盤或光盤啟動,進入Boot Loader的交互模式,選擇硬盤上的內核啟動,然后進行修復而不需要重新安裝。當
在boot loader提示符下使用 “boot -c” 命令,在其后的啟動過程中將進入UserConfig中
,用于對內核中的硬件資源參數進行配置。與系統初始安裝時進入UserConfig的方式不同,這將直接進入User
Config的命令行模式,內核將出現UserConfig的提示符:
config>
此時可以使用help命令查詢可以使用的UserConfig命令,如果輸入visual指令,表示使用vi
sual方式配置系統硬件,則會進入UserConfig的全屏幕界面,否則就使用這個命令行方式進行硬件參數配置。
命令行模式中可以使用ls命令列出不同的設備驅動程序,使用irq、drq、iomem等命令查看硬件的相應資源設置
。
命令行模式比全屏幕界面更強大的地方是能夠對ISA PNP設備進行控制,這是通過pnp命令進行的。當IS
A PNP卡由BIOS分配資源的時候,內核能以非PNP的驅動去探測它,這也是為何要在BIOS中關閉相關的PNP
選項的原因。但如果在編譯內核支持了PNP控制器,也可以在BIOS中設置為由OS(即FreeBSD)來管理硬件資
源,這就需要使用pnp命令手工為ISA PNP硬件分配資源,以便非PNP的驅動能檢測并正確設置資源。但是手工設
置要求對PNP卡硬件相當了解,否則還是讓BIOS來完成資源的分配更為適合。
當退出UserConfig之后,或者在boot loader的交互模式下執行了boot命令,或者在bo
ot loader提示進入交互模式的時候10秒鐘內沒有任何輸入,則boot loader就會載入內核,并自動將
控制權交給已經載入的FreeBSD內核程序,由內核探測計算機中的各個硬件,并將探測結果打印到屏幕上。使用鍵盤右
上角的Pause鍵可以暫停屏幕輸出,并可以使用Page Up,Page Down鍵上下滾動屏幕上的信息進行查看
,最后再使用一次Pause鍵將打開屏幕輸出,繼續系統啟動過程。內核的啟動信息也可以在登錄系統之后使用dmesg
命令查看。
FreeBSD 3.0以前的FreeBSD版本使用的Boot Loader為一個較老的版本,因此提示信
息與命令輸入方式也略有不同,但基本實現同樣的功能,舊Boot Loader程序的提示符直接就為 “boot:”
,可以直接輸入 “-s” 、 “-c” 等參數進入單用戶模式或進入UserConfig。啟動時boot loa
der都會在屏幕上打印提示信息,解釋了基本用法和具體參數對應的含義。
FreeBSD 3.1之后可以設定系統啟動標志圖象(如同Windows9x的啟動標志),那么內核的探測
信息就不會顯示在屏幕上,而是被這個啟動圖象遮住。