grub详解

#GRUB详解

grub基础概念

前面的开机过程我们知道:按照BIOS定义的硬件设备启动顺序,第一启动设备中的MBR去读取boot loader。boot loader功能很强大,要重新自检硬件设备,开始有一个菜单供用户选择系统或者内核版本,还要加载内核将内核解压到RAM中并执行,最后将控制权移交给内核。屈屈446个字节怎么让它完成那么多功能。所以Linux将boot loader的程序代码执行分成两个阶段。

stage1: mbr

stage1_5: mbr之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统;

stage2:磁盘分区(/boot/grub/)

看看/boot/grub上都有什么

centos7上面的:

grub详解

centos6上面的:

grub详解

grub主程序最重要的任务之一是:识别磁盘,加载内核文件。怎么识别:

(hd0,0)
()括起来,硬盘以hd表示,后面接数字,后面的表示硬盘分区。

第一块磁盘的第一个分区的boot sector代号就是(hd0,0)
第一块磁盘的第一个逻辑分区的boot sector代号就是(hd0,4)

grub的配置文件

vim /boot/grub/menu.lst

grub详解

这里面的root代表的是内核文件放置哪一个分区,而不是根目录。

kernel后面接的是内核的文件名,文件名后面接的是文件名的参数

启动时要挂载根目录,所以root=/dev后面指的是Linux根目录挂载到哪个分区

配置项:
    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: 内核匹配的ramfs文件;

    password [--md5] STRING: 启动选定的内核或操作系统时进行认证;

安装grub

如果你的Linux主机原来使用的并非grub,那么就需要来安装。

grub-install --root-directory=ROOT /dev/DISK

将grub安装至当前系统的MBR下面
    grub-install /dev/sda

我的/home为独立的/dev/sda3,如何安装grub到/dev/sda3
    grub-install --root-directory=/home /dev/sda3
    ll /home/boot/grub/

实例:预计启动时要直接显示菜单,且菜单倒数位30秒。另外,在原本的menu。lst当中新增三个启动菜单,分别说明如下:

1、假设/dev/sda1内含有boot loader,此loader如何取得控制权?
2、如何重新读取MBR内的loader?
3、利用你原本的系统内核文件,新建一个可强制进入单用户维护模式的菜单。

grub详解

配置完成后,我们并不知道/dev/hda1到底有没有包含grub的主程序,因此我们想要将grub主程序再次安装到/dev/hda1的boot sector,重新将grub安装到MBR上面去。

#grub
#root (hd0,0)
#find /grub/stage1
#find /vmlinuz-2.6.28-92.e15
#setup (hd0,0)  (覆盖原来的boot sector)

grub详解

这要重启后就是这样

grub详解

原创文章,作者:N24_yezi,如若转载,请注明出处:http://www.178linux.com/60767

(0)
N24_yeziN24_yezi
上一篇 2016-11-25
下一篇 2016-11-25

相关推荐

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

    1、Linux上的文件管理类命令有:cp复制, mv剪切, rm移除 使用方法: cp复制  cp [OPTION]… [-T] SOURCE DEST  常用选项: -i:交互式 -r: 递归复制目录及内部的所有内容 -a: 归档 演示: SRC是文件,会将/etc/fstab 中内容覆盖到/bin/po…

    Linux干货 2016-06-23
  • 马哥教育网络班21期+第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥:桥接器,是连接两个局域网的一种存储/转发设备,它能将一个大的LAN分割为多个网段,或将两个以上的LAN互联为一个逻辑LAN,使LAN上的所有用户都可访问服务器 集线器:集线器的英文称为“Hub”.集线器(hub)属于纯硬件网络底层设备,基本上不具有类似于交换机的"…

    Linux干货 2016-08-29
  • 从Code Review 谈如何做技术

    (这篇文章缘由我的微博,我想多说一些,有些杂乱,想到哪写到哪) 这两天,在微博上表达了一下Code Review的重要性。因为翻看了阿里内部的Review Board上的记录,从上面发现Code Review做得好的是一些比较偏技术的团队,而偏业务的技术团队基本上没有看到Code Review的记录。当然,这并不能说没有记录他们就没有做Code Review…

    Linux干货 2016-08-15
  • 权限管理

    linux文件权限:     在linux系统中,每个文件或目录都包含有相应的权限,这些权限决定了哪些用户或组能够对此文件做哪些操作,如读取、删除、写入等操作 文件权限分为三类:r,w,x     应用于文件:      &nbs…

    Linux干货 2016-08-07
  • keepalived+lvs负载均衡两个httpd

    准备4台主机172.16.71.2 172.16.71.3 172.16.71.4 172.16.71.5 前两个做后端httpd服务器。后两个做keepalived 首先配置好后端主机172.16.71.2 和172.16.71.3 # 172.16.71.2yum install httpdcd /var/www/…

    Linux干货 2017-02-13
  • 马哥教育网络班22期+第8周课程练习

    week8: 1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,它能将一个大的LAN分割为多个网段, 或将两个以上的LAN互联为一个逻辑LAN,使LAN上的所有用户都可访问服务器。 它工作于OSI(开放系统互联参考模型)参考模型第二层,即“数据链路层”。 集线器的英文称为“H…

    Linux干货 2016-10-09

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-07 23:52

    可以写写grub的修复的过程