GRUB

  • grub legacy版本 (grub 0.x:grub(legacy) Centos 5,6)
    • stage2及内核等通常放置于一个基本磁盘分区(boot分区)
  • 配置文件:/boot/grub/grub.conf

grub legacy版本 (grub 0.x:grub(legacy) Centos 5,6)

要加载grub所在的磁盘时,会读取这个磁盘的MBR,同时会加载stage1stage1会尝试读取后扇区的stage1_5阶段,
stage1_5阶段会帮助stage1中的bootloader识别stage2所在的分区上的文件系统,然后加载stage2所在的磁盘分区,这个分区不但有stage2阶段,还有内核和ramdisk等。

  • stage1:运行Boot Loader主程序,这个程序必须要安装在启动区(即MBR中)。因为MBR空间有限,因此在MBR当中仅安装Boot Loader的最小程序,并没有安装Boot Loader的相关配置文件
  • stage1_5:MBR之后的扇区,让stage1中的BootLoader能识别stage2所在的分区上的文件系统(相当于文件系统的驱动)
  • stage2:boot目录所在的磁盘分区(/boot/grub)
      配置文件:/etc/grub.conf软链接到/boot/grub/grub.conf
           /boot/grub/menu.lst软链接到/boot/grub/grub.conf

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

boot单独分区是用来存放与Linux系统启动有关的程序,比如内核文件、启动引导装载程序,启动菜单配置文件等;
  boot作为一个单独的分区,也就意味着这个单独分区下有一个grub,因为grub刚启动的时候,操作系统还没有启动(真正的根文件系统还没有被加载),所以,不能通过访问/boot/grub来实现,但是我们又需要访问这个文件来执行stage2 阶段。所以,grub中就有一个root命令,指明的就是把stage2 阶段直设为根,而grub自带有文件系统驱动(stage 1.5),所以就可以直接访问分区及根下的所有文件即kernel,initrd等来选择内核启动;
  boot目录,有没有单独分区(或者说引导分区是不是一个独立的分区),决定了在grub中的访问路径是否一样。而grub中的root命令,指明的就是这个根分区是谁,如果boot被单独分区了,那么就直接指向这个新分区,访问路径就直接把boot给去掉了;如果boot没有被单独分区,就是挂在根分区上,那就意味着/boot目录是绕不过去的,访问的时候只能先访问根,在访问根下的boot。
  grub要想访问某一分区,这个分区必须是基本磁盘分区,不可能是提供了非常复杂的驱动程序(RAID或LVM)。如果想把根做的复杂些(比如LVM)但又不对boot做单独分区,那把逻辑卷往分区上一放,就找不到grub中的stage2阶段了,所以,要想把根做的复杂,就只能把boot作为一个单独的基本磁盘分区;
  如果不使用逻辑卷,boot是可以不用单独分区的。

stage2的主要功能:
  1、提供菜单、并提供交互式接口
   e:编辑模式,用于编辑菜单
   c:命令模式,交互式接口
  
  2、 加载用户选择的内核或操作系统
   允许传递参数给内核
   可隐藏此菜单
  3、为菜单提供了保护机制
   为编辑菜单进行认证
   为启用内核或操作系统进行认证

GRUB识别硬盘设备:(hd#,#)表示第几块磁盘的第几块分区
   hd# 磁盘编号用数字表示,从0开始编号
   #  分区编号用数字表示,从0开始编号
   例如(hd0,0)表示第一块硬盘的第一个分区

配置文件:/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 与内核匹配的initramfs文件
  password [–md5] STRING 启动选定内核或操作系统时需要认证

每行详细解释:
  default=#: 设定默认启动的菜单项;假如同时装有多个操作系统,0表示定义的第一个title系统,1表示定义的第二个title系统,以此类推
  timeout=#:表示可供选择的等待时间,如果超出5秒,则使用默认的启动条目default定义的
  splashimage=(hd#,#)/PATH/TO/XPM_FILE:菜单背景图片文件路径
  hiddenmenu:隐藏菜单,默认是不显示菜单信息,如果要想显示菜单,可以将该配置信息注释即可
  password [–md5] STRING: 启动菜单编辑认证
  title TITLE:定义菜单项“标题”(操作系统名称), 可出现多次,用来引导不同的操作系统或内核
   root (hd#,#):grub查找stage2及kernel文件所在设备分区;为grub"根"。也就是说,表示的是内核文件的存放位置,这里指的是分区位置,而非根目录
   kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:内核的名称,以及一些启动时的核心参数。由于启动过程中需要挂载根目录,因此就需要指定根目录所在的分区。rhgb表示色彩显示,quiet表示静默模式加载内核
   initrd/PATH/TO/INITRAMFS_FILE: 内核匹配的ramfs文件,虚拟文件系统
   password [–md5] STRING: 启动选定的内核或操作系统时进行认证

grub-md5-crypt命令生成密钥:
[root@localhost ~]# grub-md5-crypt
Password:
Retype password:
1 1 1TcvuB$S9n4SJLUnvoM3NXYT6Fk2.
编辑grub.conf文件将秘钥添加到相应位置vim /etc/boot/grub.conf
passwd --md5 1 1 1TcvuB$S9n4SJLUnvoM3NXYT6Fk2.

https://github.com/beatfan/UEFI_grub2

GRUB(bootloader)相关推荐

  1. 菜鸟学Linux 第033篇笔记 bootloader,inittab

    菜鸟学Linux 第033篇笔记 bootloader,inittab Linux 系统自启动流程 PC OS (Linux) POST-->BIOS(Boot Sequence)-->M ...

  2. 20-1.系统启动和内核管理centos6(grub,chkconfig,proc,lsmod)

    Linux组成 Linux: kernel+rootfs kernel: 进程管理.内存管理.网络管理.驱动程序.文件系统.安全功能 rootfs:程序和glibc(库) 库:函数集合, functi ...

  3. linux grub 引导日志,Linux系统--Linux的Grub应用

    grub应用 1.Grub(bootloader):全称为:GRand Unified Bootloader. 现在存在两个版本: grub 0.x: grub legacy grub 1.x:gru ...

  4. 【问题收录】Ubuntu(14.04)那些我遇到的各种事

    1."启动会话失败"的解决方法 1.1问题描述 在登录的时候输入密码总是出现启动会话失败的提示 1.2 解决方案 按住 ctrl + Alt + F1 进入到tty 输入你自己的用 ...

  5. Linux基础命令使用

    date: 日期和时间 date[options] [+FORMAT] %s:时间戳计时法,从Unix元年(1970-01-01 00:00:00)到此刻所经过的秒数 %F,%D %T %Y %m % ...

  6. Linux学习整理(一)

    自学Linux已经两个星期了(不算之前的水课),之前也学过一些Linux,但不像现在这种学习状态.这几天除了上课,我的首要任务就是学习Linux! 在这两个星期的学习中,通过看马哥教育的视频和鸟哥的私 ...

  7. 内核代号101 — 动手写自己的内核

    本文由极客范-何伟寰翻译自 Arjun Sreedharan .欢迎加入 极客翻译小组 ,同我们一道翻译与分享.转载请参见文章末尾处的要求.  Hi, 大家好. 在这篇文章中,我们将从零开始,动手编写 ...

  8. Linux文件系统中文版,Linux 文件系统-Go语言中文社区

    文件系统: rootfs: 根文件系统 FHS: linux /boot : 系统启动相关的文件,如内核,initrd, 以及grub(bootloader) /dev : 设备文件 设备文件: 块设 ...

  9. xcat 安装(liunx高性能刀片集群管理软件)

    xcat 安装(liunx高性能刀片集群管理软件) 标签: 集群managercomments脚本timezoneservice 2012-06-18 14:03 9968人阅读 评论(4) 收藏 举 ...

最新文章

  1. FD.io/VPP — VPP 的实现原理解析
  2. 【杂谈】为什么有三AI自断财路,从来不接广告
  3. 来电掉队,共享充电宝或许只是外表光鲜
  4. Shiro 权限标签
  5. lol手游账号被移至美洲服务器,LOL手游“行窃预兆”遭玩家嫌弃,移除偷钱后成最鸡肋符文?...
  6. docker部署服务实现文件上传到本地问题解决
  7. eclips断点调试
  8. knot DNS 01 Tips
  9. 以直播场景为例对音视频相关概念扫盲
  10. 使用detours技术hook系统API
  11. openjudge 买书
  12. 信息学奥赛一本通|1183:病人排队
  13. iOS自定义UITableViewRowAction
  14. R 单样本wilcoxon test
  15. HTML5与CSS3基础教程学习笔记【第三章 基本HTML结构】
  16. 当电脑开不了机出现自动修复时
  17. 中南大学计算机网络期末试卷,期末试卷,需要的自取
  18. QT+ffmpeg+SDL2播放视频流
  19. Vue项目报错:sockjs.js?9be2:1603 GET http://10.179.116.126:8080/sockjs-node/info?t=166442
  20. Tc3.0/Tc2.0使用方法

热门文章

  1. linux 交换机tftp服务,Linux制作之Linux tftp服务安装与设置(atftp)仓酷云
  2. Veeam Backup Replication 11 - 虚拟、物理和云备份软件
  3. 享用一生100种最实用生活小窍门
  4. Linux开发入门笔记——Linux使用基础
  5. C++题解:棋子等级
  6. 全面推进实景三维中国建设 自然资源部明确这些要求 点卯-三维视频融合 魔镜系列
  7. java爬虫案例——SpringBoot使用HttpClient、Jsoup爬取京东手机数据
  8. SAP那些事-职业篇-8-顾问“三宝”
  9. Dynatrace monitoring as code
  10. ansible的setup模块和Facts变量及magic变量