天天看點

linux程序故障如何修複,33.Linux開機過程及啟動故障修複

一、Linux系統啟動

Linux系統啟動過程如下:

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

initramfs鏡像用來啟動系統,解壓後是一個臨時的根目錄。

linux程式故障如何修複,33.Linux開機過程及啟動故障修複
linux程式故障如何修複,33.Linux開機過程及啟動故障修複

用file檢視initramfs-2.6.32-696.el6.i686.img的檔案類型為gzip壓縮檔案,将它改為gz格式,解壓縮。

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

解壓後得到一個initramfs-2.6.32-696.el6.i686.img,檢視檔案類型為ASCII,繼續解壓。

linux程式故障如何修複,33.Linux開機過程及啟動故障修複
linux程式故障如何修複,33.Linux開機過程及啟動故障修複

開機由/etc/rc.d/rc.sysinit初始化,此檔案主要功能設定有

1.獲得網絡環境

2.挂載裝置

3.開機啟動畫面Plymouth

4.判斷是否啟動SELinux

5.顯示于開機過程中的歡迎畫面

6.初始化硬體

7.使用者自定義子產品的加載

8.配置核心的參數

9.設定主機名

10.同步存儲器

11.裝置映射器及相關的初始化

12.初始化軟體磁盤陣列(RAID)

13.初始化LVM的檔案系統功能

14.檢驗磁盤檔案系統

15.設定磁盤配額(quota)

16.重新以可讀寫模式挂載系統磁盤

17.更新quota(非必要)

18.啟動系統虛拟随機數生成器

19.配置機器(非必要)

20.清除開機過程當中的臨時檔案

21.建立ICE目錄

22.啟動交換分區(swap)

23.将開機資訊寫入/var/log/dmesg檔案中運作級别參數傳入/etc/rc.d/rc這個腳本之後,由這個腳本檔案按照不同的運作級别啟動/etc/rc[0-6].d目錄中的相應的程式

/etc/rc3.d/k??開頭的檔案,會按照數字順序依次關閉

/etc/rc3.d/S??開頭的檔案,會按照數字順序依次啟動

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

二、grub工具及配置檔案

grub允許使用者可以在計算機内同時擁有多個作業系統,并在計算機啟動時選擇希望運作的作業系統。grub中分區含義如表所示

linux程式故障如何修複,33.Linux開機過程及啟動故障修複
linux程式故障如何修複,33.Linux開機過程及啟動故障修複

grub配置檔案/etc/grub/grub.conf

linux程式故障如何修複,33.Linux開機過程及啟動故障修複
linux程式故障如何修複,33.Linux開機過程及啟動故障修複

參數含義default=0   //預設啟動第一個系統

timeout=5  //等待時間,預設是5秒

splashimage=(hd0,0)/grub/splash.xpm.gz  //指定grub啟動時的背景圖像檔案的儲存位置

hiddenmenu  //隐藏菜單

title CentOS 6 (2.6.32-696.el6.i686)   //标題

root (hd0,0)  //指啟動程式的儲存分區

kernel /vmlinuz-2.6.32-696.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS rd_NO_MD rd_LVM_LV=VolGroup/lv_swap crashkernel=auto LANG=zh_CN.UTF-8 rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet   //定義加載時的選項

initrd /initramfs-2.6.32-696.el6.i686.img  //指定initramfs記憶體檔案系統鏡像檔案的所在位置

三、grub進入單使用者模式單使用者模式主要功能

1.忘記root密碼

2.修改系統預設運作級别

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

按e進入指令編輯模式

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

光标移到kernel行,按e進入grub界面

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

在quiet後加1,進入單使用者模式

linux程式故障如何修複,33.Linux開機過程及啟動故障修複
linux程式故障如何修複,33.Linux開機過程及啟動故障修複

按b啟動,進入單使用者模式(可修改root密碼)

linux程式故障如何修複,33.Linux開機過程及啟動故障修複
linux程式故障如何修複,33.Linux開機過程及啟動故障修複

eg:假設啟動檔案/etc/inittab檔案被修改,如何修複?

我将inittab檔案修改,将預設啟動級别改為6,這樣系統啟動時會一直重新開機

linux程式故障如何修複,33.Linux開機過程及啟動故障修複
linux程式故障如何修複,33.Linux開機過程及啟動故障修複

在單使用者模式下修改/etc/inittab檔案。

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

重新開機後成功。

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

ps:後來我用的debian虛拟機忘記了密碼,嘗試後發現它進入單使用者的模式有點不一樣,記錄一下

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

按e進入編輯模式

在這一行quiet之後添加“init=/bin/bash”,可進入單使用者模式

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

進入後發現修改密碼出錯,将根目錄重新挂載後成功修改密碼

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

四、grub加密

為防止外人進入單使用者模式修改root密碼,可将grub進行加密

加密過程如下grub-md5-crypt  //生成一個md5加密的密碼,将其複制

vi /boot/grub/grub.conf  //将密碼粘貼置檔案中,儲存後,重新開機生效

linux程式故障如何修複,33.Linux開機過程及啟動故障修複
linux程式故障如何修複,33.Linux開機過程及啟動故障修複

此時,需要按下grub的密碼才可以進入編輯模式

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

如果密碼輸錯,将不能進行編輯

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

正确輸入密碼,可以看到跟加密前一樣的編輯頁面。

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

五、grub啟動頁面分辨率調整

首先查詢核心是否支援分辨率修改

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

分辨率參數如下

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

如果想将分辨率設為1024*768,則寫入/boot/grub/grub.conf内,vga=791。

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

重新開機後生效

六、CD光牒救援模式修複啟動故障

1.如何進入CD光牒救援模式

插入CD光牒,啟動時快速按F2鍵(或者右鍵點選虛拟機-電源-啟動時進入bios)。

進入bios後,将CD光牒啟動移到第一項(+)。

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

進入CD光牒修複模式,将光标移動到第三行

linux程式故障如何修複,33.Linux開機過程及啟動故障修複
linux程式故障如何修複,33.Linux開機過程及啟動故障修複

一路預設,網絡可不設定

linux程式故障如何修複,33.Linux開機過程及啟動故障修複

2.CD光牒救援模式下可做什麼a、忘記grub加密的密碼,可在救援模式下清除grub密碼

b、重要系統檔案丢失,可在救援模式下找回

a、清除grub密碼步驟chroot /mnt/sysimage   //改變主目錄

locate grub.conf  //查出grub配置檔案的位置,這裡看到在disk1下

vi /disk1/grub/grub.conf  //删除密碼行,重新開機系統

linux程式故障如何修複,33.Linux開機過程及啟動故障修複
linux程式故障如何修複,33.Linux開機過程及啟動故障修複

b、重要檔案找回步驟

eg:将/etc/inittab檔案删除,如何恢複?

linux程式故障如何修複,33.Linux開機過程及啟動故障修複
linux程式故障如何修複,33.Linux開機過程及啟動故障修複

<1>.進入CD光牒救援模式,後,将剛剛拷貝在/tmp下的inittab檔案複制粘貼到/etc下

linux程式故障如何修複,33.Linux開機過程及啟動故障修複
linux程式故障如何修複,33.Linux開機過程及啟動故障修複

<2>.先查詢出inittab檔案的安裝包版本,進入CD光牒救援模式後,将CD光牒挂載,從CD光牒的Packeges目錄裡安裝inittab。

linux程式故障如何修複,33.Linux開機過程及啟動故障修複
linux程式故障如何修複,33.Linux開機過程及啟動故障修複
linux程式故障如何修複,33.Linux開機過程及啟動故障修複