理解GRUB2工作原理及配置选项与方法

  GRUB2是借鉴GRUB改写到更加安全强大到多系统引导程序,现在大部分较新的Linux发行版都是使用GRUB2作为引导程序的。
  
  GRUB2采用了模块化设计,使得GRUB2核心更加精炼,使用更加灵活,同时也就不需要像 GRUB那样分为stage1,stage1_5,stage2这样三个阶段了。
  
  GRUB2和GRUB相比具有如下一些新特征:
  
  无 stage1 stage1.5 stage2
  
  配置文件采用新语法,支持脚本,假如新的命令,配置文件名为 grub.cfg
  
  配置文件 grub.cfg不可写,由 grub2-mkconfig 自动产生,由 update2-grub 维护。
  
  分区号不再从 0开始,而是从 1开始
  
  支持更多到文件系统,如:ext4、hfs、ntfs,并可以直接从 lvm和raid中读取文件/li>
  
  grub2有更可靠的方法在磁盘上有多系统时发现文件和目标内核,可以用命令发现系统设备号或者UUID。
  
  引入了设备模块,使得 core 镜像保持更小到尺寸
  
  在启动时没有选择菜单的话,按住shift即可强制显示菜单
  
  GRUB2主要镜像文件:
  
  boot.img
  
  boot.img 相当与 GRUB 的 stage1 它被写入 MBR或 boot分区,它不能识别任何文件系统,在GRUB2安装时GRUB2内核镜像在磁盘中到位置写入到 boot.img 中,这就使得 boot.img 能够在不能识别文件系统的情况下加载内核镜像。
  
  cdboot.img
  
  当从CD引导情况下被写入内核镜像第一个扇区到内容,它负责加载其余的内核镜像到内存。
  
  diskboot.img
  
  当从磁盘引导情况下被写入内核镜像第一个扇区到内容,它负责加载其余的内核镜像到内存。
  
  pxeboot.img
  
  当从网络启动时使用到的。
  
  kernel.img
  
  此镜像包含GRUB2运行时包含的基本工具,框架驱动、文件句柄、环境变量、安全模式命令行解析器等,他可以直接使用但是通常它会被编译进所有的内核镜像中使用。
  
  core.img
  
  这是GRUB2的内核镜像,它由grub-mkimage程序将kernel.img和一些模块动态编译而成,一般情况下他已经包含足够的模块去访问/boot/grub,模块机制使得内核镜像能保持很小的尺寸。在某种程度上,它可以被视为 GRUB 中的 stage2。
  
  *.mod
  
  这是一些可以动态加载的一些模块,当我们需要时,可以将它们可以被动态加载编译进内核镜像,也可以使用insmod手动加载。他们就代替 GRUB 中的 stage1_5 之类到镜像。
  
  安装 GRUB2
  
  一、grub2-install 脚本
  
  1.安装 GRUB 文件到 /boot/grub2
  
  2.复制/usr/www.douniu178.com lib/grub/i386-pc/ 目录下的*.mod、www.douniu157.com*.lst、*.img到/boot/grub目录下
  
  3.调用grub2-probe扫描计算机并收集磁盘和分区信息
  
  4.调用grub2-mkimage构建一个新的new.img
  
  5.grub2-setup把grub的boot.img写入MBR中,把core.img写进设备的第一个扇区
  
  二、grub2-install 不会调用 grub2-mkconfig生成grub.cfg 我们需要手动调用。
  
  1.grub2-mkconfig脚本调用grub2-mkdevicemap和grub2-probe生成grub.cfg
  
  2.调用 grub2-set-default设置进入系统的默认内核
  
  3.调用 grub2-mkdevicemap生成新的device.map,grub-mkdevicemap程序可以创建
  
  device.map文件,在执行grub-install时会自动执行他以创建映像关系,如果文件不存在,
  
  则会读取/boot/grub2/www.mhylpt.com devicd.map这个文件,如果映像文件存在,
  
  则grub读取他创建BIOS drives to OS drives
  
  GRUB2配置
  
  GRUB2不再使用 menu.list,而是使用全新的配置文件 /boot/grub2/grub.cfg,文件权限为 444,其目的就是为避免手动更新,我们可以借助 grub2-mkconfig -o /www.furong157.com boot/grub2/www.boshenyl.cn grub.cfg 命令来更新。/boot/grub2 下到模块可以按需自动加载,模块可以在配置文件中配置,每个模块以 ### BEGIN /etc/grub.d/module_config_name ###开始,以### END /etc/grub.d/module_config_name ### 结束,这些对应的模块文件位于 /etc/grub.d目录之下,次目录下的文件名前面到数字决定了文件的执行顺序,数字越小越先执行,自定义选项在40_custom中定义,这些文件必须有执行权限才会被update-grub读取,并把配置合并到grub.cfg中。
  
  /etc/grub.d/00_header
  
  配置初始的显示项目,如默认选项,时间限制等,一般由/etc/default/grub导入,一般不需要配置
  
  /etc/grub.d/05_debian_theme
  
  配置引导画面,文字颜色等主题
  
  /etc/grub.d/www.furggw.com 10_linux
  
  定位当前操作系统使用中的root设备内核的位置
  
  30_os-prober
  
  用来搜索linux和其他系统,此脚本中的变量用来指定在/boot/grub/grub.cfg 和 grub2菜单中的名称显示方式,可以修改/etc/default/grub光比这个脚本
  
  40_custom
  
  用来加入用户自定义的菜单样板,将会在执行update-grub时更新至grub.cfg中
  
  41_custom
  
  判断custom.cfg此配置文件是否存在,如果存在就加载它
  
  GRUB2在每次生成grub.cfg的时候,都会检查并设置 /etc/default/grub 配置选项,我们可以通过修改/etc/default/grub来改变 GRUB2到行为。
  
  常用配置选项有以下这些:
  
  GRUB_DEFAULT
  
  制定默认菜单选择项,可以是从0开始数字,也可以是 title 后面的字符串,
  
  当值是‘saved’时有特殊含义:默认的菜单选则项会被保存在GRUB_SAVEDEFAULT中,
  
  下次启动时会从这个值启动。当值为saved时可以用grub2-set-default和grub2-reboot来设置默认启动项,
  
  grub2-set-default到下次修改前都有效,grub2-reboot下次启动时生效
  
  GRUB_SAVEDEFAULT
  
  只有这个值是true,GRUB_DEFAULT是saved时才会生效
  
  GRUB_TIMEOUT
  
  选择菜单的显示时间,默认是5,值是0表示不显示菜单选项,值是-1表示无限等待用户选择
  
  GRUB_HIDDEN_TIMEOUT
  
  GRUB2第一次执行时会寻找其他操作系统,如果没有检测到则会将菜单隐藏,
  
  如果有其他操作系统才会显示菜单,如果参数大于0,则会等待响应的秒数,
  
  但是不会显示菜单,可以按住shift显示菜单。
  
  GRUB_DISTRIBUTOR
  
  菜单中的描述名称,采用命令lsb_release判断,应该是红帽系列的,如果不是就归为Debian
  
  GRUB_CMDLINE_LINUX
  
  此行将追加到所有的linux 定义内核行的后面,不论是救援模式还是一般模式
  
  GRUB_CMDLINE_LINUX_DEFAULT
  
  次选项只会追加在一般模式后面,同上
  
  GRUB_TERMINAL=console
  
  启用console,默认不启用
  
  GRUB_DISABLE_LINUX_UUID=true
  
  在GRUB2中指定root时可以使用UUID,默认不启用
  
  GRUB_GFXMODE=640×480
  
  图形化菜单的分辨率,默认不启用
  
  GRUB_DISABLE_LINUX_RECOVERY=true
  
  禁止显示救援模式
  
  This entry was written by zpz, posted on 2012 年 11 月 13 日 at 下午 12:01, filed under linux, linux系统管理, shell and tagged grub, GRUB2, grub配置. Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback: Trackback URL.

转载于:https://www.cnblogs.com/qwangxiao/p/8661728.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值