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 21:15
下一篇 2016-04-25 21:22

相關推薦

  • linux中的權限和ACL

    linux中權限詳解和ACL

    2017-11-18
  • 計算機相關簡介和linux相關簡介

    一、計算機相關簡介與linux的一些概念 計算機系統 由硬件(Hardware)系統和軟件(Software)系統兩大部分構成: 硬件系統 :CPU(控制器、運算器),內存儲器(RAM、ROM),外存儲器(硬盤等),輸入設備(鍵盤、鼠標等),輸出設備(顯示器等),其他設備相關設備。  軟件系統 :系統軟件(操作系統,數…

    Linux干貨 2017-02-18
  • 文件查找命令之find

    文件查找命令之find   特點:實時查找,精確查找,由于find是全磁盤文件查找所有查找速度要比locate略慢一些。   find查找功能強大,下面主要介紹find查找條件的一個重要特性–德·摩根定律     德·摩根定律      非(A &&B)=(非A…

    Linux干貨 2016-08-16
  • grep命令及正則表達式

    grep命令和正則表達式 grep基本概念 grep:global search regular expression and print out the line. 作用:文本過濾器,用于文本搜索,用指定“模式”逐行匹配。 模式:由正則表達式字符及文本字符所編寫的過濾條件 正則表達式:由一類特殊字符和文本字符所編寫的模式,其有些字符不表示字符字面意義,而表…

    Linux干貨 2016-11-05
  • 第六周作業補充-vim簡介及其使用方法詳細介紹

    What       Vim是由Vi發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在Unix& Unix Like操作系統中被廣泛使用。和Emacs并列成為Unix& Unix Like操作系統中最受歡迎的文本編輯器 When& Who  &nb…

    Linux干貨 2016-09-26
  • Linux中的網絡功能概念介紹(一)

      在操作系統中,進程之間的通信是用ipc(內存基本通信)以及內存共享shm來實現本地的通信,那么如果跨主機間通信或者說是不同之間的主機用rpc(遠程過程調用)以及socket套接字,用一個主機在socket中寫數據,另一個主機在socket之間讀數據,以實現進程通信的最終目的。   在網絡功能出現之前,基本都是用電話…

    Linux干貨 2016-11-23
欧美性久久久久