grub詳解

#GRUB詳解

grub基礎概念

前面的開機過程我們知道:按照BIOS定義的硬件設備啟動順序,第一啟動設備中的MBR去讀取boot loader。boot loader功能很強大,要重新自檢硬件設備,開始有一個菜單供用戶選擇系統或者內核版本,還要加載內核將內核解壓到RAM中并執行,最后將控制權移交給內核。屈屈446個字節怎么讓它完成那么多功能。所以Linux將boot loader的程序代碼執行分成兩個階段。

stage1: mbr

stage1_5: mbr之后的扇區,讓stage1中的bootloader能識別stage2所在的分區上的文件系統;

stage2:磁盤分區(/boot/grub/)

看看/boot/grub上都有什么

centos7上面的:

grub詳解

centos6上面的:

grub詳解

grub主程序最重要的任務之一是:識別磁盤,加載內核文件。怎么識別:

(hd0,0)
()括起來,硬盤以hd表示,后面接數字,后面的表示硬盤分區。

第一塊磁盤的第一個分區的boot sector代號就是(hd0,0)
第一塊磁盤的第一個邏輯分區的boot sector代號就是(hd0,4)

grub的配置文件

vim /boot/grub/menu.lst

grub詳解

這里面的root代表的是內核文件放置哪一個分區,而不是根目錄。

kernel后面接的是內核的文件名,文件名后面接的是文件名的參數

啟動時要掛載根目錄,所以root=/dev后面指的是Linux根目錄掛載到哪個分區

配置項:
    default=#: 設定默認啟動的菜單項;落單項(title)編號從0開始;

    timeout=#:指定菜單項等待選項選擇的時長;

    splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜單背景圖片文件路徑;

    hiddenmenu:隱藏菜單;

    password [--md5] STRING: 菜單編輯認證;

    title TITLE:定義菜單項“標題”, 可出現多次;

    root (hd#,#):grub查找stage2及kernel文件所在設備分區;為grub的“根”; 

    kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:啟動的內核

    initrd /PATH/TO/INITRAMFS_FILE: 內核匹配的ramfs文件;

    password [--md5] STRING: 啟動選定的內核或操作系統時進行認證;

安裝grub

如果你的Linux主機原來使用的并非grub,那么就需要來安裝。

grub-install --root-directory=ROOT /dev/DISK

將grub安裝至當前系統的MBR下面
    grub-install /dev/sda

我的/home為獨立的/dev/sda3,如何安裝grub到/dev/sda3
    grub-install --root-directory=/home /dev/sda3
    ll /home/boot/grub/

實例:預計啟動時要直接顯示菜單,且菜單倒數位30秒。另外,在原本的menu。lst當中新增三個啟動菜單,分別說明如下:

1、假設/dev/sda1內含有boot loader,此loader如何取得控制權?
2、如何重新讀取MBR內的loader?
3、利用你原本的系統內核文件,新建一個可強制進入單用戶維護模式的菜單。

grub詳解

配置完成后,我們并不知道/dev/hda1到底有沒有包含grub的主程序,因此我們想要將grub主程序再次安裝到/dev/hda1的boot sector,重新將grub安裝到MBR上面去。

#grub
#root (hd0,0)
#find /grub/stage1
#find /vmlinuz-2.6.28-92.e15
#setup (hd0,0)  (覆蓋原來的boot sector)

grub詳解

這要重啟后就是這樣

grub詳解

原創文章,作者:N24_yezi,如若轉載,請注明出處:http://www.www58058.com/60767

(0)
N24_yeziN24_yezi
上一篇 2016-11-25
下一篇 2016-11-25

相關推薦

  • centos7.3下配置LAMP實現WordPress博客

      在同一臺主機上搭建,首先需要安裝的軟件包Apache 、MariaDB 、PHP 一.安裝LAMP 這里我們采用yum的方式:yum install httpd mariadb-server php php-mysql -y 二.創建虛擬主機 1.虛擬主機配置文件: 2.創建所需的目錄: mkdir /var/www/wordpres…

    2017-08-07
  • shell四劍客之sed

    概述 Stream EDitor, 行編輯器 sed是一種流編輯器,它一次處理一行內容。處理時,把 當前處理的行存儲在臨時緩沖區中,稱為“模式空間”( pattern space),接著用sed命令處理緩沖區中的內容 ,處理完成后,把緩沖區的內容送往屏幕。接著處理下一 行,這樣不斷重復,直到文件末尾。文件內容并沒有改變 ,除非你使用重定向存儲輸出。Sed主要…

    Linux干貨 2016-08-15
  • 9、varnish實現動靜分離、負載均衡、后端服務器健康狀態檢測

    varnish 4.0 版本 varnish實現動靜分離 # vim /etc/varnish/varnish.params VARNISH_LISTEN_PORT=80 –> 修改為80端口 # vim /etc/varnish/default.vcl backend html {    .host = “1…

    Linux干貨 2016-11-13
  • 幾種常見開源協議

    幾種常見的開源協議: 一、GPL詳解: 在自由軟件所使用的各種許可證之中,最為人們注意的也許是通用公開許可證(General Public License,簡稱GPL)。 GPL同其它的自由軟件許可證一樣,許可社會公眾享有:運行、復制軟件的自由,發行傳播軟件的自由,獲得軟件源碼的自由,改進軟件并將自己作出的改進版本向社會發行傳播的自由。 GPL還規定:只要這…

    Linux干貨 2016-07-12
  • 馬哥教育網絡班21期+第15周課程練習

    1、總結sed和awk的詳細用法; sed 流編輯器,處理一行數據到模式空間(p),不匹配條件話就輸出源行,匹配條件且有處理話,就輸出處理過后的行和源行, 匹配條件且沒有處理動作的話,只輸出p空間的行;保持空間(h)用來存放模式空間的臨時處理結果 [root@centos ~]# sed ''&nb…

    Linux干貨 2016-08-30

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-07 23:52

    可以寫寫grub的修復的過程

欧美性久久久久