码迷,mamicode.com
首页 > 其他好文 > 详细

grub

时间:2015-09-13 12:04:49      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:grub

技术分享技术分享

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

     技术分享

     技术分享

     技术分享

     按下c键

     技术分享技术分享

  stage2及内核等通常放置于一个基本磁盘分区; 

   功用:

    (1) 提供菜单、并提供交互式接口

     e: 编辑模式,用于编辑菜单;

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

    (2) 加载用户选择的内核或操作系统

     允许传递参数给内核

     可隐藏此菜单

    (3) 为菜单提供了保护机制

     为编辑菜单进行认证

     为启用内核或操作系统进行认证


  如何识别设备:

   (hd#,$)

    hd#: 磁盘编号,用数字表示;从0开始编号

    $: 分区编号,用数字表示; 从0开始编号

    (hd0,0) 

      

  grub的命令行接口

   help: 获取帮助列表

   help KEYWORD: 详细帮助信息

     技术分享 技术分享

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

        技术分享技术分享

   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

     技术分享技术分享

  配置文件:/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命令

技术分享

技术分享

技术分享

技术分享

技术分享


  进入单用户模式:

   (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#)

   

技术分享

技术分享

技术分享

技术分享

    为了方便测试,我们让新系统启动后启动bash:

    

技术分享

技术分享


    此时将sdb磁盘挂至另一虚拟机作为默认磁盘即可启动

 技术分享


若grub被破坏且进入了系统,可尝试以下两种方法修复:

技术分享

技术分享


若启动之后发现grub损坏,则需要系统启动光盘,进入Rescue模式:

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

    重启系统引导成功

    


grub

标签:grub

原文地址:http://chaochao3.blog.51cto.com/10446790/1694220

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!