Linux GRUB legacy

Linux GRUB

Linux GRUB

GRUB簡介

了解grub之前,需要理解linux的啟動流程,如果之前有對linux啟動流程不了解的可以看:http://xinzong.blog.51cto.com/10018904/1757337

GRUB(GRand Unified Bootloader)統一引導加載器,即啟動加載器。centos上的grub分為兩個版本,分別是:
 centos 7默認采用grub2

GRUB legacy(GRUB 0.1一般稱為grub1)
   GRUB 2(grub1.0一般稱為grub2)
   本文主要以grub legacy展開介紹

GRUB 菜單組成

GRUB菜單

介紹菜單之前,先帶大家了解一下grub legacy
grub legacy分為三個階段:

stage 1:mbr
 stage1_5:mbr之后的扇區,作用是讓stage1中的bootloader能識別stage2所在分區上的文件系統
 stage2:磁盤分區()/boot/grub/)

stage2及內核等通常放置于一個基本磁盤分區。
 stage2的功用:

1、提供菜單、并提供交互式接口
   e:編輯模式,用于編輯菜單
   c:命令模式,交互式接口
   2、加載用戶選擇的內核或操作系統
   允許傳遞參數給內核
   可隱藏此菜單
   3、為菜單提供了保護機制
   為編輯菜單進行認證
   未啟用內核或操作系統進行認證

GRUB命令行接口

grub1.png

grub2.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 (hd#,#)
grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE  
grub> initrd /initramfs-VERSION-RELEASE.img
grub> boot

grub3.gif

GRUB配置文件

配置文件:/boot/grub/grub.conf
配置項:

default=#: 設定默認啟動的菜單項;菜單項(title)編號從0開始;
 timeout=#:指定菜單項等待選項選擇的時長;
 splashimage=指明菜單背景圖片路徑(hd#,#)/PATH/TO/XPM_PIC_FILE)
 hiddenmenu:隱藏菜單;
 password [–md5] STRING: 菜單編輯認證;
 title TITLE:定義菜單項“標題”, 可出現多次;

root (hd#,#):grub查找stage2及kernel文件所在設備分區;為grub的“根”;  
   kernel:啟動的內核
   initrd 內核匹配的ramfs文件;
   password [–md5] STRING: 啟動選定的內核或操作系統時進行認證;
   加密密碼可以使用:
   grub-md5-crypt命令

GRUB安裝及修復

  • 安裝修復:grub-install

實例

注意:–root-directory必須指定boot所在的上一級目錄

#mount /dev/sdb1 /mnt/boot
#grub-install --root-directory=/mnt /dev/sdb2
Probing devices to guess BIOS drives. This may take a long time.
/dev/mapper/vg_centos6-lv_root does not have any corresponding BIOS drive.
# ls /mnt/boot/
grub
# ls /mnt/boot/grub/
device.map     ffs_stage1_5      minix_stage1_5     stage2           xfs_stage1_5
e2fs_stage1_5  iso9660_stage1_5  reiserfs_stage1_5  ufs2_stage1_5
fat_stage1_5   jfs_stage1_5      stage1             vstafs_stage1_5
  • 安裝修復:grub命令

# grub
Probing devices to guess BIOS drives. This may take a long time.


   GNU GRUB  version 0.97  (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported.  For the first word, TAB
  lists possible command completions.  Anywhere else TAB lists the possible
  completions of a device/filename.]
grub> root (hd1,0)
root (hd1,0)
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd1)
setup (hd1)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (hd1)"...  27 sectors are embedded.
succeeded
Running "install /grub/stage1 (hd1) (hd1)1+27 p (hd1,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.

GRUB單用戶及救援模式

單用戶模式(密碼破解)

進入單用戶模式:
(1) 編輯grub菜單(選定要編輯的title,而后使用e命令);  
(2) 在選定的kernel后附加
1, s, S或single都可以;
(3) 在kernel所在行,鍵入“b”命令;

grub4.gif

救援模式

grub修復
1、模擬破壞:(破壞前先備份)

dd if=/dev/sda of=/root/mbr.bak count=1 bs=512
dd if=/dev/zero of=/dev/sda count=1 bs=200

2、進入救援模式

grub5.png

1、插入光盤進入救援模式
-方式1:點擊Rescue installed system
方式2:按esc進入命令行
輸入 linux rescue
2、選擇語言,鍵盤類型
3、選擇是否使用語言
4、是否將當前系統的跟掛載至/mnt/sysimage下
Continue:繼續
5、選擇OK # 可以使用chroot /mnt/sysimage
6、選擇shell start shell
7、切換跟,修復grub

# chroot /mnt/sysimage
# grub-install --root-directory=/ /dev/sda
# exit
# reboot

8、重啟前拆除光盤
圖解

grub6.gif

對于grub就寫到這里了,感覺寫的不錯可以給點個贊。 
 作者:Ace QQ1257465991 Linux運維攻城獅一只 
 Q/A:如有問題請慷慨提出

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

(0)
AceAce
上一篇 2016-04-25
下一篇 2016-04-25

相關推薦

  • Linux的基本介紹

    1、Linux的發行版分為:Debin,Slackware,Rhel,Redora,CentOS,Gentoo等,其中Rhel(Red Hat Enterprise Linux)使用的是版本比較老的內核,但它的系統比較穩定,一個發行周期是36個月,Fedora使用最新的應用和華麗的節目,但系統比較不穩定,一個發行周期是6個月。 2、Linux的哲學思想是一切…

    Linux干貨 2016-02-14
  • 文件處理工具及正則表達式練習

    本節練習均在centos7系統下實現,部分練習只截取部分截圖,另外排版的事情我已經放棄了! 1.找出/etc/rc.d/init.d/functions文件中行首為某單詞(包括下劃線)后面跟一個小括號的行 注:^ 行首, . 匹配任意單個字符,* 匹配前面的字符任意次 突然發現前面解法錯誤,沒有排除空格后加小括號的情況,下面是正確做法 2.統計last命令中…

    Linux干貨 2017-07-29
  • Linux安全與加密基礎(二)

    Linux安全與加密基礎(二) 常見的加密算法 SSL: Openssl與CA認證 ssh服務 dropbear AIDE sudo gpg gpg亦可用于對稱加密與文件檢驗。 文件完整性的兩種實施方式 被安裝的文件     MD5單向散列     rpm –veri…

    Linux干貨 2016-10-06
  • 關于源碼包的基本知識

    關于源碼包的基本知識  §·什么是程序 程序(Program)是為實現特定目標或解決特定問題而用計算機語言編寫的命令序列的集合。為實現預期目的而進行操作的一系列語句和指令。 一般分為系統程序和應用程序兩大類。 程序就是為使電子計算機執行一個或多個操作,或執行某一任務,按序設計的計算機指令的集合。 §·程序包的編譯安裝 ※·為什么需要源碼安裝 1.最…

    Linux干貨 2016-08-24
  • kickstart+http+dhcp+tftp實現centos7的無人值守安裝

    環境:IP: 172.16.0.11 centos 7.2 一. tftp 安裝tftp服務端和客戶端 [root@localhost ~]# yum -y install tftp tftp-server 啟動tftp [root@localhost ~]# systemctl start tftp.socket [root@localhost ~]# s…

    Linux干貨 2017-06-03
  • 正則表達式詳解

    正則表達式詳解

    2017-09-20
欧美性久久久久