GRUB的加载流程

GRUB是GNU的一款多重引导软件。GRUB包含了3个重要的文件:stage1 ,e2fsstage1_5,stage2。这三个文件分别代表了GRUB运行的3个阶段。

1.stage1

stage1实际存在于MBR的bootloader段中,由BIOS加载执行,stage1会加载stage1.5(例如e2fsstate1_5表示ext2文件系统的stage1.5)。

stage1.5用于让GRUB可以识别对应的文件系统。问题是在stage1没有加载stage1.5前不能识别文件系统,那么stage1如何找到stage1.5的呢?

2.stage1.5

stage1.5实际上存在于MBR之后的32K中,这样stage1在没有文件系统的情况下就可以找到stage1.5了。stage1.5的作用是加载文件系统,并且

找到stage2加载对应的stage2

3.stage2

stage2是GRUB的主程序,实现了GRUB的主要功能:提供选单,读取配置文件(/boot/grub/grub.conf),连接下一个引导扇区(Boot Sector)。

GRUB的设置

grub一般讲设置文件放在/boot/grub下,有些系统还会子啊/etc下建立一个grub.conf的链接文件。

default=
timeout=
splashimage=(hd1,)/boot/grub/splash.xpm.gz
title Windows2K
rootnoverify (hd0,)
chainloader +
title RedHat9
root (hd1,)
  kernel /boot/vmlinuz-2.4.- ro root=LABEL=/
  initrd /boot/initrd-2.4.-.img
title Mandrake9.
  kernel (hd1,)/boot/vmlinuz root=/dev/hdb5 quiet devfs=mount acpi=off vga=
  initrd (hd1,)/boot/initrd.img

hiddenmenu:隐藏菜单

default=0 :指定默认系统

password:grub的密码,用于保护grub引导选项不被修改。可以用grub-md5-crypt指令产生

开机选项:

title:操作系统的名称,可以自行指定,显示于启动画面中

root:指定kernel以及initrd所在的硬盘,用hd(x,x)指定,例如(hd0,0)表示第一块硬盘的第一个分区。

kernel:加载kernel的位置

多重引导管理

GRUB指派可以分为2种:直接加载和链接加载

1.直接加载

用于加载原本就支持多重引导的系统:Linux,FreeBSD,UNIX等,可以直接加载其kernel

2.链接加载

用于加载不支持多重引导的系统:windows。安装windows时会强制重写MBR,导致别的系统无法正常加载,所以一般安装系统时

要先安装windows,再安装别的系统。

Linux操作系统奥秘02-系统引导(GRUB)的更多相关文章

  1. Linux操作系统奥秘01-系统引导(MBR - 硬盘的0磁道)

    Boot:1.系统PowerOn 2.BIOS在完成硬件初始化以及POST 3.BIOS加载MBR 4.GRUB->GRUB or kernal MBR MBR即主引导记录,是在BIOS中选择的 ...

  2. 轻松学习Linux之详解系统引导过程

    轻松学习Linux之详解系统引导过程-1 轻松学习Linux之详解系统引导过程-2 本文出自 "李晨光原创技术博客" 博客,谢绝转载!

  3. 多系统引导 Grub

    目录 1. 多系统引导程序 1.1 简介 1.2 Grub History 1.3 支持Windows系统下安装的grub版本 1.4多系统引导程序对比: 1.5 相关参考 1.5.1 Grub 2 ...

  4. 安装grub到U盘分区,实现多系统引导

    目录 1.分区工具及分区类型 1.1 显示分区表和分区信息 1.1.1 fdisk -l 1.1.2 gdisk -l 1.1.3 parted -l 1.2 常见分区类型 1.3 分区样例 1.3. ...

  5. Linux系统——引导过程与服务控制

    一.Linux开机启动原理(十步) (1)开机自检BIOS 开机检测,主板检测 (2)MBR引导 硬盘512字节 (3)GRUB菜单 操作系统菜单 (4)加载内核(kernel) 启动操作系统核心,根 ...

  6. Linunx系统引导过程及MBR/GRUB故障

    Linunx系统引导过程 系统初始化进程 init进程 Systemd Systemd单元类型 允许级别所对应的systemd目标 修复MBR扇区故障 解决思路 操作 修复GRUB引导故障 解决思路 ...

  7. Linux系统引导过程及排除启动故障

    一.Linux操作系统引导过程二.系统初始化进程1.init进程2.Systemd3.Systemd单元类型三.排除启动类故障[1].修复MBR扇区故障(含实验过程)[2].修复GRUB引导故障●方法 ...

  8. 9.Linux系统引导流程

    一.Linux系统引导流程 当我们按下主机电源键的那时候开始,主板上的CMOS/BIOS模块将进行固件自检,以此检查各个硬件是否正确连接. 在Linux引导流程中,一般可以分为以下几个主要过程: 1. ...

  9. 系统引导器GRUB

    系统引导器GRUB 理解/boot/grub/grub.conf 1 # grub.conf generated by anaconda 2 # 3 # Note that you do not ha ...

随机推荐

  1. Oracle PL/SQL入门语法点

    PL_SQL:带有分支和循环,面向过程匿名块:declare(可选,声明各种变量和游标的地方)begin(必要的,从此开始执行)exception(抓取到异常后执行的)end;[sql] view p ...

  2. Modules

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  3. 监听调试web service的好工具TCPMon

    监听调试web service的好工具TCPMonhttp://ws.apache.org/commons/tcpmon/download.cgi TCPMon Tutorial Content In ...

  4. __attribute__ 你知多少?

    GNU C 的一大特色就是__attribute__ 机制.__attribute__ 可以设置函数属性(Function Attribute ).变量属性(Variable Attribute )和 ...

  5. Animations功能(区别于Transitions)

    CSS3实现动画: 1  Transitions:定义元素的某个属性从一个属性值平滑过渡到另一个属性值. Transitions属性的使用方法如下所示: transition: property | ...

  6. 设计模式-UML类图的各符号含义(转)

    UML类图的各符号含义 类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形.由这些基本的图形进行组合构成了类图的基本符号.这里要注意这几个符号的顺序,代表了类与类之间关系 ...

  7. PyCharm 远程连接linux中Python 运行pyspark

    PySpark in PyCharm on a remote server 1.确保remote端Python.spark安装正确 2.remote端安装.设置 vi /etc/profile添加一行 ...

  8. 使用 7za.exe 打包文件

    7za.exe 下载地址:http://www.7-zip.org/a/7za920.zip 7za <command> [<switch>...] <base_arch ...

  9. js中this的问题

    Javascript的this用法 this是Javascript语言的一个关键字. 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如, function test(){ ; } 随 ...

  10. 电脑控制台灯(c# hook,显示室温,联网校正时间)

          突发奇想,于是便写了一个小程序用于控制台灯,这几天功能也在不断的完善中,目前基本已经完成.下面进行功能的简述的代码的分析. 整体设计包含下位机程序和上位机程序.下位机用的c语言,上位机用的 ...