mygod100 发表于 2003-11-4 22:59:54

请教:关于引导文件的存放问题?

请问一下,这些引导系统都是装在硬盘的什么地方的?
Grub
Ntloader
Win98/Dos
Sun Solaris For X86
BeOS

我知道,在装linux时,会提示安装Grub/lilo是安装在hda或hdaX的,也就是说是整个硬盘的MBR或某个分区,但是Ntloader和Win98/Dos不是安装在MBR上的吗?那样的话不就会被覆盖了嘛,哪位能不能形象的解释一下这些系统的引导系统是装在硬盘的哪个部位啊?他们之间的关系如何?
因为我最近想装多个系统,还没考虑好引导问题,所以请指教啊?

rainbow_fan 发表于 2003-11-4 23:27:35

除98和dos以外,其他的都是在mbr中加入一句跳转转到高地址去的

mygod100 发表于 2003-11-5 08:28:59

那四个主分区是不是说一个硬盘有四个MBR啊?

mygod100 发表于 2003-11-5 08:41:18

能不能从逻辑结构上讲一下啊,比如说MBR是在哪个扇区啊?四个主引导分区又在什么地方啊?......谢谢

rainbow_fan 发表于 2003-11-5 10:31:05

MBR就是常说的硬盘主引导分区,存放在零面零磁道的第一个扇区中,总共又512个字节,主要存放的是硬盘的分区表以及制定的活动分区(也就是用来引导计算机的那个分区)的信息,包括柱面号磁盘号和扇区号. 而活动分区也就是被激活的主磁盘分区(连扩展分区最多四个),而每个主磁盘分区上的第一个分区就是用来引导放在这个分区中的操作系统的,对与linux来说,lilo和grub都是可以用两种方法引导linux,一种是先放一条跳转指令MBR中,引导从MBR开始跳转到存放linux的某个分区的引导分区中(在那里才是真正存放lilo grub的地方),然后控制权就交给lilo或者grub进行引导,这时候如果在其他分区中如果还有可以用来启动的其他操作系统时,lilo或者grub就会在给出多些的选择,,有些第三方的多系统引导软件,比如system command 和 boot magic包括sfdisk运用的原理都是这个. windows操作系统在安装过程中都会不经同意的占用MBR来引导自己,这也就是为什么装windows和inux共存的系统尽量先装windows后装linux的缘故.

mygod100 发表于 2003-11-5 12:56:12

谢谢,
是不是Windows的引导都放在MBR上的喽?如果这样的话那我激活非win系统分区的话不就也是会引导windows吗?可是事实不是这样的啊!这是怎么回事啊?

rainbow_fan 发表于 2003-11-6 23:21:06

我说的那是有前提的,就是一块硬盘只有一个主分区,剩下的只是扩展分区。如果用分区软件在硬盘上分出了两个或者三个主分区,可以被激活的分区就会有三个。那么对于存放在分区表中的代表每个主分区的数据结构来说,只有该分区被激活,才会把指针移到存放那条跳转语句的基地址上开始执行,不激活当然也就不会跳转了,呵呵

ilrainyday 发表于 2003-11-7 00:48:59

Grub---MBR or First sector of boot partition
Ntloader------ First sector(boot sector) of partition
Win98/Dos------ First sector(boot sector) of partition
Sun Solaris For X86 -----没用过
BeOS   ----没用过

MBR只有一个,boot sector你有几个分区就有几个,GRUB和Ntloader都可以采用一种叫做Link load的方法来引导,对于GRUB,那么MBR里的code就是stage1,由stage1来装入stage2或者stage1.5,或者别的OS的boot sector。

对于MBR中的partition table,一共是64bit,每个表项16bit,其中一个字节表示这个primary partiton是否为active,如果是,那么在读取对应的磁盘地址之后,通过一个far jump跳转到对应分区的boot sector。
页: [1]
查看完整版本: 请教:关于引导文件的存放问题?