天天看點

【Linux筆記】GRUB配置與應用,啟動故障分析解決。

一、GRUB啟動位置

GRUB是現今大多數Linux系統采用的自舉程式,這裡先來看一下Linux的程式順序:

執行順序  動作
固件Firmware(CMOS/BIOS)  POST(Pwer On Self Test)加電自檢
自舉程式Bootloader(GRUB)  → 在MBR(Master Boot Loader)讀取Bootloader,載入核心
 ↓
 載入核心 驅動硬體 (核心中較大部份是硬體驅動,可通過啟動過程檢視。)
 啟動init程序 init程序(PID恒為1的初始化程序,是所有程序的父程序。) 
讀取執行配置檔案/etc/inittab

從以上啟動順可以看出,自舉程式是在POST動作之後執行的。

二、GRUB配置檔案

GRUB配置檔案位于/etc/grub/grub.conf處,或者/etc/grub.conf(軟連結):

【Linux筆記】GRUB配置與應用,啟動故障分析解決。

 /etc/grub.conf的配置檔案内容詳細說明,更詳細的可點選這裡:

項目 說明
default 定義預設啟動的作業系統,值為0時,表示啟動第一個title處的系統,依此類推。
timeout 定義預設等待的時間,機關為秒。
splashimage grub啟動界面的圖檔,640*480分辨率,色深為14的圖檔,(hd0,0)表示第1塊硬碟的第1個分區。
hiddenmenu 隐藏菜單。
title 定義啟動菜單項的名稱。
root 定義GRUB的根目錄裝置即核心所在分區。
kernel 定義核心所在位置,ro表示載入的時候核心是隻讀,。
initrd 定義加載鏡像檔案。
【Linux筆記】GRUB配置與應用,啟動故障分析解決。

三、單使用者模式(Single User Mode)

Linux系統的單使用者模式相當于Window的安全模式,其作用是當忘記ROOT密碼、異常斷電或者重新開機可能造成的資料不同步或磁盤扇區錯亂等都需要要進入到單使用者模式進行修複工作,單使用者模式隻有root使用者可以登陸系統,而root使用者登陸系統是不需要密碼的。

如何進入單使用者模式,先看一下在GRUB操作界面下的幾個指令:

e:編輯目前的啟動菜單項

c:進入GRUB的指令行方式

b:啟動目前菜單項

d:删除目前行

esc:傳回GRUB啟動菜單界面,取消對目前菜單項所做的任務修改

【Linux筆記】GRUB配置與應用,啟動故障分析解決。

按e鍵編輯目前啟動菜單項,進入所選菜單項後選擇kernel所在内行,再按e鍵可進入grub指令行,然後在kernel行的指令行末尾處加上相應在的運作級别(1或s為單使用者運作級别),回車後在kernel所在行按b鍵即可以單使用者模式啟動。

【Linux筆記】GRUB配置與應用,啟動故障分析解決。

四、設定GRUB密碼

通過以上操作,似乎任何人隻要在伺服器前都可以更改root使用者密碼,這是極其不安全的,為了安全起見,可以為GRUB本身加上密碼。

設定GRUB密碼有兩種方式:

1、使用GRUB自帶的grub-md5-crypt指令

【Linux筆記】GRUB配置與應用,啟動故障分析解決。

2、在GRUB互動指令行界面中使用md5crypt指令

【Linux筆記】GRUB配置與應用,啟動故障分析解決。

注意,通過以上兩種任何一種方式,并未完成對grub加密,還需要将生成的密鑰更新到/etc/grub.conf檔案(指令:password --md5 密鑰字串,注意指令位置必須在全局環境中,即title指令行之上)。

【Linux筆記】GRUB配置與應用,啟動故障分析解決。

通過上圖方法修改/etc/grub.conf配置檔案後,下次進入GRUB時需要鍵入對應的密鑰才能進入。

五、操作案例

1:root密碼忘記

操作步驟:

①、按照上面操作進入單使用者模式;

②、在所登陸單使用者模式下用“passwd root“即可以修改root密碼;

2:/etc/grub.conf檔案損壞

如果/etc/grub.conf檔案損壞,會導緻系統無法啟動,這時需要進入GRUB的指令行模式,手工重新開機GRUB即可。

①、進入GRUB指令行模式;

②、依次手動鍵入以下指令并回車(cat /etc/grub.conf指令檢視配置檔案)

root    指定啟動分區

kernel  指定核心所在位置

initrd   指定鏡像檔案

3:/etc/inittab檔案丢失

如果/etc/inittab檔案丢失,系統将無法啟動,這種故障隻能通過linux安裝CD光牒進行修複。

①、在BIOS程式内設定以CD光牒啟動;

②、啟動時按F5鍵進入linux的Rescure(修複、挽救)模式;

③、鍵入linux rescure回車進行系統修複;

④、根據提示執行相應操作步驟,然後進入指令提示符,根據提示改變根分區目錄chroot /mnt/sysimage;

⑤、恢複/etc/inittab檔案(通過備份恢複);

⑥、exit指令退出,系統自動重新開機,完成修複;

簡單做人,勤奮做事,永不言棄。

繼續閱讀