GRUB應用
GRUB:grand uniform bootloader:統一引導加載器,找到作業系統所在的磁盤,并把核心加載到記憶體,将控制器轉交給核心的程式
GRUB 0.X:
GRUB 1.X:就是通常所說的GRUB2
功能:就是MBR中的前 446 個位元組,是BooTLoader的一種,提供一個菜單,允許使用者選擇要啟動系統或不同的核心版本;把使用者標明的核心裝載到記憶體中的特定空間中,解壓展開,把系統控制權移交給核心,主要是由device.map,menulst,stage1,stage2,以及一系列的stage1_5組成。

device.map:存放的是核心檔案的根分區
menu.lis:是grub.conf的連結檔案,設定了可以選擇的核心菜單,存放于stage2中
stage:用于grub引導程式過大,是以分2段引導,第一段存放在MBR中,第二段存放于核心檔案系統中,第一段引導完成後可以找到第二段,但是,第二段是存放于核心檔案系統中的。當stage1運作完成時還沒有格式化檔案系統,此時要運作stage2需要借助于stage1_5, stage1_5通常位于 stage1 字段後的 63 個扇區。由于stage2 在記憶體中存放可以使用的檔案系統不确定,是以這就是有多個 stage1_5 的原因了。
GRUB配置檔案:/boot/grub/grub.conf 連結檔案到--->/etc/grub.conf
1,default=#:預設啟動的菜單項,菜單項titile編号從0開始,作業系統個數,
2,配置timeout=5,預設等待使用者選擇的時長;
2,splashimge=(hd#,#)/path/to/xpm_pic_file 作業系統選擇預設背景圖檔(xpm.gz格式)
3,hiddenmenu:隐藏;隻能看到進度條,看不不到加載的每條内容
a可選: password [--md5] string:設定密碼,菜單編輯認證;
4,title CentOS (2.6.32-358.el6.x86_64) # 标題名,使用者可自定義
root (hd0,0) # 指定 grub 的根位置
# 指定 kernel 檔案的位置,還要指出root(系統啟動後)的位置,挂載方式 ro,這項很關鍵。
# 加載後會啟動 init 程序。
kernel/vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/vg0-root rd_NO_LUKS rd_NO_DMLANG=en_US.UTF-8 rd_LVM_LV=vg0/swap rd_NO_MD SYSFONT=latarcyrheb-sun16crashkernel=auto rd_LVM_LV=vg0/root KEYBOARDTYPE=pc KEYTABLE=us rhgb crashkernel=auto quiet rhgb quiet
# 在核心啟動過程中裝載根檔案系統時有用
initrd/initramfs-2.6.32-358.el6.x86_64.img
b,可選: password [--md5] string:啟動標明的核心或作業系統時認證;
initramfs檔案說明:initramfs-2.6.32-358.el6.x86_64.img :
initramfs 是以 gzip 壓縮的 cpio 格式的檔案。核心啟動時将他作為一個臨時的根檔案系統。
grub 的 stage2 将initrd加載到記憶體裡,然後将其中的内容釋放到記憶體中,
核心便去執行init腳本,這時核心将控制權交給了init檔案處理。
init 它也主要是加載各種存儲媒體相關的裝置驅動程式。當所需的驅動程式加載完後,
會建立一個根裝置,然後将根檔案系統rootfs以隻讀的方式挂載。
這一步結束後,釋放未使用的記憶體,轉換到真正的根檔案系統上面去,同時運作/sbin/init程式,
執行系統的1号程序。此後系統的控制權就全權交給/sbin/init程序了。
initramfs的制作:
可以使用 dircut 指令,用法如下:
隻有在 initramfs檔案損毀的時候會使用到
dracut /mnt/initramfs-`uname-r`.img `uname -r`
制作完成後檢視指令:
du -sh/mnt/initramfs-2.6.32-358.el6.x86_64.img
du -sh /boot/initramfs-2.6.32-358.el6.x86_64.img
GRUB的功能:
1)提供菜單,并提供互動式接口
e: 進入編輯模式
2)選擇要啟動的核心或系統
可以通過 grub 向核心傳遞參數修改root 密碼,使用 e 選項,讓核心進入單使用者模式即可通過指令修改密碼。
3)為編輯功能提供保護機制。
grub-md5-crypt
Password:
Retype password:
$1$Mp7Rp1$l2wzOILNUqpUhAR7zXvQb0
# 上面是生成的加密字元串
# 然後将資訊加入到 grub.conf 檔案中,格式如下:
password --md5 $1$Mp7Rp1$l2wzOILNUqpUhAR7zXvQb0
# 當然加入 grub.conf 檔案的位置不同,加密效果也不一樣。
具體加密位置見GRUB配置檔案a,b兩個可選加密位置。
GRUB安裝方法:
gurb-install指令安裝grub
grub-install[--root-directory=/path/to/somewhere] DEVICE
mkdir /mnt/boot
mount /dev/sdb1 /mnt/boot
grub-install --root-directory=/mnt /dev/sdb
VMware 虛拟機下grub制作:
第一步:準備好塊新磁盤,分2 個區
第二步:模拟啟動時的boot目錄,和根目錄,并挂載。如下
第三步:制作 grub,并生成 grub 的配置檔案
制作grub:
拷貝核心檔案和initramfs 檔案到 /mnt/boot 目錄下,并生成 grub.conf 檔案
第四步: 生成根檔案系統
第五步:拷貝使用指令和庫到對應根目錄下
注意:檔案複制完成後,修改對應/boot/grub/gurb.conf檔案中root=sda2
将剛才的磁盤鏡像作為另一個虛拟機的啟動盤。