grub

spacer.gifspacer.gif

GRUB(Boot Loader):


 grub: GRand Unified Bootloader

  grub 0.x: grub legacy

  grub 1.x: grub2


 grub legacy:

  stage1: 位於mbr中

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

  stage2:磁盤分區(掛載在/boot/grub/)

  配置文件:/boot/grub/grub.conf <-- /etc/grub.conf

     wKiom1X03cjypJ6oAABiizHiZI0380.jpg

     wKioL1X03_nx3FtcAAA91oj4-1c875.jpg

     wKiom1X03cjCigiyAADnYollLuI449.jpg

     按下c鍵

     spacer.gifwKioL1X04A_iNSE-AADARCZBm48754.jpg

  stage2及內核等通常放置於一個基本磁盤分區; 

   功用:

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

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

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

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

     允許傳遞參數給內核

     可隱藏此菜單

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

     爲編輯菜單進行認證

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


  如何識別設備:

   (hd#,$)

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

    $: 分區編號,用數字表示; 從0開始編號

    (hd0,0) 

      

  grub的命令行接口

   help: 獲取幫助列表

   help KEYWORD: 詳細幫助信息

     wKiom1X03h_BQRxjAAKP8cZBP9o493.jpg spacer.gif

   find (hd#,#)/PATH/TO/SOMEFILE:

        spacer.gifwKioL1X04GSzxj_oAABIrrLHcZs405.jpg

   root (hd#,#)

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

    例如:init=/path/to/init, selinux=0

   initrd /PATH/TO/INITRAMFS_FILE: 設定爲選定的內核提供額外文件的ramdisk;ramdisk文件版本須與內核完全匹配

   boot: 引導啓動選定的內核;


   手動在grub命令行接口啓動系統:

    grub> root (hd#,#)

    grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE

    grub> initrd /initramfs-VERSION-RELEASE.img

    grub> boot

     spacer.gifwKiom1X03k2SCHafAADLi5CjzVI311.jpg

  配置文件:/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 /PATH/TO/VMLINUZ_FILE [PARAMETERS]:啓動的內核

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

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

      grub-md5-crypt命令

wKiom1X03nfhW63OAAJaFYLIy1g391.jpg

wKioL1X04KjBNo9gAABmkYNKq0o133.jpg

wKiom1X03nfTNGOXAABmkYNKq0o096.jpg

wKioL1X04Kvys6bwAAP75T9z7S4543.jpg

wKioL1X04KuhN2mrAAEeqfIL1A8023.jpg


  進入單用戶模式:

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

   (2) 在選定的kernel後附加

    1, s, S或single都可以;

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


  安裝grub:

   (1) grub-install

    grub-install --root-directory=ROOT /dev/DISK

   

   (2) grub

    grub> root (hd#,#)

    grub> setup (hd#)

   

wKioL1X04PTQmRxgAAF3LOT3mr0334.jpg

wKiom1X03sSzMd-PAAK9n4aCVOA551.jpg

wKioL1X04Peh6WOdAAFZuzmGEF4392.jpg

wKiom1X03sahVJcMAAEjAa6W0Yg565.jpg

    爲了方便測試,我們讓新系統啓動後啓動bash:

    

wKiom1X03vXxuV3ZAAJQ8ju_SL0952.jpg

wKioL1X04SeBZn9kAAEiOqRdHT0725.jpg


    此時將sdb磁盤掛至另一虛擬機作爲默認磁盤即可啓動

 wKiom1X03xGSniapAAN_CzBHKrU899.jpg


若grub被破壞且進入了系統,可嘗試以下兩種方法修復:

wKioL1X04XCgnOKyAAISSsvy50A033.jpg

wKiom1X030GQz8ASAAMy5yyY5v8120.jpg


若啓動之後發現grub損壞,則需要系統啓動光盤,進入Rescue模式:

wKioL1X04aqg2TQbAABx0U4fMY0716.jpg

wKiom1X033-DmhuLAAMCV43x9UM477.jpg

wKioL1X04bHQzglYAAKNJ5RSAZs832.jpg

wKiom1X034HwvedxAAFVKiEcyTA926.jpg

wKioL1X04bKA1bXWAADauXQJ6Lw403.jpg

wKiom1X034GhghEAAAEJ3H_FOPI784.jpg

    重啓系統引導成功

    


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