這章簡單描述下系統的啟動流程,主要以破環修復實驗為主:
系統啟動基本過程:
Linux系統啟動過程大致按照如下步驟進行(這是一個簡述):
第一階段:BIOS啟動引導階段;
在該過程中實現硬件的初始化以及查找啟動介質;
從MBR中裝載啟動引導管理器(GRUB)并運行該啟動引導管理
第二階段:GRUB啟動引導階段;
裝載stage1
裝載stage1.5
裝載stage2
讀取/boot/grub.conf文件并顯示啟動菜單;
裝載所選的kernel和initrd文件到內存中
第三階段:內核階段:
運行內核啟動參數;
解壓initrd文件并掛載initd文件系統,裝載必須的驅動;
掛載根文件系統
第四階段:Sys V init初始化階段:
啟動/sbin/init程序;
運行rc.sysinit腳本,設置系統環境,啟動swap分區,檢查和掛載文件系統;
讀取/etc/inittab文件,運行在/et/rc.d/rc(N).d中定義的不同運行級別的服務初始化腳本;
打開字符終端1-6號控制臺/打開圖形顯示管理的7號控制臺
同時在上述過程中各階段所需要讀取的文件和操作的對象:
BIOS啟動引導階段 GRUB啟動引導階段 內核階段 /init/sysinit階段
None /boot/grub/grub.conf /boot/vmlinuz-<version> /etc/rc.d/rc.sysinit
/boot/grub/stage1_5 /boot/initrd-<version> /etc/inittab
/boot/grub/stage2 /etc/rc.d/rc<#>.d
/etc/rc.d/init.d/*
步驟:1、開機啟動讀秒后按esc鍵,進入GUN GRUB 窗口,按a進行內核參數修改。
2、chkconfig –list testsrv 查看服務所有模式下的啟動狀態
步驟:1、開機進入救援模式,按下面步驟,打開一個shell。
2、按照下圖,進行操作,
3 、exit,退出重啟.
重啟時的界面如下圖:
d、如果 password –encrypted 生成的加密口令,放在 title這一行的下面,則變成開機啟動 時的密碼;
輸入對應密碼才能啟動。
實驗五:/etc/grub/grub.conf文件里,initrd 與kernel這兩行的順序不能顛倒,如果順序反了,如何修復?
啟動時報錯的界面如下圖:
1、重啟,按e進入編輯命令模式
2、 啟動完成后,再 修改/boot/grub/grub.conf文件;
實驗六: 刪除/etc/fstab 和/boot ,并恢復?重啟后界面如下圖:
步驟:1、重啟,在讀進度條界面快速按esc鍵,選擇下圖中救援模式:
2,下圖發現,找不到系統的分區了,要先修復/etc/fsatb,讓系統識別分區。
3、通過下圖中的操作找出/boot和”/”分區,并修復/etc/fstab文件:
4、修復完/etc/fstab 文件,保存退出,重新啟動,再次進入救援模式,可以看到,這時候,系統找到根分區了,并且被掛載到/mnt/sysimage下;
可以進行chroot /mnt/sysimage 切根操作了。如下圖:
5、先切換根,掛載光盤,發現光盤下有vmlinuz內核文件,移動內核文件到/boot,操作如下圖:
#grub-install /dev/sda
8、/boot/grub下缺少grub.conf文件。手動編輯一下,下圖中注釋可以不寫。
注意:如果上述實驗步驟8,grub.conf文件寫錯了,重啟時會出現下圖的界面:
這里也可以直接寫grub.conf文件,然后重新加載boot,就不需要再重新進救援模式重新修改grub.conf文件了;節省大量時間。
等機器重啟后,再把grub.conf文件修改好。操作如下圖:
原創文章,作者:shenjialong,如若轉載,請注明出處:http://www.www58058.com/79676