Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1118767
  • 博文数量: 241
  • 博客积分: 4385
  • 博客等级: 上校
  • 技术积分: 2383
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-07 23:13
文章分类

全部博文(241)

文章存档

2013年(1)

2012年(8)

2011年(62)

2010年(109)

2009年(61)

分类: LINUX

2011-07-15 15:50:31

[原创]ubuntu 0804 grub详解 -- 转载请申明引用地址

背景:
安装ubuntu0804,第一个分区是swap分区(/dev/sda1),第二个分区是"boot"分区(dev/sda2),第三个分区是跟目录"/"分区(/dev/sda3)
如果"boot"分区和"/"分区在同一个分区,请根据自身实际情况进行修改

1:grub的三个主要引导文件
(1)/boot/grub/stage1与mbr一样也是512bytes大小,前446bytes也与mbr相同,
即stage1文件是bootloader的本地备份,但stage1文件446bytes之后64bytes的partition tables是无效的,
因为grub在安装mbr的时候会根据实际分区情况来填写mbr中的partition tables
stage1文件的最后两个bytes与mbr一样也是"0x55aa"
(2)/boot/grub/**_stage1_5是为了让stage1能够找到文件系统中的stage2文件
这句话有以下几层含义:
stage1阶段grub是不能识别任何文件系统的
stage2文件可以放在任意文件系统的任意目录下(但文件系统和目录要在安装grub时写入stage1_5文件)
那么会有如下疑问:stage1不能识别文件系统,那stage1怎么找到stage1_5的呢?
回答是:stage1_5是在安装grub时识别文件系统类型后写入mbr后的连续扇区的,即位置是确定的
所以可以说/boot/grub/**_stage1_5这些文件也与stage1一样,只是一个本地备份,是可以删除的
(3)/boot/grub/stage2才是真正实现所有grub功能的文件!stage1和stage1_5文件都是为了引导它而存在的
stage2主要实现的功能如下:
a:显示grub引导画面的框架
b:读取menu.lst配置文件的信息
c:进入grub命令行模式编辑启动项
d:根据用户选择以及配置文件引导kernel和initrd
e:在引导kernel和initrd结束后交出操作系统控制权

2:grub的配置文件menu.lst详解
(1)default 
选择默认选中的启动项,从0开始计数,即0表示默认选择第一个启动项
(2)timeout
超时时间,超过设置的超时时间后,将启动默认的启动项
(3)hidemenu
是否隐藏grub的启动选项,如果隐藏的话按esc键可取消隐藏
(4)密码和背景图片
在此没有详细研究(具体可以google参考)
(5)启动项,每个启动项的格式如下
title 启动项显示的提示字符
root (hd0,1)
等同于/dev/sda2,表示的是kernel和initrd所在的分区,即"/boot"分区
kernel /boot/vmlinuz-2.6.24-16-generic root=UUID=628c0439-e356-4384-ab85-fec418eecfe6 ro quiet splash
/boot/vmlinuz-2.6.24-16-generic是指kernel文件的位置 
root=UUID=**等同于root=/dev/sda3指的是跟目录"/"所在的分区
ro quiet splash是一些启动参数(具体可以google参考)
initrd /boot/initrd.img-2.6.24-16-generic
/boot/initrd.img-2.6.24-16-generic是指initrd文件的位置
quiet 启动参数(具体可以google参考)

阅读(928) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~