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

相关推荐

  • 马哥教育网络班21期+第六周课程练习

    第六周作业 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysinit /tmpvim /tmp/rc.sysinit # 命令模式下,输入一下内容:%s@\(^[[:space:]]…

    Linux干货 2016-10-17
  • [转]百万级访问网站前期的技术准备

       [转]百万级访问网站前期的技术准备 开了自己域名的博客,第一篇就得来个重磅一点的才对得起这4美金的域名。作为一个技术从业者十年,逛了十年发现有些知识东一榔头西一棒槌的得满世界  看个遍才整理出个头绪,那咱就系统点的从头一步一步的说,一个从日几千访问的小小网站,到日访问一两百万的小网站,怎么才能让它平滑的度过这个阶段,别在 …

    Linux干货 2016-10-29
  • N28 第三周【2】:用户和组管理

    用户和组管理 前言 Linux用户管理非常关键且重要,Linux的所有进程都是以不同的身份拥有不同的权限来运行和调度资源的。但是我们不用费劲心思去管理,因为系统将用户划分成为了两部分:无所不能的root用户和普通用户。同时呢,又将普通用户分为系统用户和登录用户。对于Linux,他会用UID去快速识别用户身份,对于我们,可以用用户名去识别。 接下来介绍一下用户…

    Linux干货 2017-12-19
  • Linux发展史

    Linux发展史 摘要:因为学习linux过程中对整个linux发展历史只有一些模糊的理解,以本文来对linux发展史进行梳理来加深学习。   一、linux是什么 linux就是一套操作系统,如下图操作系统就是内核与系统调用接口那 Linux只是一套操作系统并不包含其他应用程序。 Linux提供了一个完整的操作系统当中最底层的硬件控制和资源管理的…

    Linux干货 2016-10-14
  • DNS快速入门、正反向解析……

    DNS服务原理详解 因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析。 我们在访问一个网站的时候,只要输入该网站的网址就会跳转到该网站页面,而实现这一过程就需要DNS服务器将域名解析为IP地址,进而实现数据通信。 DNS:…

    2017-06-03
  • 庆祝马哥成为51cto学院Linux运维金牌讲师第一人

    讲师何其多,金牌只一人(2016免费课程在底部) 某天,小编听到: linuxer1:听说51CTO学院评出了一个Linux金牌讲师!只有一人呢! linuxer2:用腿想,就知道肯定是马哥喽! linuxer3:前段时间马哥又分享了2016最新课时,限时免费学习呢!10086个赞!我和我的好基友们都在学习! linuxer4:马哥的51CTO课程学员都两百…

    2016-04-14

评论列表(1条)

  • miracler
    miracler 2017-11-30 20:14

    原来这里还有道友!