#############################
#######################
# #
####################### #
# # #
# 當電源被按下 # #
# ##
#######################
當電源Power按下后,計算機開始自檢看什么CPU、內存、顯卡的是否都安上了!如果這里過不去就不用我說了吧!該換什么就換什么,插插拔拔的工作要仔細!現在的主板什么排錯燈、語音提示的不一而足,想當年我們那望聞問切的功夫都不用了,很懷念那小喇叭的嘟嘟聲!
#######################
# #
####################### #
# # #
# 當開始BIOS自檢 # #
# ##
#######################
對我們系統管理員來說BIOS就作了兩件事,一是按照CMOS里的方案配置和驅動底層設備,二是把控制權交給驅動設備(軟驅、硬盤、光驅等)
這里要注意的就是確認CMOS里的方案是否配置正確,驅動設備是否連接正常、是否是我們需要的啟動設備!
#######################
# #
####################### #
# # #
# 當從硬盤開始啟動 # #
# ##
#######################
分區是一門學問,分的不好會事倍工半,具體的我已經在前面的文中提到了,有興趣的可以參看《Linux的分區機構》 http://www.linuxsir.org/bbs/showthre...threadid=82245
MBR就是446個字節的一段存儲空間,里面存儲的是Bootloader,Linux的Bootloader常見的有LILO和Grub,兩者在MBR中存儲的內容是不同的!
LILO:引導程序和kernel和initrd文件的具體Block位置指針
Grub:引導程序、Grub Shell和grub.conf(menu.list)所在分區的設備名
這里要注意的是如果分區表(DPT)損壞,除非你有分區表備份(當然我們是有的:-),否則第一次fdisk的時候記得把個分區的起始和結束位置記下來以備救命之用!如果是MBR損壞,最簡單的辦法是rescue 進入系統然后chroot 到硬盤/ 然后grub-install /dev/XXXY 。如果要刪除linux的MBR信息,用Windows 98的啟動盤進入DOS提示符,fdisk /mbr 把MBR換成Windows的就可以了!
#######################
# #
####################### #
# # #
# 當Bootloader裝入 # #
# ##
#######################
基本上“大壞羊”都已經提到了,這里只作相應的補充。
首先,上面提到了LILO和Grub在裝入MBR的區別,因為裝入內容的不同所以出現問題的情況和性質就有所不同。
LILO:因為存放的是kernel文件的具體Block位置指針,所以vmlinuz-*和initrd-*文件是不可以mv來mv去的(當然除非可以保證Block位置不變的改名不在此范圍!)
Grub:和LILO不同他要的是文件內容,只要你不改變分區順序,并且保證grub.conf(menu.list)文件路徑正確就完全可以找到!只是要注意grub.conf(menu.list)的內容按實際情況編寫!
其次,“大壞羊”在“(三)綜述”中是有問題的!歸結如下:
1.LILO 的lilo.conf(默認在/etc目錄下,如果在其它位置需要lilo -f /dir/file 的方式指明)
image=/boot/vmlinuz-2.4.21-4.EL #kernel所在目錄樹位置
label=linux #標簽,boot:時你要輸入的
root=/dev/sdc1 #根分區所在位置
initrd=/boot/initrd-2.4.21-4.EL.img #initrd所在目錄樹位置
他使用的是當前系統的目錄樹結構,也就是kernel和initrd的邏輯位置,當我們運行lilo -v的時候,LILO會根據lilo.conf文件的定義在MBR中記下kernel和initrd文件的具體Block位置指針,然后lilo.conf文件就沒用了,刪除了也不要緊!當然MBR中還要有/分區的位置指針,解壓掛接initrd的ext2文件系統和讀取/etc/inittab和/etc/rc.d/rc.sysinit 就靠它了!
2.Grub 的 grub.conf(默認也必須在/boot/grub目錄下,除非你自己該grub的源碼)
title linux #標簽
root (hd0,1) #/boot分區所在位置
kernel /vmlinuz-2.4.21-4.EL ro root=LABEL=/ #讀取kernel,掛接/分區
initrd /initrd-2.4.21-4.EL.img #讀取initrd,解壓掛接initrd的ext2文件系統
他使用的是自定義系統的目錄樹結構,換種寫法就更清楚了(可以引導的最少語句)
kernel (hd0,1)/vmlinuz-2.4.21-4.EL ro root=LABEL=/
initrd (hd0,1)/initrd-2.4.21-4.EL.img
可以看出kernel 和 initrd 可以不在同一分區上,vmlinuz-*文件和initrd-*文件的目錄位置是根據分區(hdX,Y)中的目錄位置而定的!如果/boot沒有單獨分區,在分區上看到的就是/boot/vmlinuz-* ,但如果/boot單獨分區,在分區上看到的就是/vmlinuz-*.
關于那句ro root=LABEL=/ ,用來解壓掛接initrd的ext2文件系統和讀取/etc/inittab和/etc/rc.d/rc.sysinit,可以使用卷標(LABEL)或是設備名。
3.Grub的grub.conf文件是必須要有的,否則啟動的時候看到的就是grub:的grub shell狀態。
#######################
# #
####################### #
# # #
# 當kernel被裝入 # #
# ##
#######################
當kernel被裝入的時候一般是沒有問題的,但如果你的grub.conf中使用了錯誤的kernel名或LILO中的kernel位置不對,或是分區掛接就有問題那么kernel這里就會有問題!當然也可能是你的kernel本身有問題例如忘記把ext2文件系統的module編譯入initrd中!
#######################
# #
####################### #
# # #
# 當讀取/etc/inittab # #
# 時 ##
#######################
/etc/inittab是linux系統啟動時讀到的第一個文件,負責確定啟動的level、執行啟動腳本rc.sysinit和運行進程之父init.
其中問題多多,具體的來聽我的課!;-)
###############################
# #
############################### #
# # #
# 當運行/etc/rc.d/rc.sysinit # #
# 時 ##
###############################
/etc/rc.d/rc.sysinit是linux系統啟動的時運行的第一個腳本,負責產生系統運行中需要的環境變量和文件系統。其中mount -a 就是掛接所有在/etc/fstab中表明的文件系統!
#######################
# #
####################### #
# # #
# 當讀取/etc/fstab # #
# 時 ##
#######################
/etc/fstab 由/etc/rc.d/rc.sysinit腳本中的mount -a調用,出錯的機率最大。
#######################
# #
####################### #
# # #
# 當運行/etc/rc.d/rc # #
# 時 ##
#######################
/etc/inittab 中只確定默認運行的level,去運行level中腳本的其實是/etc/rc.d/rc ,/etc/inittab中的level數字只是/etc/rc.d/rc的參數
########################
# #
######################## #
# # #
# 當運行/etc/init.d/* # #
# 時 ##
########################
/etc/rc.d/rcX.d 目錄下的都是連接,除了S99local,其他的都是/etc/init.d/*的軟連接(符號連接)。
#############################
# #
############################# #
# # #
# 當運行/etc/rc.d/rc.local # #
# 時 ##
#############################
/etc/rc.d/rc.local 是系統啟動時最后要運行的腳本,如果的了解Autoexec.bat在DOS中的作用那么就不難理解它了。
#############################
# #
############################# #
# # #
# 啟動結束看到login:提示符 # #
# ##
#############################