GRUB 学习笔记
论坛上关于 GRUB 的贴子不少,但很多都是讲怎么安装而已。这篇文章是我通过翻译 info grub
并动手做实验总结出来的,增加了一些平常不太常见的内容。如有错误,敬请指正。同时由于 info
grub 的内容太多,对部分内容没有进行翻译,希望各位热心人能够补充!!!
btw :为了方便大家阅读,还提供了 pdf 版本下载,就位于该层底部。
**************************************************************************************
注 :该文章参考了如下内容 :
B)grub info 文档
版本 :v1
最后修改 :2007/03/09 02:04
**************************************************************************************
目录
1、GRUB 基础
2、命名习惯
3、安装 GRUB
4、GRUB 接口
5、GRUB 常用命令
6、保护 GRUB 设置
7、GRUB 和 stage 文件
8、GRUB 常见错误信息
9、制作 GRUB 引导软盘
10、使用 GRUB 通过网络引导操作系统
11、把配置文件嵌入到 GRUB 中
12、总结
13、个人建议
一、GRUB 基础
1.1 GRUB 简介
“boot loader”是计算机启动后第一个运行的软件。它负责加载一个操作系统的内核,并把控制权交给内核。内核则
负责剩下的初始过程。
GRUB 一个很重要的特色就是灵活性;GRUB 可以识别文件系统和二进制格式的内核,所以你可以加载任何操作系统,而
不需要记录内核在磁盘上的物理位置。
1.2 GRUB 的现状
我不打算介绍 GRUB 的发展历史,有兴趣的朋友可以自己到官方站点或者执行 info grub 自行获取信息。我们着眼于
GRUB 当前的现状。
目前 GRUB 分成 GRUB legacy 和 GRUB 2。版本号是 0.9x 以及之前的版本都称为 GRUB Legacy ,从 1.x 开始的就称
为 GRUB 2。目前GRUB Legacy 已经停止开发了,只是出于一个 bug fix 的状态,不再增加新的功能了,所有的开发都
转移到 GURB 2 之上了。
1.3 GRUB Legacy 和 GRUB 2
GRUB 2 是源自于一个名为 PUPA 的项目,目的是建立下一代的 boot loader。GRUB 2 几乎是从零开始开始开发的,它
和 GRUB Legacy 不同的地方有很多,例如支持 s、国际化语言、动态加载模块、带有 resuce 模式等等,这些
都是 GRUB Legacy 所没有的。
a)支持脚本语言,例如条件判断,循环、变量和函数
b)图形接口
c)在运行时动态加载需要的模块,而不是在 biuld 的时候指定加入那些模块(静态)
d)可以移植到不同的架构上
e)国际化语言。包括支持非ASCII的字符集和类似 gettext 的消息分类,字体,图形控制台等等。
f)实际内存管理。使得 GNU GRUB 更加具有可扩展性
g)针对文件系统、文件、设备、驱动、终端、命令、分区表、 os loder 的模块化、层次化、基于对