zoukankan      html  css  js  c++  java
  • 系统启动过程和系统安装过程

         一、基本概念
        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去找同路径下的ootBCD. 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,默认自动设置为活动分区。

    操作系统是由不同类型的文件构成的,只有保持文件的完整才能保持系统良好得运行。一般来说,系统如果出现问题,最简单的方法就是重装系统。我们重装系统实际上也是重新构建系统文件的过程。我们通常说的系统重装主要有两种方式:完全安装和镜像安装。
        完全安装是XP以前的操作系统的构架,主要是把系统所需要的文件压缩成为xx.xx_之类的文件,这样你在Windows安装盘内的I386文件夹就会看到很多这样的文件。镜像安装主要是指利用Windows的一个syspack.exe的工具将电脑的设置状态更改至最初状态,这个工具主要是微软用于某些操作系统的疑难解决而开发的,但是由于这个过程中基本上去掉了主机的基本硬件信息,所以很快成为系统克隆的必备工具。
        一般来说,我们在安装XP的时候基本都是采用的克隆安装的方法,一是因为省时间,二是因为可以集成很多实用软件,方便用户。出于这样的背景之下,诺顿的Ghost镜像备份还原工具就派上了用用途,因为其能实现极限压缩,所以Ghost版本的镜像安装方法很快流行起来。我们一般的镜像安装的实质都是在目标机上先复制文件,再重新启动计算机更新注册表。之前吕思君提出为什么把镜像文件提取到其他地方,然后复制到活动分区也能启动答案就在这里。其实如果我们,把一台syspack.exe后的主机中的系统文件直接复制到目标机上然后重启更新也是能实现重装的。
        后来的Windows longhorn也是采取这种镜像安装的方法来实现的,其镜像格式为wim,Wim较Ghost的优势体现在其使用了文件连接技术(easyboot中也使用了此技术),能将接近8G的文件压缩成为一个2G左右的文件,而且其还能实现多版本之间的文件连接。之前有人在网上提出Wim的出现就意味着Ghost的死期即将到来,虽然这有点夸张,但是却真实的说明了Wim文件的优势。
    至于说到完全安装的过程,其实与镜像安装的最主要差异是在于微软在XP中是将每个文件都压缩然后解压,这在安装过程中是非常浪费时间的。但是无论如何,微软的之所以没有在XP中提出镜像安装的技术,并不是微软没有这项技术(微软开发出syspack.exe就是明证)。在一个还没有完全成熟而且具有垄断潜力的技术(比如Wim基于文件的安装格式)出来之前,微软是不愿意把这项镜像安装的技术主动透露出来的。Windows longhorn以后的Windows系统都让世人已经明显有着对于操作系统和Wim有着深刻的简介,试想一下,微软如果当年开发Windows XP也采用一个镜像安装的方式,那XP的安装方式明显会抢掉XP系统功能方面的风头。更何况微软自身的syspack.exe本身带着很大缺点。
    安装系统和安装软件是一样的道理,将文件复制到指定盘符。不同于软件的是,操作系统只能依赖于自己自带的启动PE或其他引导,而软件可以使用操作系统。
  • 相关阅读:
    VS_VERSION_INFO
    ocx中调用ocx
    MFC注册窗口类以及FindWindow按窗口类名查询(避免用#32770获取窗口句柄)
    VS2010制作dll
    CComboBox自动匹配
    ado连接mysql和ORACLE
    正则表达式
    ocx 中使用CImage和CComPtr
    VC ADO “ParameterDirectionEnum”:“enum” 类型等 重定义问题 解决方案
    VC使用ADO连接远程oracle数据库
  • 原文地址:https://www.cnblogs.com/liangxiaofeng/p/4955269.html
Copyright © 2011-2022 走看看