没有合适的资源?快使用搜索试试~ 我知道了~
grub学习笔记
4星 · 超过85%的资源 需积分: 9 20 下载量 95 浏览量
2010-06-13
10:55:29
上传
评论 1
收藏 496KB PDF 举报
温馨提示
grub学习指导grub学习指导grub学习指导grub学习指导grub学习指导grub学习指导grub学习指导grub学习指导
资源推荐
资源详情
资源评论
一、 GRUB 简介
系统启动引导管理器,是在计算机启动后运行的第一个程序,他是用来负责加载、传输控
制到操作系统的内核,一旦把内核挂载,系统引导管理器的任务就算完成退出,系统引导的其
它部份,比如系统的初始化及启动过程则完全由内核来控制完成。
二、 GRUB软件包版安装
在 linux 系统中查看有没有安装 grub-0.97-13.2 包,如过没有安装此包,那么可以在光盘
中找到 grub-0.97-13.2 进行安装即可。一般在安装完系统后该包已经被安装到系统中。如果没
有 rpm 包可以下载 tar 包进行编译安装。(grub-0.97-13.2 是安装 grub 到 mbr 中的工具包)
[root@rhel5 ~]# rpm -qa grub
grub-0.97-13.2
[root@rhel5 ~]#
三、 GRUB的配置文件grub.conf的写法
1. 设备命名命名习惯
首先GRUB要求设备名被括在一个括号中。fd表示软盘,hd 表示硬盘(不区分IDE还是SCSI)。
其次设备是从0开始编号。分区也是如此,分区和设备之间用一个逗号分开。
下面给出几个例子 :
(fd0) :表示整个软盘
(hd0,1):表示系统的第一个硬盘的第2个分区
(hd0,0):表示系统中的第一个硬盘的第一个分区。
如果没有指定某个分区,则表示使用整个设备,否则只使用指定的分区。
2. grub.conf的写法
default:定义默认引导的操作系统。0 表示第一个操作系统,1 表示第 2 个,依此类推。
hiddenmenu:用于启动时隐藏菜单,除非在 timeout 之前按下 ESC 才能看到菜单。
timeout:定义多少秒内如果用户没有按下键盘上的某个按键,就自动引导 default 所指定的
操作系统。
splashimage:指定启动的背景图片,一般为压缩文件。路径为绝对路径。
title:定义引导项目的名称。
root:指定 boot 分区所在磁盘及分区,如:root (hd0,0)。
kernel:指定 kernel 文件所在绝对目录地址,如:kernel /boot/vmlinuz-2.6.18-92.el5 ro
root=LABEL=/ rhgb quiet。
共同学习,一起讨论!QQ 群:55042715
initrd:指定 ramdisk 盘所在绝对目录地址,如:initrd /boot/initrd-2.6.18-92.el5.img。
注意:
kernel 与 initrd 这两个设置项中,指定的路径都是绝对路径。因为这两个文件都存放在
/boot 目录。而且/boot 所在的分区已经在 root (hd[0-n],[0-n])中指定,所以就无需再指明
kernel 与 initrd 在哪个分区了。如果 boot 分区为独立分区,那么前面的/boot 省略掉。如果
boot 分区为非独立分区,那么必须加上/boot。
3. boot分区为独立分区
[root@RHEL5 grub]# cat grub.conf
default=0
#启动第一个操作系统。
timeout=5
#超时时间为 5 秒。
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-92.el5) #设置项目标题。
root (hd0,0)
#设置 boot 分区所在位置,第一个硬盘的第一分区。
kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet
#设置 kernel 所在位置。注意这里的 root 指的系统根所在位置,与上面的 root 不同。
initrd /initrd-2.6.18-92.el5.img
#设置 initrd 所在位置。
[root@RHEL5 grub]#
4.
boot分区非独立分区
[root@rhel5 ~]# cat /boot/grub/grub.conf
default=0
#启动第一个操作系统。
timeout=5
#超时时间为 5 秒。
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-92.el5) #设置项目标题。
root (hd0,0)
#设置 boot 分区所在位置,第一个硬盘的第一分区。
kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet
#设置 kernel 所在位置。注意这里的 root 指的系统根所在位置,与上面的 root 不同。
initrd /boot/initrd-2.6.18-92.el5.img
#设置 initrd 所在位置。
[root@rhel5 ~]#
共同学习,一起讨论!QQ 群:55042715
四、 GRUB和stage文件
1. stage文件
GRUB 含有几个 images 文件,两个必需的文件 stage1 和 stage2,可选的为 stage1_5 和
两个网络引导的文件 nxgrub 和 pxegrub。stage1 是用于引导 GURB 的一个必须的映象文件。通
常它是被嵌入到 MBR。或者一个分区的引导扇区之中。因为 PC 的引导扇区是 512 字节,所以
stage1 也是 512 字节。stage1 的作用就是从一个本地磁盘加载 stage 2 或者 stage1_5 。因为
大小的限制,stage1 对 stage2 或者 stage1_5 的位置进行编码。
stage1 与 stage2 文件一般位于/boot/grub/目录下,在这个目录下还有很多 stage1_5 的
文件,而且都是以文件系统格式命名的。它们的目的是在 stage1 和 stage2 之间搭建一个桥梁,
也就是 stage1 加载 stage1_5, 然后 stage1_5 加载 stage2。stage1 和 stage1_5 的不同之处是
stage1 无法识别文件系统,stage1_5 可以。因为 Stage2 太大了,无法被嵌入到某个固定的区
域,而 stage1_5 可以安装在 MBR 之后的位置。
2. grub启动方式
1) stage1_5 -> stage2 方式
首先监测是否是合适的文件系统的驱动,如果存在就使用文件系统逻辑的方式 stage2 ;如
果找不到就用 blocklist 的方式再找 stage2,找到了挂起来,找不到报错。
2) stage1 -> stage2 方式
如果确认 stage1_5 没有被安装在 MBR 之后, stage1 就会使用记录的 stage2 的 blocklist
寻找 stage2,找到后挂起来,找不到报错。
五、 GRUB三种安装方式
在 linux 系统中可以执行 grub 命令。进入 grub 的命令界面,在这里面可以使用一些常用
的命令。也可以对不太了解的命令进行帮助查看。可以使用 TAB 键对命令进行补全操作,系统
会给予提示信息。如下:
[root@RHEL5 ~]# grub
Probing devices to guess BIOS drives. This may take a long time.
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename.]
共同学习,一起讨论!QQ 群:55042715
grub> help
blocklist FILE boot
cat FILE chainloader [--force] FILE
clear color NORMAL [HIGHLIGHT]
configfile FILE device DRIVE DEVICE
displayapm displaymem
find FILENAME geometry DRIVE [CYLINDER HEAD SECTOR [
halt [--no-apm] help [--all] [PATTERN ...]
hide PARTITION initrd FILE [ARG ...]
kernel [--no-mem-option] [--type=TYPE] makeactive
map TO_DRIVE FROM_DRIVE md5crypt
module FILE [ARG ...] modulenounzip FILE [ARG ...]
pager [FLAG] partnew PART TYPE START LEN
parttype PART TYPE quit
reboot root [DEVICE [HDBIAS]]
rootnoverify [DEVICE [HDBIAS]] serial [--unit=UNIT] [--port=PORT] [--
setkey [TO_KEY FROM_KEY] setup [--prefix=DIR] [--stage2=STAGE2_
terminal [--dumb] [--no-echo] [--no-ed terminfo [--name=NAME --cursor-address
testvbe MODE unhide PARTITION
uppermem KBYTES vbeprobe [MODE]
grub> help root
root: root [DEVICE [HDBIAS]]
Set the current "root device" to the device DEVICE, then attempt
to mount it to get the partition size (for passing the partition
descriptor in `ES:ESI', used by some chain-loaded bootloaders),
the BSD drive-type (for booting BSD kernels using their native
boot format), and correctly determine the PC partition where a
BSD sub-partition is located. The optional HDBIAS parameter is a
number to tell a BSD kernel how many BIOS drive numbers are on
controllers before the current one. For example, if there is an
IDE disk and a SCSI disk, and your FreeBSD root partition is on
the SCSI disk, then use a `1' for HDBIAS.
rootnoverify: rootnoverify [DEVICE [HDBIAS]]
Similar to `root', but don't attempt to mount the partition. This
is useful for when an OS is outside of the area of the disk that
GRUB can read, but setting the correct root device is still
desired. Note that the items mentioned in `root' which derived
from attempting the mount will NOT work correctly.
grub>
1.
install命令
命令格式:
install: install [--stage2=STAGE2_FILE] [--force-lba] STAGE1 [d] DEVICE STAGE2 [ADDR]
[p] [CONFIG_FILE] [REAL_CONFIG_FILE]
STAGE1:指定 stage1 文件所在绝对路径。
共同学习,一起讨论!QQ 群:55042715
剩余15页未读,继续阅读
资源评论
- wangqicvc2012-04-23不错,最近在深入的学习系统的启动引导过程,看到了grub的stage3个阶段,这个写的还是比较好,给个4星
- wangjieest2012-06-22文件虽小,都是精华..不错
potianyu
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功