1、grub配置文件簡介shell
grub是一個來自GNU項目的多操做系統啓動程序,可用於在計算機啓動時選擇但願運行的操做系統或操做系統內核。grub由系統安裝程序自動安裝於MBR中,一般其引導主程序位於/boot分區的grub文件夾,配置文件爲grub.conf。ide
grub.conf配置文件各字段說明 |
|
default | 指定默認啓動的內核或OS,值爲數字 |
timeout | 等待用戶選擇要啓動的內核或OS的時長,值爲數字,單位爲秒 |
splashp_w_picpath | 指定使用的背景圖片,路徑開頭要使用相似於(hd0,0)表示哪塊硬盤、硬盤的哪一個分區 |
hiddenmenu | 是否隱藏菜單,有這個字段則表示隱藏菜單,沒有則表示顯示 |
title | 每一個可選系統的名稱 |
root | 表示系統/boot分區所在硬盤的位置,也就是grub所在的位置,(hd0,0)在grub中用hd開頭表示硬盤,並緊跟一個數字作各磁盤設備的標記,從0開始編號,第二個零表示硬盤的第一個分區,0-3爲主分區。 |
kernel | 指定內核文件及傳遞給內核的參數工具 內核文件路徑以/boot爲根路徑;ui ro 表示只讀方式掛載,爲了避免讓設備損壞,以後還要從新以讀寫方式掛載設備;加密 root=/path/to/Device 指定真正的根分區設備,表示把此設備給內核真正的根分區使用spa quiet 內核初始化以靜默模式執行,表示不輸出任何初始化信息操作系統 |
initrd | 此文件爲加載內核的引導工具,一般以cpio歸檔,並使用gzip壓縮,一般以.img做爲文件名後綴 |
password | 給 grub菜單添加密碼,需要指定加密方式例如命令行 password --md5 $1$dnyTb1$VhieitehIKjT4Q3r/h/YT/3d |
2、grub修復blog
當grub錯誤後,一般進不了系統,若是系統尚未關機則能夠手動添加grub.conf配置文件。若是系統已經關機了,則可使用grub命令進入grub命令行模式引導系統。若是grub.conf文件存在,可是grub的其它程序出錯了,則可使用setup命令從新安裝MBR,或者可使用grub-install命令從新安裝grub並添加grub.conf配置文件。
一、使用grub命令引導系統
(1)、首先咱們模擬一個出錯的環境,手動移動grub.conf配置文件,並重啓
(2)、開機後grub由於找不到grub.conf配置文件,於是引導程序會自動進入grub命令行模式。
輸入:help 能夠得到幫助命令
(3)、咱們需在此環境下使用grub手動配置一個臨時的grub.conf文件先讓系統可以正常開機。從配置文件的幾個參數中可知道,咱們要先找到/boot分區所在位置,若是不知道則可使用find命令查找內核文件(文件名一般爲vmlinuz開頭),由於內核文件所在路徑即爲/boot分區。假設咱們不知道/boot分區在哪塊硬盤的哪一個分區,因而咱們從(hd0,0)開始使用find命令試。
按Tab鍵試試能不能自動補全。
文件自動補全了,說明/boot分區就在(hd0,0)中。接下來能夠開始配置其它參數了。
(4)、配置root
(5)、配置kernel,指定內核文件路徑,以只讀方式掛載,指定根分區設備,靜默模式
(6)、配置initrd,指定initrd文件
(7)、配置好後,輸入 boot 就能夠進入系統了,進入系統的第一件事情就是先在/boot/grub/目錄下,建立grub.conf文件。
二、使用grub-install命令從新安裝grub
假如計算機開機連grub命令模式也進不了,怎麼辦呢。這時使用安裝光盤引導系統進入緊急救援模式,使用grub-install命令從新安裝grub而後再配合使用grub命令進入系統添加配置文件。
(1)、使用光盤引導系統,選擇緊急救援模式進入系統。
(2)、根據提示能夠知道,系統根目錄掛載於/mnt/sysp_w_picpath,進入shell環境。
(3)、使用chroot命令切換根目錄
(4)、使用grub-install命令安裝grub
grub-install root-directory=/ /dev/sda
--root-directory參數的值的/boot分區的父目錄,在當前系統下也就是根,/dev/sda表示安裝在第一塊硬盤。
二、使用setup從新安裝MBR
同上使用光盤引導系統,進入救援模式,而且 chroot /mnt/sysp_w_picpath 切換根目錄。
(1)、使用grub命令,進入grub模式
(2)、指定/boot分區
(3)、使用setup命令安裝MBR,而且指定哪塊硬盤。
setup (hd0)
(4)、安裝成功後,進入系統的/boot/grub目錄,手動配置一個grub.conf文件,修復成功。