当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 18 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : grub和MBR的疑问!
帖子发表于 : 2007-04-22 17:14 

注册: 2007-04-22 13:14
帖子: 328
送出感谢: 0 次
接收感谢: 2
grub和MBR的疑问!


因为接触 了 LINUX所以也了解了一些系统引导的知识,但是我一直有个疑问,GRUB是引导器,MBR是主引导扇区。常常听到:把GRUB安装在MBR,我听了挺纳闷,一个扇区(512字节)怎么能容纳GRUB?
我个人理解是:所谓GRUB安装在MBR是指,在MBR里做个标记把GRUB所在的分区作为活动分区来引导系统。
还请各位高手指点。


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-04-22 20:51 
头像

注册: 2006-09-13 9:09
帖子: 239
送出感谢: 0 次
接收感谢: 0 次
指针的概念大概能理解吗?
就是那个意思
~_~


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-04-22 20:53 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
MBR里的东西是用来加载/boot区(不一定.具体看安装时的设置)里的grub程序.

至于活动分区..也许被grub无视了


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-04-23 15:07 

注册: 2007-04-22 13:14
帖子: 328
送出感谢: 0 次
接收感谢: 2
最后在红联论坛找到答案:

能正常工作的grub应该包括一下文件:stage1、stage2、*stage1_5、menu.lst。

  其中stage1要被安装(也就是写入)某个硬盘的主引导记录,或者某个活动分区(这个分区要用fdisk标记成可启动的)的启动扇区。stage1的主要的也是唯一的作用就是找到你存放在硬盘上某个地方的stage2文件,来完成后续的工作。

  stage2文件可以存在某个特定的文件系统中,比如你分了一个linux分区,在上面创建一个ext2文件系统,然后把这个文件拷贝到这个分区的某个目录下。也可以把stage2直接存放在硬盘的某个位置,也就是未分区的某个地方。不过,好像没有多少人会这么做吧。

  因为stage1的容量有限(主引导记录MBR和启动扇区的大小只能够是512字节),所以它对文件系统是无法识别的,那如果你把stage2存放在ext2或者fat格式的文件系统上,它如何来找到这个文件呢?这就要用到上面提到的那些stage1_5的文件了,它们负责解释文件系统。你的stage2放在什么格式的文件系统上,就要调用对应的那个stage1_5文件。比如,你把stage2存放在ext2格式的文件系统上,就需要e2fs_stage1_5;stage2存放在fat格式的文件系统上,就需要fat_stage1_5了。


接下来是简单开机过程

①按下电源后,计算机自检(POST),如果硬件设备(CPU、内存、硬盘、光驱、各种卡)都没有问题,BIOS会检查各个硬盘的MBR,看有没有可以执行的代码,如果你把grub安装到第一个硬盘的MBR上,那BIOS就会找到它,然后把控制权交个这段代码(其实就是512字节大小的stage1)。

  ②stage1根据安装时提供的信息,如stage2在什么地方,需不需要加载文件系统的对应的stage1_5文件等,找

到stage2文件,并把控制权交给stage2。

  ③stage2会需要特定位置的grub配置文件menu.lst文件(此文件是/boot/gurb/gurb.conf的链接文件),如果找到,就分析其中的内容,形成操作系统选择菜单(Grub管它叫Menu Interface),如果没有找到menu.lst或者这个文件的格式、内容有错误,那就显示grub的命令行提示符。

  ④当你选择了菜单中相应的条目,或者输入了相关的命令,就可以看是引导系统了。比如引导linux的话,stage2会负责将vmlinuz和initrd(如果有的话)装载到内存,并把控制权交给vmlinuz。

  ⑤linux的内容完成对硬件的初始化,并把控制权交给init程序,完成后续的工作了。


这方面涉及到到系统管理和操作原理方面内容


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-04-23 15:09 

注册: 2007-04-22 13:14
帖子: 328
送出感谢: 0 次
接收感谢: 2
以上可以看出,所谓将GRUB安装在MBR实际上就是把stage1安装在MBR


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-04-23 15:25 

注册: 2006-05-04 20:00
帖子: 194
送出感谢: 0 次
接收感谢: 0 次
同学,可以去看看操作系统概论里关于引导的资料,这里也不怎么说的清楚,现代操作系统一般是2次引导


页首
 用户资料  
 
7 楼 
 文章标题 : 顶!!!!
帖子发表于 : 2008-01-05 13:01 

注册: 2007-10-02 23:53
帖子: 109
送出感谢: 1
接收感谢: 0 次
4楼讲的挺清楚的。

我也一直不太清楚这个问题,还有就是 假如我有2个硬盘,第一个装xp,第二个装ubuntu。

按照4楼的讲解,一个硬盘应该有一个mbr,bios检查每块硬盘的mbr,那么向上面的情况ubuntu会把grub的stage1装到哪里呢? 是哪个是主盘(primany)装到哪里么 还有如果两个硬盘的mbr都有一道程序,那听谁的呢? 是哪个是主盘(primany)听哪个的么?


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-01-05 14:04 
头像

注册: 2007-01-15 17:15
帖子: 3766
送出感谢: 0 次
接收感谢: 0 次
stage 1 在你安装ubuntu 的时候已经在 MBR 里了,如果你两块硬盘,bois 虽然轮训,一般它按照主从顺序来引导,

安装的时候 xp不往 MBR 写,ubuntu 将 grub(stage1)装到 /boot 所在的硬盘 MBR ....

menu.lst 里边通过 map 方式来引导不同的硬盘,

另外,stage1 阶段,就应该能识别 ext2/3 文件系统,或者至少部分识别,证据是,
1> stage1 寻找 stage1_5 ? 别忘了此时文件系统还没挂载,linux 内核还没装呢,它怎么能找到?
2> grub 可以通过 find 来找 ext2 文件系统,fat 。。甚至其他文件系统的文件


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-01-05 15:25 

注册: 2006-10-18 18:03
帖子: 31
送出感谢: 0 次
接收感谢: 0 次
4楼说的是挺清楚的,但我还是有个疑问:stage1放MBR,stage2放文件系统。那stage1_5放哪里呢?难道真的放在某个未分区区域?


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-01-05 16:26 
头像

注册: 2007-01-15 17:15
帖子: 3766
送出感谢: 0 次
接收感谢: 0 次
xyz042 写道:
4楼说的是挺清楚的,但我还是有个疑问:stage1放MBR,stage2放文件系统。那stage1_5放哪里呢?难道真的放在某个未分区区域?


引用:
iblicf@ubuntu:/boot/grub$ ls
total 232K
-rw-r--r-- 1 root 108K 2007-10-24 12:15 stage2
-rw-r--r-- 1 root 9.9K 2007-10-24 12:15 reiserfs_stage1_5
-rw-r--r-- 1 root 9.8K 2007-10-24 12:15 xfs_stage1_5
-rw-r--r-- 1 root 9.0K 2007-10-24 12:15 jfs_stage1_5
-rw-r--r-- 1 root 8.5K 2007-10-24 12:15 e2fs_stage1_5
-rw-r--r-- 1 root 8.3K 2007-10-24 12:15 fat_stage1_5
-rw-r--r-- 1 root 7.7K 2007-10-24 12:15 minix_stage1_5
-rw-r--r-- 1 root 4.7K 2008-01-04 11:16 menu.lst
-rw-r--r-- 1 root 4.7K 2008-01-04 11:16 menu.lst~
-rw-r--r-- 1 root 4.7K 2008-01-04 11:16 menu.lst.bak
-rw-r--r-- 1 root 4.7K 2007-11-05 20:41 menu.lst.backup
drwxr-xr-x 2 root 4.0K 2007-11-05 20:41 splashimages
-rw-r--r-- 1 root 512 2007-10-24 12:15 stage1
-rw-r--r-- 1 root 197 2007-10-24 12:15 default
-rw-r--r-- 1 root 15 2007-10-24 12:15 device.map
-rw-r--r-- 1 root 15 2007-10-24 12:15 installed-version


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-01-05 21:50 
头像

注册: 2007-10-16 19:29
帖子: 296
送出感谢: 0 次
接收感谢: 0 次
问题很经典,学习中。个人见解:MBR中前面是主引导记录,后面还有硬盘分区表才是。继续关注中


_________________
cpu:Intel(R) Core(TM)2 Quad CPU Q6600
mem:2GB DDR2 800 *4
disk:ide320GB+(640GB+640GB)raid
video:Nvidia GTX 260+
network: Atheros AR8121/AR8113
monitor: BENQ FP92W
OS: ubuntu


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2008-01-05 21:59 
头像

注册: 2007-01-15 17:15
帖子: 3766
送出感谢: 0 次
接收感谢: 0 次
没错 512= MBR 446 + 分区表 64+2 (55AA) 结束标志


最后由 iblicf 编辑于 2008-01-07 10:20,总共编辑了 1 次

页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2008-01-05 22:16 
头像

注册: 2007-10-16 19:29
帖子: 296
送出感谢: 0 次
接收感谢: 0 次
根据楼上和http://opens.itpub.net/post/21577/191312确定我是对的,stage1分析分区表后就可以找到stage1_5了嘛


_________________
cpu:Intel(R) Core(TM)2 Quad CPU Q6600
mem:2GB DDR2 800 *4
disk:ide320GB+(640GB+640GB)raid
video:Nvidia GTX 260+
network: Atheros AR8121/AR8113
monitor: BENQ FP92W
OS: ubuntu


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2008-01-07 10:14 
头像

注册: 2007-10-16 19:29
帖子: 296
送出感谢: 0 次
接收感谢: 0 次
iblicf 写道:
没错 512= MBR 446 + 分区表 64

是448,呵呵


_________________
cpu:Intel(R) Core(TM)2 Quad CPU Q6600
mem:2GB DDR2 800 *4
disk:ide320GB+(640GB+640GB)raid
video:Nvidia GTX 260+
network: Atheros AR8121/AR8113
monitor: BENQ FP92W
OS: ubuntu


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2008-01-07 10:19 
头像

注册: 2007-01-15 17:15
帖子: 3766
送出感谢: 0 次
接收感谢: 0 次
446+64+2(55AA)


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 18 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译