一、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(軟鏈接):
/etc/grub.conf的配置文件內容詳細說明,更詳細的可點擊這里:
項目 | 說明 |
default | 定義缺省啟動的操作系統,值為0時,表示啟動第一個title處的系統,依此類推。 |
timeout | 定義缺省等待的時間,單位為秒。 |
splashimage | grub啟動界面的圖片,640*480分辨率,色深為14的圖片,(hd0,0)表示第1塊硬盤的第1個分區。 |
hiddenmenu | 隱藏菜單。 |
title | 定義啟動菜單項的名稱。 |
root | 定義GRUB的根目錄設備即內核所在分區。 |
kernel | 定義內核所在位置,ro表示載入的時候內核是只讀,。 |
initrd | 定義加載鏡像文件。 |
三、單用戶模式(Single User Mode)
Linux系統的單用戶模式相當於Window的安全模式,其作用是當忘記ROOT密碼、異常斷電或者重啟可能造成的數據不同步或磁盤扇區錯亂等都需要要進入到單用戶模式進行修復工作,單用戶模式只有root用戶可以登陸系統,而root用戶登陸系統是不需要密碼的。
如何進入單用戶模式,先看一下在GRUB操作界面下的幾個命令:
e:編輯當前的啟動菜單項
c:進入GRUB的命令行方式
b:啟動當前菜單項
d:刪除當前行
esc:返回GRUB啟動菜單界面,取消對當前菜單項所做的任務修改
按e鍵編輯當前啟動菜單項,進入所選菜單項后選擇kernel所在內行,再按e鍵可進入grub命令行,然后在kernel行的命令行末尾處加上相應在的運行級別(1或s為單用戶運行級別),回車后在kernel所在行按b鍵即可以單用戶模式啟動。
四、設置GRUB密碼
通過以上操作,似乎任何人只要在服務器前都可以更改root用戶密碼,這是極其不安全的,為了安全起見,可以為GRUB本身加上密碼。
設置GRUB密碼有兩種方式:
1、使用GRUB自帶的grub-md5-crypt命令
2、在GRUB交互命令行界面中使用md5crypt命令
注意,通過以上兩種任何一種方式,並未完成對grub加密,還需要將生成的密鑰更新到/etc/grub.conf文件(命令:password --md5 密鑰字串,注意命令位置必須在全局環境中,即title命令行之上)。
通過上圖方法修改/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安裝光盤進行修復。
①、在BIOS程序內設置以光盤啟動;
②、啟動時按F5鍵進入linux的Rescure(修復、挽救)模式;
③、鍵入linux rescure回車進行系統修復;
④、根據提示執行相應操作步驟,然后進入命令提示符,根據提示改變根分區目錄chroot /mnt/sysimage;
⑤、恢復/etc/inittab文件(通過備份恢復);
⑥、exit命令退出,系統自動重新引導,完成修復;