DOS 引导区: OFFSET 0x000 JMP xx Near jump into the program code 0x003 Disk parameters 0x03E Program code loading the DOS kernel 0x1FE 0xAA55 Magic number for BIOS 可见,引导区的结构相对比较简单。它的长度总是512字节。以上,磁盘参数只对DOS有意义。重要的是引导区从0开始,以BIOS的magic number 结束。
所以MBR也应该和上面介绍的结构一样:从0开始,以BIOS的magic number 结束在MBR的最后部分,有分区表。如下图:
OFFSET Length 0x000 0x1BE code loading and starting the boot sector of the active partitian 0x1BE 0x010 partition1 0x1CE 0x010 partition2 0x1DE 0x010 partition3 0x1EE 0x010 partition4 0x1FE 0x0012 0xAA55 Disk parameters
每个分区信息占16字节,结构如下: 1 BOOT Boot flag: 0=not active ,0x80 active 1 HD Begin:head number 2 SEC CYL Begin:sector and cylinder number of boot sector 1 SYS System Code:0x83 linux , 0x82 linux swap etc. 1 HD End:head number 2 SEC CYL End: sector and cylinder number of boot sector 4 low byte high byte Relative sector number of start sector 4 low byte high byte Number of sectors in the partition 所以硬盘可以有4个分区。这四个分区叫做主分区:primary prititions.假如它们不够用,可以设置所谓的扩展分区。 扩展分区包含至少一个逻辑分区。扩展分区的第一个扇区结构类似MBR,它的分区表的第一表项对应第一个逻辑分区。如果存在第二个逻辑分区,那么分区表的第二个表项就包含了一个指针。这个指针指向第一个逻辑分区后面的一个地址。这个地址包含一个分区表。该分区表的第一表项对应第二个逻辑分区。这样就组成一个链表,从而扩展分区可以有任意多的逻辑分区。
2 LILO:the linux loader LILO引导扇区包括一个分区表的空间,所以,LILO即可以安装在MBR中,也可以安装在某个分区的引导扇区。LILO拥有DOS引导扇区的所有功能,而且,它还可以引导逻辑扇区和第二硬盘分区。LILO还可以和另外的引导者合作(例如:NT loader),这样,用户就可以有很多选择。 (注:以下几个标题,为防止引起歧义,用原文) 2.1 LILO started by MS-DOS MBR 如果系统至少有一个linux主分区,(非交换区,且在第一硬盘上),那么LILO就可以安装在这些分区中的一个。当 LILO对应分区被激活后,引导过程如下: BIOS 读入 MBR MBR 读入 活跃主分区:LILO所在的分区。 LILO 引导Linux或另外的操作系统。 要引导其它OS且不用LILO很简单,激活那个分区。Linux分区没有任何变化,非常安全。
2.2 LILO started by a boot manager 假如用户不想删除老的boot manager,或者某个OS LILO不能引导,可以考虑该途径。 1. 假如boot manager可以引导扩展区,那儿是LILO的好去处。 2. 假如 boot manager 可以引导第二硬盘分区,linux可以装在第二硬盘上。 3 有些 boot manager 甚至可以引导逻辑分区,那LILO就可以装在逻辑分区上。 当然,也要注意以下情况: 1 某些操作系统直接改写MBR,这会将原来的boot manager破坏。 2 重新分区会破坏扩展分区的引导扇区,这是LILO可能要重装。 当安装新的系统时,是否要重新安装(linux)依靠新的boot manager,要么LILO引导扇区被注销,要么boot manager 为它提供一个引导项。重新分区或分区格式化会将LILO和linux全部删除。
2.4 LILO 文件 与LILO有关的文件通常放在/boot/下,配置文件lilo.conf在/etc/下。包含实际引导系统信息的映射文件有/sbin/lilo安装。对于任何LILO安装,配置文件应该被定置以适合个人需要。 The configuration file:配置文件 基本上,配置文件是一些变量赋值。每一行包含一个标志变量或一个变量赋值.配置文件被特殊的变量赋值分成几个区,每个区引导一个linux或其它OS. 下面解释常见的行: