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 bash编程基础语法总结

    前言 在Linux学习过程中,我们无可避免的会碰到一个既让人喜欢,又令人头疼的神奇的东西——bash编程,即shell脚本。那么什么是shell脚本呢?shell是一个命令语言解释器,而shell脚本则是Linux命令的集合,按照预设的顺序依次解释执行,来完成特定的、较复杂的系统管理任务,类似于Windows中的批处理文件。本文带来的是bash编程的基础语法…

    Linux干货 2015-04-04
  • 20160802学习笔记

    useradd相关补充:      1.新建一个用户创建时的一些默认权限在/etc/default/useradd配置中      2.新建用户家目录的过程实际就是将/etc/skel中的所有文件,拷贝到新建用户的/home下,并更改为改用户的用户名   &n…

    Linux干货 2016-08-03
  • 8.5_Linux文本处理工具和grep之正则表达式的使用

    Linux文本处理工具使用 文件查看工具的使用 cat 命令的使用  此命令一般用于查看文件内容比较多 NAME        cat – concatenate files and print on the&…

    Linux干货 2016-08-08
  • Acheng学习宣言

    我是Acheng,我参加了马哥Linux运维网络班,从2016年9月开始我将跟随马哥学习Linux技术。我的学习宣言是:再努力也不为过!朝着活学活用,做到做精的方向努力吧! 

    Linux干货 2016-10-25
  • N22期-第4周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -r /etc/skel /home/tuser1 [root@localhost ~]# chmod&nb…

    Linux干货 2016-09-05
  • N26-第一周

    博客注册地址查看

    Linux干货 2017-01-03

评论列表(1条)

  • miracler
    miracler 2017-11-30 20:14

    原来这里还有道友!