學習了Linux的啟動流程,為了加深理解,今天做了如下的實驗:刪除掉Linux系統在啟動過程中比較重要的幾個文件,查看啟動時出現的現象。加深對知識的理解。學習機器因為某些文件的缺失的修復方式。
一、刪除grub.conf
grnb.conf文件為系統在啟動的時候,引導設備找到找到/boot后加載相應的內核和找到為加載根文件系統做準備的initramfs文件的。刪除后無法引導系統找到內核。
刪除文件后,系統啟動是就停在這個畫面,無法引導進入載入內核。這個時候可以通過在這個界面輸入相應的命令;即grub.conf文件的相關配置進入下面的引導。前提你要記得配置的相關信息,如果不記得就需要其他的方式啟動,在這里我們先就假裝記得,用比較簡單方式修復啟動。
上面輸入的四條命令就是grub.conf文件內的內容,讓機器按照輸入的命令進行系統的引導從而啟動,這種方式在誤刪該文件后可以很便捷的讓系統啟動,啟動后重新編輯grub.conf文件后就能恢復正常。前提是對系統的分區比較熟悉,能夠記得/boot和/的掛載情況。
二、在沒有/boot和/etc/fstab的情況下恢復系統
破壞之前要看清系統的內核版本以及系統的版本,準備一張相應版本的光盤,破壞后需要用光盤的救援模式進行恢復。當前系統的信息如下:
上圖為系統磁盤的分區情況。
刪除后啟動將無法進行:
由于把/boot目錄下的所有文件都刪除了,所以無法用上述的方式恢復,這里用光盤的救援模式恢復。
選擇第三項救援模式后,在提示選擇語種和鍵盤模式后,跳過網絡設置后進入如下的畫面,做出相應的選擇:
由于剛才將系統設備掛載配置文件/etc/fstab刪除了,無法識別到Linux的分區。
選擇第一個選項,進入救援環境:
由于在救援模式下無法識別高級磁盤設備,而/則是邏輯卷設備,所以通過命令“vgchange -ay”來激活邏輯卷設備(如果是CentOS5,要使用命令lvm scan,然后在使用lvm vgchange -ay才能激活),然后就能查看快設備。通過上面的信息掛載“/”,進入根,重建fstab文件。如下圖:
在掛載“/”的時候一定要注意,掛載的目錄要為“/mnt/sysimage/”,否則掛載后無法使用命令。編輯fstab如下:然后保存重啟。
再次進入救援模式,不同的是能夠識別到要救援的系統:
再次進入shell模式,使用“chroot /mnt/sysimage”切換根,然后掛載光盤,安裝內核,安裝的時候要使用–force強制模式。如圖:
安裝完成后就可以在看見/boot目錄下面有內核和initramfs文件了:
下一步使用命令"grub-install –root-directory= / /dev/sda"(注意:這里后面的路徑不是固定的,要看分區掛載情況,”=“后面跟的是/boot目錄的父目錄,后面的這是所在磁盤。)安裝grub,然后創建編輯grub.conf文件:
保存退出重啟后:
能夠進入grub界面了。默認啟動:
最后成功啟動,修復完成。
原創文章,作者:王更生,如若轉載,請注明出處:http://www.www58058.com/60540