grub应用 (Blog 10)

grub1.x 、grub2.x详解

grub (GRand Unifined Bootloader)
统一引导加载器

bootloader的类型
Windows: ntloader
Linux: LILO, GRUB
LILO设计之初,硬盘很小;没有考虑到1024柱面之后,磁盘不能识别;
GRUB:用一个精巧的设计,将GRUB程序放在bootloader中,实现诸多功能的配置在一个单独的分区之上;
grub 0.x: grub leagcy (CentOS 5,6)
grub 1.x: grub2 (CentOS 7)

MBR位于0磁道的0扇区
446Bytes:bootloader:提供一个可供用户选择的菜单,将指定的操作系统或不同版本的内核加载至内存中,内核自解压展开,移交控制权给内核;
64Bytes: 存放分区表
2Bytes: 有效标识符:55AA表示有效;

grub是取代早期bootloader,仅在446字节(446个字符)中要实现的功能很薄弱;

GRUB工作流程
stage1: bootloader
stage1_5: MBR后的扇区,提供普通分区的驱动;并将此分区作为grub的根,grub访问其下的所有文件从/起始;
stage2:找到grub所在的普通分区,根据其配置提供众多功能;

Mage2Mage3

GRUB功能
提供菜单:编辑操作及输出一个命令行接口
隐藏菜单
保护机制:加载内核、编辑菜单

GRUB命令行接口
grub> root 指明grub的根分区在哪个磁盘的哪个分区;提供内核、inird及grub配置文件;
grub> kernel /vmlinuz-VERSION-release grub的根提供的内核;即本次要加载的内核;后可接参数;
grub> initrd /initrd-VERSION-release grub的提供的initrd;即提供给内核的驱动,用于加载根文件系统;
grub> boot 引导;

kernel cmdline可以接的参数:
ro root=/paht/to/device 只读挂载路径对应的根设备;注意:此处为initrd驱动的根文件系统;
init=/sbin/init 内核关联根文件系统后,第一个启动的程序
selinux=0 表示本次启动不启动selinux
quiet 不输出信息

GRUB配置文件
/boot/grub/grub.conf <– /etc/grub.conf
或 /boot/grub2/grub.conf <– /etc/grub2.conf

GRUB配置文件格式
default=0 默认引导第1个菜单
timeout=5 等待用户选择的时长;
splashimage=(hd#,#)/PATH/TO/PIC_FILE.xpm.gz 菜单背景图片;
hiddenmenu 隐藏菜单
password –md5 STRING: 菜单编辑认证;
title STRING 标题,有空格无须对其加引号;
root (hd#,#) grub1_5驱动的文件系统所在分区;#号从0开始编号;
kernel /PATH/TO/VMLINUZ_FILE: grub识别的根下的内核文件;
initrd /PATH/TO/INITRAMDISK_FILE:grub识别的根下的initramfs文件;设定提供根文件系统驱动的路径;
password –md5 STRING: 启用内核或操作系统认证;

GRUB相关故障排除

没有stage1
BIOS不会将其设定为启动设备;
(1) 安装bootloader

stage1损坏:
开机黑屏
(1) 光盘救援模式:
(2) 借助于有bootloader的设备,引导系统

没有stage2或stage2文件损坏:
用grub命令行,指定grub的根分区、分区下的内核及inird文件,即可启动;并在启动系统后修复即可;

重装GRUB
~]# grub-install –root-directory=/PAHT/TO/BOOT /dev/DEVICE
–root-directory= boot目录所在目录;即为要安装grub的目录;
/dev/DEVICE 给哪个设备安装Bootloader,不是分区;

修复GRUB
~]# grub
grub> root (hd#,#) grub目录安装所在的磁盘及分区;
grub> setup (hd#) grub目录安装所在的磁盘;

 

光盘启动引导补充

Mage4

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89056

(0)
逆神阳逆神阳
上一篇 2017-11-27 23:19
下一篇 2017-11-28 10:04

相关推荐

  • 重定向、管道——Linux基本命令(9)

    1.     输出重定向 Linux默认输入是键盘,输出是显示器。可以用重定向来改变这些设置。比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,可以直接把一个已经写好的文件用‘<’指向这条命令,就直接可以统计这个文件的字符数等了。   STDOUT(标准输出)和STDERR(标准错误)可以被重…

    2017-07-20
  • shell脚本编程

    Shell脚本是包含一些命令或声明,并符合一定格式的文本文件。 程序:指令+数据 程序编程风格 过程式  以指令为中心,数据服务于指令。 对象式  以数据为中心,指令服务于数据。 Shell程序:提供了编写和能力,解释执行。 编程逻辑处理方式:           顺序执行   …

    Linux干货 2016-08-15
  • linux小小小入门。

      ❀用户登录:     ❤root用户 这是一个特殊的管理账户,也被称为超级账户,root已经接近完整的系统控制。但是对系统的损害有非常广泛的能力。(一般情况下不会登录root)     ❤普通用户 权限有限,损害能力较小。 ❀终端terminal:     ❤设备终端 键盘,鼠标,显示器     &#x…

    Linux干货 2018-03-26
  • Linux基础知识之文本处理三剑客sed

    处理文本的工具sed     1.sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”。接着用sed命令处理缓冲区中的内容,完成处理后,把缓冲区中的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编…

    Linux干货 2016-08-11
  • CentOS6基础网络配置

    虽然也可以用命令进行临时修改(ifconfig来设置IP,用route来配置网关,用hostname来配置主机名等等),但是重启后会丢失。所以本文主要通过修改相关配置文件来实现: 配置dns、网关、ip地址 修改网卡名字 单网卡多IP配置 多网卡单IP配置 本次系统运行环境:  配置dns、网关、ip地址 首先,我们对网卡配置相关的主要的几个文件简…

    Linux干货 2016-09-06
  • ansible批量部署主从DNS

    什么是DNS服务DNS的解析流程分析递归查询迭代查询DNS相关的术语说明生产环境中的应用Bind9常见配置说明使用ansible自动部署主从DNS 什么是DNS服务 DNS(Domain Name Service)是Internet上用于名称解析的服务,简单来说,就是将域名转换为IP地址的服务(正向解析),也可以用于将IP地址解析为对应的…

    Linux干货 2016-06-29

评论列表(1条)

  • miracler
    miracler 2017-11-30 20:14

    原来这里还有道友!