天天看點

GRUB應用

                           GRUB應用

GRUB:grand uniform bootloader:統一引導加載器,找到作業系統所在的磁盤,并把核心加載到記憶體,将控制器轉交給核心的程式

GRUB 0.X:

 GRUB 1.X:就是通常所說的GRUB2

功能:就是MBR中的前 446 個位元組,是BooTLoader的一種,提供一個菜單,允許使用者選擇要啟動系統或不同的核心版本;把使用者標明的核心裝載到記憶體中的特定空間中,解壓展開,把系統控制權移交給核心,主要是由device.map,menulst,stage1,stage2,以及一系列的stage1_5組成。

GRUB應用

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程序了。

GRUB應用

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: 進入編輯模式

GRUB應用

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

GRUB應用

VMware 虛拟機下grub制作:

 第一步:準備好塊新磁盤,分2 個區

GRUB應用

 第二步:模拟啟動時的boot目錄,和根目錄,并挂載。如下

GRUB應用

 第三步:制作 grub,并生成 grub 的配置檔案

制作grub:

GRUB應用

 拷貝核心檔案和initramfs 檔案到 /mnt/boot 目錄下,并生成 grub.conf 檔案

GRUB應用

 第四步: 生成根檔案系統

GRUB應用

 第五步:拷貝使用指令和庫到對應根目錄下

GRUB應用
GRUB應用
GRUB應用

注意:檔案複制完成後,修改對應/boot/grub/gurb.conf檔案中root=sda2

GRUB應用

 将剛才的磁盤鏡像作為另一個虛拟機的啟動盤。

上一篇: GRUB應用
下一篇: grub應用

繼續閱讀