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

相关推荐

  • iptables, sudo N28

    2018/2/25 17:14 第十二周

    2018-02-25
  • 有趣的bash脚本

    1、编写脚本/root/bin/createuser.sh,实现如下功能:使 用一个用户名做为参数,如果指定参数的用户存在,就显示 其存在,否则添加之;显示添加的用户的id号等信息 #!/bin/bash read -p “Please input username: ” n if id $n &> /dev/null;then echo “T…

    Linux干货 2017-08-25
  • 文件查找作业

    1、查找/var目录下属主为root,且属组为mail的所有文件 [root@wzc ~]# find /var/ -user root -a -group mail /var/spool/mail /var/spool/mail/root 2、查找/var目录下不属于root、…

    Linux干货 2016-08-15
  • shell脚本参数练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登陆shell(即用户的shell不是/sbin/nologin),分别这两类用户的个数;通过字符串比较来实现; !/bin/bash # login_user=0 nologin_user=0 for i in $(cat /etc/passwd | cut -d : -f 7);do if [ $…

    2017-09-17
  • N22-妙手-第七周博客作业第四题:RAID各级别的特性

    什么是RAID RAID的全称是Redundant Array of Independent Disks – 独立磁盘冗余阵列。基本思想是将多个相对便宜的硬盘组合成为一个硬盘阵列,使其在性能上达到或超过一块价格昂贵、容量巨大的硬盘。RAID通常被用在服务器上,使用完全相同的硬盘组成一个逻辑扇区,因此操作系统会把其当做一块硬盘。RAID分为不同的等…

    Linux干货 2016-09-27
  • 常用的文件查看命令

    常用的文件查看命令 1.     cat 常用参数 -n     显示行号 -E     显示行尾结束符 $ -b     显示非空行编号 -s    &nbs…

    2017-04-03

评论列表(1条)

  • miracler
    miracler 2017-11-30 20:14

    原来这里还有道友!