grub應用 (Blog 10)

grub1.x 、grub2.x詳解

grub (GRand Unifined Bootloader)
統一引導加載器

bootloader的類型
Windows: ntloader
Linux: LILO, GRUB
LILO設計之初,硬盤很小;沒有考慮到1024柱面之后,磁盤不能識別;
GRUB:用一個精巧的設計,將GRUB程序放在bootloader中,實現諸多功能的配置在一個單獨的分區之上;
grub 0.x: grub leagcy (CentOS 5,6)
grub 1.x: grub2 (CentOS 7)

MBR位于0磁道的0扇區
446Bytes:bootloader:提供一個可供用戶選擇的菜單,將指定的操作系統或不同版本的內核加載至內存中,內核自解壓展開,移交控制權給內核;
64Bytes: 存放分區表
2Bytes: 有效標識符:55AA表示有效;

grub是取代早期bootloader,僅在446字節(446個字符)中要實現的功能很薄弱;

GRUB工作流程
stage1: bootloader
stage1_5: MBR后的扇區,提供普通分區的驅動;并將此分區作為grub的根,grub訪問其下的所有文件從/起始;
stage2:找到grub所在的普通分區,根據其配置提供眾多功能;

Mage2Mage3

GRUB功能
提供菜單:編輯操作及輸出一個命令行接口
隱藏菜單
保護機制:加載內核、編輯菜單

GRUB命令行接口
grub> root 指明grub的根分區在哪個磁盤的哪個分區;提供內核、inird及grub配置文件;
grub> kernel /vmlinuz-VERSION-release grub的根提供的內核;即本次要加載的內核;后可接參數;
grub> initrd /initrd-VERSION-release grub的提供的initrd;即提供給內核的驅動,用于加載根文件系統;
grub> boot 引導;

kernel cmdline可以接的參數:
ro root=/paht/to/device 只讀掛載路徑對應的根設備;注意:此處為initrd驅動的根文件系統;
init=/sbin/init 內核關聯根文件系統后,第一個啟動的程序
selinux=0 表示本次啟動不啟動selinux
quiet 不輸出信息

GRUB配置文件
/boot/grub/grub.conf <– /etc/grub.conf
或 /boot/grub2/grub.conf <– /etc/grub2.conf

GRUB配置文件格式
default=0 默認引導第1個菜單
timeout=5 等待用戶選擇的時長;
splashimage=(hd#,#)/PATH/TO/PIC_FILE.xpm.gz 菜單背景圖片;
hiddenmenu 隱藏菜單
password –md5 STRING: 菜單編輯認證;
title STRING 標題,有空格無須對其加引號;
root (hd#,#) grub1_5驅動的文件系統所在分區;#號從0開始編號;
kernel /PATH/TO/VMLINUZ_FILE: grub識別的根下的內核文件;
initrd /PATH/TO/INITRAMDISK_FILE:grub識別的根下的initramfs文件;設定提供根文件系統驅動的路徑;
password –md5 STRING: 啟用內核或操作系統認證;

GRUB相關故障排除

沒有stage1
BIOS不會將其設定為啟動設備;
(1) 安裝bootloader

stage1損壞:
開機黑屏
(1) 光盤救援模式:
(2) 借助于有bootloader的設備,引導系統

沒有stage2或stage2文件損壞:
用grub命令行,指定grub的根分區、分區下的內核及inird文件,即可啟動;并在啟動系統后修復即可;

重裝GRUB
~]# grub-install –root-directory=/PAHT/TO/BOOT /dev/DEVICE
–root-directory= boot目錄所在目錄;即為要安裝grub的目錄;
/dev/DEVICE 給哪個設備安裝Bootloader,不是分區;

修復GRUB
~]# grub
grub> root (hd#,#) grub目錄安裝所在的磁盤及分區;
grub> setup (hd#) grub目錄安裝所在的磁盤;

 

光盤啟動引導補充

Mage4

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/89056

(0)
逆神陽逆神陽
上一篇 2017-11-27 23:19
下一篇 2017-11-28 10:04

相關推薦

  • vim基本總結

    ASCII可以將計算機存儲的0或1轉成我們認識的文字。在Linux中,絕大部分的配置文件都是以ASCII的純文本形態存在。通過文本編輯器,可以實現對這些文本文件的更改。常風的文本編輯器有emacs, pico,nano,joe與vi(vim是vi的升級版)等。那么為會么要學vi呢? l 因為vi是內置編輯器,系統安裝好就有了 l 很多軟件…

    2017-08-05
  • mysql并發控制

    并發控制: 鎖:Lock 1、鎖類型 : 讀鎖:共享鎖,可被多個讀操作共享; 寫鎖:排它鎖,獨占鎖; 2、鎖粒度: 表鎖:在表級別施加鎖,并發性較低; 行鎖:在行級另施加鎖,并發性較高; 3、鎖策略:在鎖粒度及數據安全性之間尋求一種平衡機制; 存儲引擎:級別以及何時施加或釋放鎖由存儲引擎自行決定; MySQL Server:表級別,可自行決定,也允許顯式請求…

    2016-11-18
  • Centos圖形界面和命令界面模式切換

    大家都知道,centos有兩種用戶界面模式,一種是圖形界面,也就是我們常說的Xwindows界面;另一種就是命令界面。有時因為方便需要在圖形模式下安裝一些程序,因圖形界面占用的內存等資源較大,影響系統的運行,安裝完后需要把系統切換到命令模式下運行,下面就兩種模式如何進行切換做一下說明。 CentOS的啟動模式共分為7級,分別是: 0-  停機 1-…

    系統運維 2015-07-19
  • Linux源碼包安裝詳解

    安裝源碼包 安裝一個源碼包,是需要我們自己把源代碼編譯成二進制的可執行文件。如果你讀得懂這些源代碼,那么你就可以去修改這些源代碼自定義功能,然后再去編譯成你想要的。使用源碼包的好處除了可以自定義修改源代碼外還可以定制相關的功能,因為源碼包在編譯的時候是可以附加額外的選項的。 源碼包的編譯用到了linux系統里的編譯器,常見的源碼包一般都是用C語言開發的,這也…

    Linux干貨 2016-09-06
  • keepalived +LVS DR 雙主互備模型實驗

    keepalived +LVS DR 雙主互備模型實驗  實驗環境介紹     操作系統:DR:centos 7.2 兩個節點,都安裝keepalived             &nbsp…

    Linux干貨 2016-03-09
  • lvm的基本使用

    lvm的創建、擴展、遷移以及邏輯卷快照的使用

    2017-12-08

評論列表(1條)

  • miracler
    miracler 2017-11-30 20:14

    原來這里還有道友!

欧美性久久久久