GRUB(Boot Loader)
一、 grub legacy:
1. stage1: mbr
2. stage1_5: mbr之後的扇區,讓stage1中的bootloader能識别stage2所在的分區上的檔案系統;
3. stage2:磁盤分區(/boot/grub/)
二、 配置檔案:/boot/grub/grub.conf <-- /etc/grub.conf
(一) stage2及核心等通常放置于一個基本磁盤分區;
1. 功用:
(1) 提供菜單、并提供互動式接口

e: 編輯模式,用于編輯菜單;
c: 指令模式,互動式接口;
(2) 加載使用者選擇的核心或作業系統
允許傳遞參數給核心
可隐藏此菜單
(3) 為菜單提供了保護機制
為編輯菜單進行認證
為啟用核心或作業系統進行認證
(二) 如何識别裝置:
格式: (hd#,#)
hd#: 磁盤編号,用數字表示;從0開始編号
#: 分區編号,用數字表示; 從0開始編号
(三)grub的指令行接口
help: 擷取幫助清單
help KEYWORD: 詳細幫助資訊
find (hd#,#)/PATH/TO/SOMEFILE:
root (hd#,#)
kernel /PATH/TO/KERNEL_FILE: 設定本次啟動時用到的核心檔案;額外還可以添加許多核心支援使用的cmdline參數;
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
1. 配置項:
default=#: 設定預設啟動的菜單項;落單項(title)編号從0開始;
timeout=#:指定菜單項等待選項選擇的時長;
splashp_w_picpath=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜單背景圖檔檔案路徑;
hiddenmenu:隐藏菜單;
password [--md5] STRING: 菜單編輯認證;
title TITLE:定義菜單項“标題”, 可出現多次;
root (hd#,#):grub查找stage2及kernel檔案所在裝置分區;為grub的“根”;
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:啟動的核心
initrd /PATH/TO/INITRAMFS_FILE: 核心比對的ramfs檔案;
password [--md5] STRING: 啟動標明的核心或作業系統時進行認證;
(六) grub-md5-crypt指令
(七)進入單使用者模式:
1. 編輯grub菜單(標明要編輯的title,而後使用e指令);
2. 在標明的kernel後附加
1, s, S或single都可以;
3. 在kernel所在行,鍵入“b”指令;
三、如何在新硬碟安裝grub
1. 添加一塊新硬碟
2. 在新磁盤上建立分區,第二個分區為swap分區
3. 格式化三個分區
5.在mnt下建立boot目錄,将/dev/sdb1挂在到其上
6.在sdb上安裝grub
7.複制kernrl以及initrd到/mnt/boot下
8.編寫grub的配置檔案/mnt/boot/grub.grub.conf
9.建立根檔案系統以及在其下面建立所必須的目錄
10.檢視/bin/bash以來的庫,以及将這些庫檔案複制到其相對應的目錄中
11.切換至建立的根,驗證其是否可用,隻不過bash中沒有其他可用的指令,隻有内建指令可用
12.重新編譯配置檔案,因為init不再是sbin下的而是bin下的bash
13.在此系統上建立磁盤,在選擇磁盤的時候要選擇自己剛才建立的磁盤而不是以前的磁盤
14.然後選擇啟動就可以看到自己編譯的配置檔案的資訊
15.在啟動之前進入kernel中添加selinux=0,一定的是在init之前
16.其中系統就可以看到自己安裝的簡易的系統了
四、安裝grub:
1.備份一下grub檔案
2.破壞grub檔案
(1) grub-install
grub-install --root-directory=ROOT /dev/DISK
(2) grub,在root裝置上必須事先存在grub目錄,而且其下的問價都必須得存在
grub> root (hd#,#)
grub> setup (hd#)
五、緊急救援模式
1. 再次破環grub
2.連接配接CD光牒鏡像,重新啟動,第三個選項就是救援模式,也可以敲Esc鍵,在指令行接口輸入linux rescue,也可以進入緊急救援模式:
3.設定語言
4.設定鍵盤類型
5.是否連接配接網絡,如果要從網絡中下載下傳的話就要選擇啟動,如果自己明确知道本地有的話可以不用選擇。
6.緊急救援模式會嘗試在本地磁盤尋找是否有作業系統,如果找到的話,就會把根挂載至目前啟動的這個小的救援模式的/mnt/sysimsge目錄下,就可以到sysp_w_picpath目錄下找到這些檔案了。
7.顯示找到系統,而且根挂載至目前啟動的這個小的救援模式的/mnt/sysimsge目錄下,用的時候直接切換至sysp_w_picpath目錄下即可
8.啟動shell,就會出現提示符
9.切換根至/mnt/sysimsge目錄
10.安裝grub
11.然後就可以重新啟動系統