一、Linux的啟動(dòng)流程 1. 從BIOS到KERNEL BIOS自檢->MBR(GRUB)->KERNEL->KERNEL自解壓->內(nèi)核初始化->內(nèi)核啟動(dòng) 2. 內(nèi)核啟動(dòng):創(chuàng)建1#進(jìn)程并執(zhí)行,,由它創(chuàng)建若干內(nèi)核線程(kernel thread),,然后裝入并執(zhí)行程序/sbin/init(變成一個(gè)用戶進(jìn)程 )。此后,,init根據(jù)/etc/inittab配置文件來執(zhí)行相應(yīng)的腳本進(jìn)行系統(tǒng)初始化,,如設(shè)置鍵盤、字體,,裝載模塊,,設(shè)置網(wǎng)絡(luò)等 對(duì)于Redhat來說,執(zhí)行的順序?yàn)椋?br> /etc/rc.d/rc.sysinit # 由init執(zhí)行的第一腳本 /etc/rc.d/rc $RUNLEVEL # init執(zhí)行指定運(yùn)行級(jí)別($RUNLEVEL為缺省的運(yùn)行模式)的各腳本,; /etc/rc.d/rc.local #運(yùn)行模式2,、3、5時(shí)會(huì)運(yùn)行的腳本 /sbin/mingetty(或getty) # 等待用戶登錄 /etc/inittab中指定了系統(tǒng)的運(yùn)行級(jí)別(RUNLEVEL),,init根據(jù)運(yùn)行級(jí)別啟動(dòng)相關(guān)的服務(wù)(一些后臺(tái)進(jìn)程),實(shí)現(xiàn)不同的功能,。 RUNLEVEL值為:0-6 0:halt,, 1:單用戶,2:多用戶,,3:多用戶并啟動(dòng)NFS服務(wù) 4:保留,5:運(yùn)行xdm(X window)以圖形界面方式登錄 6:reboot 3、/etc/inittab文件 /etc/inittab的文件內(nèi)容如下: # 設(shè)定系統(tǒng)開機(jī)預(yù)設(shè)的RUNLEVEL: id:3:initdefault: # 開始進(jìn)行RUNLEVEL的服務(wù)啟動(dòng)前,,使用來偵測與初始化系統(tǒng)環(huán)境的設(shè)定文件: si::sysinit:/etc/rc.d/rc.sysinit # 7 個(gè)不同 run level 的,,需要啟動(dòng)的服務(wù)的 scripts 放置路徑: 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] 就重新開機(jī)的設(shè)定項(xiàng)目: ca::ctrlaltdel:/sbin/shutdown -t3 -r now # 本機(jī)端終端機(jī)啟動(dòng)的個(gè)數(shù): 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 Window (RUNLEVEL 5) 環(huán)境下的啟動(dòng) script 設(shè)定項(xiàng)目: x:5:once:/etc/X11/prefdm -nodaemon 這個(gè)文件的語法是這樣的: 標(biāo)識(shí)符:級(jí)別:init 的動(dòng)作行為:指令項(xiàng)目 1. 標(biāo)識(shí)符: 最多四個(gè)字符,代表 init 的主要工作項(xiàng)目,,只是一個(gè)簡單的代表說明,。 2. 級(jí)別: 該項(xiàng)目在哪些 run level 底下進(jìn)行的意思。如果是 35 則代表 runlevel 3 與 5 都會(huì)執(zhí)行。 3. init 的動(dòng)作行為: 主要可以進(jìn)行的動(dòng)作項(xiàng)目意義有: initdefault :代表預(yù)設(shè)的 run level 設(shè)定值,; sysinit :代表系統(tǒng)初始化的動(dòng)作項(xiàng)目,; ctrlaltdel :代表 [ctrl]+[alt]+[del] 三個(gè)按鍵是否可以重新開機(jī)的設(shè)定; wait :代表后面接的指令項(xiàng)目必須要執(zhí)行完畢才能繼續(xù)后面的動(dòng)作,; respawn :代表后面接的,, init 仍會(huì)主動(dòng)的『重新』啟動(dòng)。 更多的設(shè)定項(xiàng)目請(qǐng)參考 man inittab 的說明,。 4. 指令項(xiàng)目: 亦即應(yīng)該可以進(jìn)行的指令,,通常是一些 script 啰。 說明:如根據(jù)上面的文件,,init程序執(zhí)行時(shí)根據(jù)/etc/inittab文件的內(nèi)容,,完成以下功能 (1)獲取RUNLEVEL(文件中的這一行 id:3:initdefault:)為3 (2)執(zhí)行rc.sysinit(文件中的這一行 si::sysinit:/etc/rc.d/rc.sysinit) (3)執(zhí)行/etc/rc.d/rc3.d目錄中的腳本(文件中的這一行 l3:3:wait:/etc/rc.d/rc 3,且因?yàn)楸纠齊UNLEVEL為3) (4)然后設(shè)定是否允許按下 [ctrl]+[alt]+[del] 就重新開機(jī)(文件中的這一行 ca::ctrlaltdel:/sbin/shutdown -t3 -r now ,,當(dāng)然如果不允許,,可把此行注釋掉) (5)啟動(dòng)六個(gè)終端界面tty1-tty6 (6)最后如果我們使用的是 run level 5 ,那么除了這六個(gè)終端機(jī)之外,, init 還會(huì)執(zhí)行 /etc/X11/prefdm -nodaemon 其主要 的功能就是在啟動(dòng) X Window 啦,! 二、GRUB及其配置 1.GRUB(啟動(dòng)引導(dǎo)器程,,低版本的為lilo,,其配置文件為:/etc/lilo.conf)簡介 安裝Linux后GRUB位于硬盤0柱面,0磁道,,1扇區(qū),。是計(jì)算機(jī)啟動(dòng)過程中運(yùn)行的第一個(gè)真正的軟件,通常計(jì)算機(jī)啟動(dòng)時(shí)在通過BIOS自 檢后讀取并運(yùn)行硬盤的主引導(dǎo)扇中的啟動(dòng)引導(dǎo)器程序,,啟動(dòng)引導(dǎo)器再負(fù)責(zé)加載啟動(dòng)硬盤分區(qū)中的操作系統(tǒng),。 2.GRUB的配置文件—grub.conf 可通過/boot/grub/grub.conf配置GRUB,其文件內(nèi)容大致如下: default 0 ----設(shè)置GRUB的默認(rèn)啟動(dòng)項(xiàng) splashimage (hd0,0)/boot/grub/splash.xpm.gz ----用于指定某一個(gè)文件作為啟動(dòng)菜單的背景圖象 timeout 30 ----設(shè)置菜單的啟動(dòng)延時(shí) title=Boot Linux using initrd ----菜單項(xiàng)名稱 root (hd0,0) ----設(shè)置GRUB的根設(shè)備(root)為linux內(nèi)核所在的分區(qū) kernel /boot/bzImage root=/dev/loop0 init=/initdisk.gz ----使用kernel命令后跟linux內(nèi)核文件作為參數(shù),,加載 linux的內(nèi)核文件 initrd /initdisk.gz ----使用initrd命令加載鏡像文件 title=Windows NT ----菜單項(xiàng)名稱 root (hd0,1) ----設(shè)置Windows NT系統(tǒng)所在的分區(qū) makeactive ----設(shè)置根設(shè)備為活動(dòng)分區(qū)(針對(duì)windows不能從非活動(dòng)分區(qū)啟動(dòng)) chainloader +1 ----使用chainloader命令調(diào)用windows分區(qū)的啟動(dòng)引導(dǎo)器引導(dǎo)windows系統(tǒng),+1表示第一個(gè)扇區(qū) 3.忘記根口令時(shí)的設(shè)置 啟動(dòng)計(jì)算機(jī),,在顯示GRUB菜單時(shí)---按e鍵,進(jìn)入編輯---選kernel項(xiàng)---按e鍵---輸入空格+single 回車---按b鍵,重啟系統(tǒng)進(jìn)入單用 戶模式,,輸入以下命令更改口令: #passwd root #reboot 4.為grub設(shè)置口令 為防止用戶在顯示grub菜單時(shí)進(jìn)入編輯,,以單用戶模式啟動(dòng)更改root用戶口令,可給grub設(shè)置口令,。 修改/boot/grub/grub.conf文件,,加上:password 口令 (假設(shè)密碼為123456) (1)設(shè)置全局口令 password 123456 default=1 timeout=10 …… (2)可使用全局口令鎖定啟動(dòng)菜單項(xiàng) 緊跟在title命令之后添加lock命令 password 123456 default=1 timeout=10 splashimage=(hd0,7)/grub/splash.xpm.gz title Red Hat Linux (2.4.20-8) lock root (hd0,7) kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ initrd /initrd-2.4.20-8.img (3)設(shè)置獨(dú)立的口令鎖定啟動(dòng)菜單項(xiàng),在菜單項(xiàng)中使用password命令 可實(shí)現(xiàn)全局口令和菜單項(xiàng)口令的分級(jí)管理,。 password 123456 default=1 timeout=10 splashimage=(hd0,7)/grub/splash.xpm.gz title Red Hat Linux (2.4.20-8) password 67890 root (hd0,7) kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ initrd /initrd-2.4.20-8.img (4)可以使用MD5L加密口令 采用#grub-md5-crypt 或 #grub grub>md5crypt Password: |
|