grub啟動引導程序配置及命令行接口詳解


  Grub(GRand Unified Bootloader),統一資源引導器,它的工作是提供一個菜單,允許用戶選擇要啟動的系統或不同的內核版本;把用戶選定的內核裝載到RAM中的特定空間中,然后解壓、展開,而后把系統控制權移交給內核。

  Grub目前有兩個版本:

      1、GRUB 0.X:Grub Legacy(CentOS5、6,version 0.97);

      2、GRUB 1.X:Grub2(CentOS7,version 1.96)。

Grub詳解(Grub Legacy,CentOS6為例):

  1、Grub程序主要由3部分組成:

    stage1:MBR(0柱面 0磁道 1扇區)中

    stage1_5:MBR隨后的扇區

    stage2:讀取grub.conf配置文件,並實現引導功能的擴展

  釋義:MBR只有512bytes的空間,給Bootloader的空間很小只有446bytes,因此Grub程序分為三段來進行:

          "stage 1" 被裝入磁盤的MBR中;

          特殊的"stage 1_5"被裝入MBR隨后的扇區,它能夠識別內核和"stage 2"所在分區的文件系統格式並幫助引導"stage 2";

          "stage 2"位於文件系統上;

      stage 2程序和配置文件grub.conf可以與內核文件處於不同的分區上(但必須位於同一磁盤),只要"stage 1.5"能夠驅動它們各自所在的分區。

      在linux中,與啟動相關的文件(grub目錄、vmlinuz、initramfs)均位於boot目錄下:

      

  2、Grub的配置文件:/boot/grub/grub.conf

   注意:必須確保grub目錄、vmlinuz等在同一個目錄;此外它創建了一個鏈接文件/etc/grub.conf 用於指向此配置文件,保證用戶使用配置文件的一致性。

        default=#:設定默認啟動的菜單項,編號從0開始

        timeout=#:等待菜單項選項的時長,超時自動啟動系統

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

        hiddenmenu:隱藏菜單

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

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

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

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

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

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

   示例:

   1)利用grub-md5-crypt生成密碼

   

   2)修改/boot/grub/grub.conf配置文件

   

   3)效果

   

  3、Grub的功能:

    1)提供菜單,並提供交互式接口:

        e:編輯模式,用於編輯菜單;

        c:命令模式,交互式接口;

    2)加載用戶選擇的內核或操作系統:

        允許傳遞參數給內核;

        可隱藏此菜單;

    3)為菜單提供了保護機制:

        為編輯菜單進行認證;

        為啟用內核或操作系統進行認證。

  4、Grub的編輯模式和命令行模式:

    1)開機按任意鍵進入菜單界面:

             

    2)按c鍵進入編輯界面:

    

    3)按e鍵進入命令行界面:

    

    4)grub的命令行命令:

          help:獲取幫助列表

          help KEYWORD:詳細幫助信息

          find /FILENAME:查找文件所在的磁盤分區

          root (hd#,#):指定boot所在分區

          kernel /KERNEL_FILE:設定本次啟動時用到的內核文件;額外還可以添加許多內核支持使用的cmdline參數,如:selinux=0,init=/path/to/init

          initrd /INITRAMFS_FILE:設定為選定的內核提供額外文件的ramfs

          boot:引導啟動選定的內核、

    注意,grub識別到的磁盤(hd#, #),例如(hd0, 0),表示第1塊磁盤,第1個分區。

    示例,通過命令行啟動系統:

      

    5)grub的編輯命令:

      b鍵:表示boot,啟動;

      e鍵:表示edit,編輯選中的項:

            o鍵:在選中行的下一行添加一行

            O鍵:在選中行的上一行添加一行

            d鍵:刪除選中的行

            Esc鍵:退出編輯界面

    示例,進入單用戶模式:

      

      

      

      

  5、安裝Grub的方法

    方法1:

    grub-install [--root-directory=DIR] DEVICE

      DEVICE:針對哪個磁盤安裝

      --root-directory=DIR:指定grub映像文件(主要是“stage 2”)的存放位置,默認為當前系統根目錄。

    grub-install會在指定的目錄下創建boot/grub/的層級目錄,並將生成的“stage 2”置於DIR/boot/grub/下。因為內核vmlinuz-xxxx與虛擬文件系統initramfs通常位於boot目錄下,故一般將DIR指定為boot目錄的父目錄即可。

    示例:

    

    方法2:

      輸入grub命令進入grub命令行

        root (hd0,0):相當於上面的--root-directory=DIR

        setup (hd0):為哪個磁盤安裝

        quit:退出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM