转自:http://www.cnblogs.com/b2tang/archive/2009/07/14/1523110.html
一、基本概念
1、BIOS的概念
BIOS(Basic Input/Output System,基本输入输出系统)全称是ROM-BIOS,是只读存储器基本输入/输出系统的简写,它实际是一组被固化到电脑中,为电脑提供最低级最直接的硬件控制的程序,它是连通软件程序和硬件设备之间的枢纽,通俗地说,BIOS是硬件与软件程序之间的一个“转换器”或者说是接口(虽然它本身也只是一个程序),负责解决硬件的即时要求,并按软件对硬件的操作要求具体执行。
BIOS,它在计算机系统中起着非常重要的作用。一块主板性能优越与否,很大程度上取决于主板上的BIOS管理功能是否先进。
BIOS芯片,在主板上表现为一块长方型或正方型芯片,BIOS中主要存放:
1、自诊断程序:通过读取CMOS RAM中的内容识别硬件配置,并对其进行自检和初始化;
2、CMOS设置程序:引导过程中,用特殊热键启动,进行设置后,存入CMOS RAM中;
3、系统自举装载程序:在自检成功后将磁盘相对0道0扇区上的引导程序装入内存,让其运行以装入DOS系统; 主要I/O设备的驱动程序和中断服务;
由于BIOS直接和系统硬件资源打交道,因此总是针对某一类型的硬件系统,而各种硬件系统又各有不同,所以存在各种不同种类的BIOS,随着硬件技术的发展,同一种BIOS也先后出现了不同的版本,新版本的BIOS比起老版本来说,功能更强。
2、MBR的概念
主引导扇区位于硬盘的0磁道0柱面1扇区,共512bytes,由三大部分组成:
硬盘主引导记录MBR(Master Boot Record)占446bytes
分区表DPT(Disk Partition Table)占64bytes
硬盘有效标志(Magic Number)占2bytes。AA和55被称为幻数(Magic Number),BOIS读取MBR的时候总是检查最后是不是有这两个幻数,如果没有就被认为是一个没有被分区的硬盘
主引导扇区包含的MBR、DPT、MN,这3个区域是操作系统无关的,在每块硬盘上都存在;MBR是一段可执行程序,由各个操作系统写入不同的代码。MBR的存储空间限制为446字节,MBR所做的唯一的事情就是装载第二引导装载程序。Windows产生的MBR装载运行PBR;GRUB产生的MBR装载运行grldr。
3、操作系统引导过程
主引导记录(MasterBootRecord,MBR):512字节,位于硬盘的第一个扇区;可存放一小段程序及主分区表。MBR的boot code占用其中的前446个字节,随后的64个字节为DPT(Disk Partition Table,硬盘分区表)。
XP系统引导过程是,BIOS自检后,DPT把系统控制权交给硬盘第一个分区的PBR(Partition Boot Record),XP的PBR会去找这个分区的ntldr,之后是boot.ini,选择启动的系统后load注册表,交控制权给ntoskrnl,然后加载驱动,系统配置等等。
Vista的PBR不再找ntldr,而是找bootmgr,这个文件也是保存在硬盘第一个分区的根目录下.之后,bootmgr去找同路径下的\boot\BCD. BCD这个文件实际是一个注册表文件,里面的数据保存了系统的引导信息,如果是多系统引导,会提供引导的界面内容. 如果是单Vista系统,控制权会交给winload.exe,之后再去找ntoskrnl.exe.
扩展引导记录(ExtendedBootRecord,EBR):512字节,位于扩展分区的第一个扇区,存放逻辑分区信息。
分区引导区(PartitionBootRecord,PBR):512字节,位于每个非扩展主分区及每个逻辑分区的第一个扇区;可存放小段程序。
活动分区(ActivePartition):可将所有主分区和逻辑分区中的一个标识为Active,表示系统启动时即加载运行其PBR程序的分区。
DBR : DOS引导记录(DOS Boot Record)应称为OBR(OS Boot Record),意思是活动分区的PBR,即操作系统引导记录。
二、分区概念
一个硬盘的分区有Primary(主分区)、Extended(扩展分区)、Logical(逻辑分区)三种。
1、主分区
如果你只有一个硬盘,那么这个硬盘肯定应该有一个主分区,以前DOS必须在主分区才能启动。建立主分区的最大用途便是安装操作系统,另外如果你有多个主分区,那么只有一个可以设置为活动分区(Active),操作系统就是从这个分区启动的,当然了,只允许有一个活动分区,所谓的“激活分区”就是将某个主分区设置为活动分区。
2、扩展分区
因为主分区有先天的限制(最多只能有4个),扩展分区就是为了解决这种限制应运而生的,但是需要记住的是:它可是不能直接用来保存资料的,扩展分区的主要功能就是让你在其中建立逻辑分区,而且事实上只能建立20多个。
3、逻辑分区(逻辑驱动器)
从上面的介绍你可以了解到,逻辑分区并不是独立的分区,它是建立在扩展分区中的二级分区,而且在DOS/WINDOWS下,这样的一个逻辑分区对应于一个逻辑驱动器(Logical Driver),我们平时说的D: E:........一般指的就是这种逻辑驱动器。
4、分区的限制
一个硬盘最多只能划分为4个主分区,或者是3个主分区加上一个扩展分区,这是因为在硬盘的开头,也就是主引导扇区总共512字节存放着MBR占446bytes,DPT分区表占64bytes以及硬盘有效标志占2bytes,由于记录空间只有那么大,所以也只能记录这4个分区的信息。
三、一般单操作系统启动过程
1.BIOS加载并启动保存在硬盘MBR中的引导程序,该引导程序一般在操作系统安装时写入
2.MBR引导程序扫描所有分区表,找出活动分区(WindowsMBR程序只会在MBR中的分区表中查找活动分区,即Windows只能安装在主分区;Linux无此限制)
3.MBR引导程序加载并启动保存在活动分区PBR中的引导程序
4.活动分区PBR中的引导程序加载并启动安装在其上的操作系统(例如对Win98,定位并执行io.sys;对WinXP,定位并执行ntoskrnl.exe;对于Linux,定位并执行vmlinuz-xxx内核映像)。显然PBR引导程序与操作系统密切相关,一般在操作系统安装时写入。
总结为:BIOS–>MBR—>;PBR–>OS files
四、修改标准过程实现按需启动指定操作系统
使用BootLoader等软件置换MBR中的引导程序或PBR中的引导程序,如Windows的NTBoot Loader,Linux下的Lilo、Grub等。Windows NTBoot Loader一般用于在一台机器上安装多个Windows系统;Lilo或Grub用于在一台机器上安装多个Linux系统或同时安装Linux和Windows系统。
五、MBR损坏及修复
mbr的损坏不会危及数据,复也很简单,重写mbr就是,dos下面的fdisk/mbr即可修改DOS引导,像DISKGEN等工具修改MBR更是随手拈来。
六、从U盘或移动硬盘启动操作系统的步骤
1、U盘格式化后(FAT32或NTFS都可以),把U盘激活成活动分区(可使用DiskGenius硬盘分区软件)
2、写入U盘活动分区的PBR,以达到PBR读取bootmgr文件的目的(可使用Vista或windows7自带的 bootsect.exe 进行操作)
3、复制相应启动文件到U盘根目录
4、修改bios启动顺序从U盘启动即可
移动硬盘:开机识别成 USB-HDD
在XP中格式化成FAT32、NTFS格式的U盘:开机出现在BIOS的Removable Device中,识别成USB-ZIP,默认为主分区非活动分区。可以用DiskGenius激活为活动分区,再开机识别为USB-HDD。
量产成HDD的U盘:开机出现在BIOS的Hard Disk中,识别成USB-HDD,默认自动设置为活动分区。