與Centos6不同Centos7採用的是grub2,而不是grub。在Centos7中,把grub的主要配置文件放在以下三個地方。
/boot/grub2/grub.cfg (/etc/grub2.cfg 是/boot/grub2/grub.cfg 文件的符號鏈接)
/etc/grub.d/
/etc/default/grub
這三個配置文件之間的關係是 grub.cfg 裏通過 ####BEGIN ##### 這種格式按照順序調用 /etc/grub.d 裏面的腳本實現不同的功能。在 grub.d 目錄裏有很多數字開頭的腳本,按從小到大的順序執行。
例如:在 /etc/grub2.cfg 文件裏調用 /etc/grub.d/10_linux 來配置不同內核,在這裏有2個menuentry(菜單入口),所以我們開機的時候會看見兩個默認選項,一個是普通模式,一個是救援模式。
上圖是 /etc/default/grub 文件。和其他的腳本比較起來,非常簡單直觀了。後面會舉例如何修改(需要注意的是,最好不要直接去修改 /etc/grub2.cfg 文件。這個是因爲如果後期升級內核,所有的配置都會失效。如果需要自定義這個文件,我們可以修改對應的腳本或者 /etc/default/grub 文件,然後通過 grub2-mkconfig 重新生成 grub.cfg 文件。)
我們可以修改grub配置文件來進行一些簡單的配置。
例如:1.修改啓動等待時間
Centos7 默認啓動等待時間爲 5 秒,我們可以將其改爲3秒(注意,如果改爲-1,那麼每次啓動需要手動確認纔可以)
修改 /etc/default/grub 文件,如下圖所示:
修改完成後重新編譯生成 grub.cfg 文件
2.對 grub 進行加密
在開機界面時如果輸入e ,會打開編輯窗口,我們可以根據需要進入 rescue, emergency 或者 shell 模式。那麼如何對 grub 進行加密呢?
在 /etc/grub.d/00_header 文件的末尾,加入以下內容
其中,“EOF” 可以自己定義。然後重新定義編碼文件
重啓之後輸入e,就需要用戶和密碼才能進入編輯窗口了。
上面我們設置的是明文密碼。在 /etc/grub.d/00_header 文件內可以知道,那如何設置密文口令呢?
加密密碼由命令 grub2-mkpasswd-pbkdf2 生成
將生成的密碼符,添加到 /etc/grub.d/00_header 文件末尾
3.修改root密碼
重啓系統,按e進入編輯模式
在 linux16 那一行的末尾加上以下信息
rd.break console=tty0
按 ctrl+x 啓動
重新掛載文件系統
改變根目錄
修改root密碼
echo "123456" | passwd --stdin root
在根目錄下創建相關文件(用於重新標記 selinux 環境值)
使用exit(兩次),退出 系統將會重啓。
開機排錯
例如:1.grub 故障:比如把 MBR 的前 446 個字節都覆蓋了
系統重啓後會出現以下故障
開機的時候會自動嘗試從本地,光盤和網絡加載引導程序(如果光盤、網絡等引導失敗則會operatiing system not found);這裏是從我的光盤加載的,因爲本地的引導程序已經沒有了。
選擇 troubleshooting (排錯)
選擇 resure a red hat enterprise linux system
選擇 continue(注意有耐心多等一下,有的時候會卡個 10 秒纔有反應)
按照提示,切換根到本機的系統
使用 fdisk -l 查看啓動分區是哪個,帶星號的就是。
重裝以下 grub2 到啓動分區即可
重啓就OK了
2.如果grub引導沒問題,但我們把內核文件或 grub.cfg
配置文件刪除了該怎麼辦?
重啓之後,直接進入 grub 的救援模式,這表明程序沒有問題,但引導文件找不到了
和前面一樣,光盤啓動,切換到根目錄,掛載以下光盤到光盤掛載點,我們可以順便卡一下 /boot 目錄,發現裏面以及沒有東西了,內核文件和配置文件都沒了
解決方法就是重新安裝內核,rpm 可以強行--force 覆蓋安裝。
裝完內核之後,重新安裝grub2,輸入 grub2-install /dev/sda,庵後重新編譯一下 grub2 就行了
重啓系統即可。
轉載自:http://blog.51cto.com/13554481/2055628