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

    重启系统引导成功

    


你可能感兴趣的:(grub)