Linux啟動之GRUB詳解

GRUB

在BIOS讀取先關信息之后,接下來就是去第一個可以啟動的設備當中的MBR中讀取Boot loader信息,bootloader具有菜單功能、直接加載內核信息,以及相關控制權限轉交功能。所以說系統的啟動必須有bootloader,然后才能去加載內核
grub:GRand Unified Bootloader
    grub 0.x:grub legacy
    grub 1.x:grub2

grub legacy:
    stage1:MBR
    stage1_5:MBR之后的扇區,讓stage1中的bootloader能識別stage2所在的分區上的文件系統
    stage2:磁盤分區(/boot/grub/)

    配置文件:/boot/grub/grub.conf <-- /etc/grub.conf

    stage2及內核等通常放置于一個基本磁盤分區
        功用:
            (1)提供菜單、并提供交互式接口
                e:編輯模式,用于實現編輯菜單
                c:命令模式,交互式接口
            (2)加載用戶選擇的內核或操作系統
                允許傳遞參數給內核
                可隱藏此菜單
            (3)為菜單提供了保護機制
                為編輯菜單進行認證
                為啟動內核或操作系統進行認證

    grub最重要的一部當屬識別磁盤信息,grub對硬盤的識別是通過以下方式:
    (hd0,0)
        1.硬盤代號以小括號()括起來
        2.硬盤以hd表示,后面會接一組數字,數字之間以逗號隔開
        3.是以搜尋到的順序來作為磁盤的編號,而非根據磁盤的排揎編號
        4.第一個搜索到的磁盤編號為0,第二個為1,以此類推
        5.每塊磁盤上的第一個分區編號為0,第二個分區為1,以此類推
        因此(hd0,0),就表示第一塊磁盤上的第一個分區

配置文件格式

全局配置配置項:
    default=#:設定默認啟動的菜單項,0表示定義的第一個title系統,1表示第二個title系統,以此類推
    timeout=#:表示可供選擇的等待時間,如果超過5秒,則使用默認的啟動條目default定義的
    splashimage=(hd0,0)/grub/splash.xpm.gz
        定義啟動時的背景圖片
    hiddenmenu:隱藏菜單,默認不顯示菜單

~Y`2Q@_SAH%U~Y($7WLW$FF.png

定義各個操作系統配置

title:定義各個操作系統的名稱
root (hd#,#):表示內核文件存放的位置,這里指定的是分區位置,而非根目錄
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:內核的名稱以及一些啟動時的核心參數。由于啟動過程中需要掛載根目錄,因此就需要指定根目錄所在的分區
    rhgb:圖形顯示
    quiet:靜默模式加載內核
    selinux:開啟或關閉selinux
    single:單用戶模式
    ...
initrd /PATH/TO/INITRAMFS_FILE:ramfs文件路徑

YBBIA)[1I0)EA%A[@85X_C0.png

GRUB命令行

help:獲取幫助列表
help KEYWORD:詳細幫助信息
find(hd#,#)/PATH/TO/SOMEFILE:查找文件
root (hd#,#):指定根分區
kernel /PATH/TO/KERNEL_FILE:設定本次啟動時用到的內核文件;額外還可以添加許多內核支持使用的cmdline參數
    例如:init=/path/to/init, selinux=0
initrd /PATH/TO/INITRAMFS_FILE: 設定為選定的內核提供額外文件的ramdisk
boot:引導啟動選定的內核

手動在grub命令行接口啟動系統:

grub> root (hd0,0)
grub> kernel /vmlinuz-VERSION-release ro root=/dev/DEVICE
grub> initrd /initramfs-VERSION-release.img
grub> boot

@HT7V5L2PXN[4Z5S~_87YP0.png

進入單用戶模式

(1)編輯grub菜單(選定要編輯的title,而后使用e命令)

NXS2@%_E]LK2HJ1LPCA6%AF.png

(2)在選定的kernel后附加:1,s,S或single都可以

]W]ZN@FY{RPG0T`{}W3Z26J.png

(3)在kernel所在行鍵入"b"命令即可進入單用戶模式

3DE]JRH~MI)E%%`N)1AR[$R.png

加密機制

GRUB也有自己的保護機制,只有通過認證才能修改grub.conf信息。可以通過以下方式來對grub.conf進行保護:
    1.在第一個title之上添加password --md5 ************ 主要用于保護編輯功能
    2.在某個title內添加password --md5 *********** 主要用戶保護內核
生成密碼的命令:grub-md5-crypt

編輯功能認證

1.提示按p鍵輸入密碼才可編輯菜單

1_T5MTXGE}@LUZTP$9ZG((4.png

2.輸入密碼即可編輯菜單

KCC%S8N7U}X44]DGP{R]9~F.png

內核啟動認證

1.當我們選擇要啟動內核時,提示輸入密碼

V95IQ}4]]V2O1KO0~IU0BFH.png

2.輸入密碼,即可正常啟動系統

_JY%[%MMNO5NHWYZDI~7TLR.png

修復GRUB

如果grub出現了問題導致我們系統無法系統,可進入救援模式進行修復
修復工具:
    方法一:grub-install /dev/DISK
            grub-install --root-directory=ROOT /dev/DISK
    方法二:grub
                grub> root (hd0,0)
                grub> setup (hd0)
                
    如果grub出現了問題,此時我們系統沒有重啟,則可直接使用修復工具修復

$B9Z4~]D3KO$HFHVNCD09UY.png

XZ%)~9OTOK3SC`@}$~U_WDN.png

{C}7Z1Q3)]7SXDMZB}}I5S2.png

HX{T0G(7{7(BF$6D}Z}0Q7K.png

$O`K06PB2ZU_MQP6@DT57[E.png

1{EM~[]2]I3R$)N1YJ]JR0S.png

WH1MTQN3{FNTK[TY3UGR(ZF.png

LR~AB}G5Z4SLXY]E%ZVLSUP.png

8(YZV9S{]GV)IV_RQM0{B[C.png

0AX9]TL$3WM$DXYL6U[BUQ3.png

S0JK)EM~~DF{9G9}_EX6T~W.png

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

(0)
zhai796898zhai796898
上一篇 2016-09-15
下一篇 2016-09-15

相關推薦

  • N25_第十周作業

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) POST –> BootSequence(BIOS) –>Bootloader(MBR) –>Kernel(ramdisk)–>rootfs(readonly)–>switchroot&#821…

    Linux干貨 2017-02-14
  • 集中管理利器-puppet快速入門-中

    集中管理利器-puppet快速入門-中 6.    嘗試啟動master puppet 啟動master puppet,并確認8140端口已被監聽:  #puppet返回成功,但不一定能成功啟動,puppet這個功能希望能改進… 7.    目錄結構 /etc/puppet/  …

    Linux干貨 2015-05-04
  • Linux系統操作練習-2

    1、顯示當前系統上root、fedora或user1用戶的默認shell: 2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello(): 3、使用echo命令輸出一個絕對路徑,使用grep取出基名;擴展:取出路徑名: 擴展: 4、找出ifconfig命令結果中的1-255之間的數字: 5、挑戰題:寫一個…

    2017-11-25
  • 簡述計算機硬件組成,linux系統及簡單命令詳解

    1、計算機的硬件組成 (1)cpu(中央處理器):主要由運算器和控制器組成,它的運算器主要負責程序運算與邏輯判斷,控制器則主要協調組件與各個設備之間工作。 (2)存儲設備:存儲設備又分為外存儲設備,是用來存儲數據信息的設備,它包括,硬盤,u盤,光盤,軟盤。而其中內存(ram)和主板上的rom是屬于內存儲設備,內存是只讀存儲器,它用來暫時記錄數據信息供給cpu…

    2017-07-09
  • 用戶與組

    一、用戶與組的概念 1、Linux多用戶,多任務的特性    Linux是多用戶多任務操作系統,多用戶多任務就是可在系統上建多個用戶,多個用戶可同一時間同一個系統互不影執行的響各自不同的任務。例如linux服務器上有root、www、ftp,四個用戶。同一時間內,root用戶在查看系統日志,管理維護系統,www用戶在修改自己的網頁程序,f…

    Linux干貨 2016-10-25
  • Linux下LVM

    LVM(Logic Volume Management,邏輯卷管理         由多個塊設備(pv,卷)組成一個邏輯卷組(vg),接著在邏輯組上創建邏輯卷(lv),實現在線縮減邏輯卷與邏輯卷組。 實驗:     1、VM虛擬機添加硬盤:…

    Linux干貨 2016-06-09
欧美性久久久久