GRUB

grub: GRand Unified Bootloader

grub0.x: grub legacy

grub1.x: grub2

 

grub legacy:

stage1:mbr

stage1_5: mbr之後的扇區,讓stage1中的bootloader能識別stage2所在的分區上的文件系統;

stage2:磁盤分區(/boot/grub/)

 

配置文件:

/boot/grub/grub.conf <-- /etc/grub.conf

 

GRUB 功能

(1) 提供菜單、並提供交互式接口

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

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

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

允許傳遞參數給內核

可隱藏此菜單

(3) 爲菜單提供了保護機制

爲編輯菜單進行認證

爲啓用內核或操作系統進行認證

 

boot目錄單獨分區:

boot掛載至根,訪問boot中的文件:/boot/vmlinuz

boot單獨分區:訪問boot中的文件:/vmlinuz

注意:boot是否單獨分區,決定着訪問boot中的文件路徑不同。

 

GRUB中如何識別設備

(hd#,#)

hd#: 磁盤編號,用數字表示;從0開始編號,表示第幾塊硬盤;

#: 分區編號,用數字表示; 0開始編號;表示硬盤上的第幾塊分區;

(hd0,0):第一塊硬盤的第一個分區

 

grub的命令行接口

help: 獲取幫助列表

help KEYWORD: 詳細幫助信息

find (hd#,#)/PATH/TO/SOMEFILE  查找磁盤文件上是否有某個文件

root (hd#,#)   設定某個磁盤文件作爲根設備

kernel /PATH/TO/KERNEL_FILE: 設定本次啓動時用到的內核文件;額外還可以添加許多內核支持使用的命令行參數;

例如:init=/bin/bash, selinux=0    //bash作爲第一個啓動進程(而不是init);關閉Selinux

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

 

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

配置項:

default=#: 設定默認啓動的菜單項;落單項(title)編號從0開始;

timeout=#:指定菜單項等待選項選擇的時長;

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

hiddenmenu:隱藏菜單;

password [--md5] STRING: GRUB菜單編輯認證;不使用--md5,只要放明文串就行了;

加密存放:

#grub-md5-crypt命令,複製生成的字符串至STRING

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

root (hd#,#)grub查找stage2kernel文件所在設備分區;爲grub的“根”;

kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:啓動的內核

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

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

 

進入單用戶模式:

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

(2) 在選定的kernel後附加1, s, Ssingle都可以;

(3) kernel所在行,鍵入“b”命令;

 

安裝GRUB

GRUB損壞,但系統未關機:

(1)grub-install

grub-install --root-directory=ROOT/dev/DISK     //--root-directory=ROOT指定boot的父目錄; /dev/DISK指定本地硬盤

 

(2)grub

grub>root (hd#,#)

grub>setup (hd#)

GRUB損壞,系統關機:

插入系統安裝光盤,進入救援模式;使用grub-install修復。

 

 

 

 

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章