1、系統載入bios,並透過bios載入coms,由coms內的設定取得主機的各硬體資訊,然後bios進行自檢
2、bios通過硬體的INT 13中端功能來讀取MBR,由MBR載入bootloader。
1.bootloader可以安裝在檔案系統的根分區和磁碟的MBR上面,在多重系統啟動的環境中,例如windows
和linux共存,這個時候要先裝windows再裝linux,因為windows預設會將bootloader同時裝在MBR和系統的根分區上面,而裝linux的時候我們可以選擇安裝bootloader到MBR也可以選擇不安裝,多重啟動環境中MBR常被不同系統的bootloader所覆蓋
2.bootloader的主要功能:
1.提供選項:用於多重開機
2.載入系統核心
3.轉交其他的bootloader
3.預設情況下windows的bootloader不具有轉交的功能,因此我們先裝windows再裝linux,讓linux的bootloader覆蓋掉windows安裝在MBR上面的bootloader,這樣啟動時我們既可以使用bootloader啟動linux也可以轉交給windows的bootloader用來啟動windows了。
3、bootloader載入核心,核心被解壓縮在記憶體當中,並藉由核心的功能來驅動各硬體裝置。
kernel的主要工作:1.硬體探測2.驅動程式初始化3.以唯讀方式載入根檔案系統4.啟動init進程
kernel啟動時候的所有資訊在/var/log/demesg
boot所在的位置不能是lvm,也不能是raid(軟),最多是raid1,MBR的前446位元組沒有多餘的地方載入其他的驅動程式,否則核心就無法被載入。
1.核心被放置在/boot目錄內,有些裝置的驅動核心以模組化的方式來載入,而這些模組放置在/lib/modules目錄中,所以在裝系統時/lib和/一定要在同一個分區,因為核心是通過掛載根來讀模數塊載入的,開機過程中根目錄是以唯讀方式來掛載的。
2.核心裡面只有基本裝置的驅動程式,其他的則被做成模組放在/lib/modules裡面以實現動態載入,如果/目錄在特殊的裝置上面,例如SATA硬碟,LVM或者RAID上面,核心裡面沒有內建這些裝置的驅動,這時候核心就需要藉助initrd來實現根的掛載了。
3.initrd稱為虛擬檔案系統,裡面內建各種驅動程式,它存在得意義就是為了提供驅動,好讓核心能順利的掛載/目錄,initrd的版本一定是和核心版本一致的。initrd不是總會被使用到的,例如/檔案系統在IDE介面的硬碟上時,核心自己就直接掛載了。
4、啟動init進程,init讀取/etc/inittab設定檔,並且根據設定檔的內容來完成一系列的任務。
inittab檔案的主要內容
id:3:initdefault: 讀取系統啟動的層級
si::sysinit:/etc/rc.d/rc.sysinit 執行系統的初始化指令碼
1,啟用udev和selinux
2,通過讀取/etc/sysct1.conf來設定核心參數
3,設定系統始終
4,載入鍵映射
5,啟用交換分區
6,設定主機名稱
7,檢查根檔案系統,無錯後重新以讀寫方式掛載根檔案系統
8,啟用RAID和LVM裝置
9,啟動磁碟配額
10,掛載其他檔案系統
11,清理過時的檔案鎖和PID檔案
根據響應的啟動層級來執行相應啟動層級的指令碼,主要是在哪些啟動層級要啟動哪些系統服務,/etc/rc.d/rc{0,1,2,3,4,5,6}中以K開頭的都是關閉,數字越小越早關閉,以S開頭的都是開啟的,數字越小啟動越早,這些檔案中的都是連結檔案,連結至/etc/init.d/目錄下,來說明哪些程式是開機啟動的
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
設定好ctrl+alt+del這組功能鍵
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
設定了兩個電源選項
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
為使用者開啟六個虛擬終端,mingetty 會開啟一個虛擬終端並且調用login列印一個登入提示
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
如果啟動層級是第五層級則啟動圖形化案頭
x:5:respawn:/etc/X11/prefdm -nodaemon
5、執行/etc/rc.d/rc.local,這裡面主要是使用者自訂開機啟動程式的置放位置。
開機過程中用到的設定檔
/etc/modprobe.conf
/etc/sysconfig/*
這裡面主要的設定檔有:
authconfig:提供身份認證機制,是否使用/etc/passwd,/etc/shadow來提供身份認證,
/etc/shadow採用何種密碼編譯演算法(預設MD5),是否還有其他的身份認證方式NIS,LDAP等
clock:設定系統的時區
i18n:設定使用的語系
network:設定網路資訊
關於bootloader
由於MBR只有512位元組,分區表佔去64個位元組,還有兩個位元組的校正位,只剩下446個位元組,這446個位元組能夠存放下bootloader嗎?其實bootloader
載入需要兩個階段
第一階段:載入bootloader的最小主程式
第二階段:載入bootloader的設定檔
[root@server30 ~]# ls -l /boot/grub/
total 234
-rw-r--r-- 1 root root 63 Aug 6 17:04 device.map grub的裝置對應檔案
-rw-r--r-- 1 root root 7584 Aug 6 17:04 e2fs_stage1_5 ext2/ext3檔案系統支援
-rw-r--r-- 1 root root 7456 Aug 6 17:04 fat_stage1_5 fat支援
-rw-r--r-- 1 root root 6720 Aug 6 17:04 ffs_stage1_5 ffs支援
-rw------- 1 root root 812 Aug 6 09:07 grub.conf grub設定檔
-rw-r--r-- 1 root root 6720 Aug 6 17:04 iso9660_stage1_5 光碟片支援
-rw-r--r-- 1 root root 8192 Aug 6 17:04 jfs_stage1_5 jfs支援
lrwxrwxrwx 1 root root 11 Aug 6 17:04 menu.lst -> ./grub.conf
-rw-r--r-- 1 root root 6880 Aug 6 17:04 minix_stage1_5 mini檔案系統支援
-rw-r--r-- 1 root root 9248 Aug 6 17:04 reiserfs_stage1_5 reiserfs檔案系統支援
-rw-r--r-- 1 root root 32428 Jan 5 2007 splash.xpm.gz 開機圖片
-rw-r--r-- 1 root root 512 Aug 6 17:04 stage1 第一階段說明
-rw-r--r-- 1 root root 104988 Aug 6 17:04 stage2 第二階段說明
-rw-r--r-- 1 root root 7072 Aug 6 17:04 ufs2_stage1_5 ufs檔案系統支援
-rw-r--r-- 1 root root 6272 Aug 6 17:04 vstafs_stage1_5 vstafs支援
-rw-r--r-- 1 root root 8904 Aug 6 17:04 xfs_stage1_5 xfs支援
關於GRUB,grub.conf
default=0 開機使用哪個title,預設第一個
timeout=5 5s延遲後不選擇title的話預設使用第一個title進系統
splashimage=(hd0,0)/grub/splash.xpm.gz 開機圖片,(640*480 14bit色,要儲存為xpm並且用gzip壓縮一下)
hiddenmenu 隱藏titile
title Red Hat Enterprise Linux Server (2.6.18-164.el5) title名稱
root (hd0,0) 這裡是第一塊磁碟的第一個分區,grub認為所有的磁碟都是hd裝置,並且磁碟號和分區號都從0開始
kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/vol0/root rhgb quiet 核心名稱以及置放位置,root指定根目錄,rhgb顯示為彩色
quiet,對kernel偵測到的資訊不顯示輸出
initrd /initrd-2.6.18-164.el5.img initrd的名稱以及置放位置
grub加密grub-md5-crypt
在hiddenmenu下面寫入
password --md5 密文
誤操作grub損壞
1,進入grub命令模式root(hd0,0);setup (hd0);quite
2,grub-install --root-directory=/(此處的目錄為boot的父目錄)/dev/sda
dd if=/dev/sda of=/backup/mbr bs=512 count=1 備份MRB
dd if=/dev/zero of=/dev/sda bs=512 count=1 銷毀MBR,會刪除磁碟上面的所有分區資訊以及bootloader
本文出自 “成長全記錄” 部落格