黑客揭秘与反黑实战:基础入门不求人
上QQ阅读APP看书,第一时间看更新

2.2 安装的常识

随着时代的发展,操作系统的安装变得越来越简单、越来越智能化,需要用户干预的地方越来越少了。但是对于初学者来说,自行安装操作系统之前,有一些基础知识是必须要掌握的。如果没有做好准备就自行安装,则很有可能安装失败。下面介绍一下安装操作系统之前需要掌握的基本知识。

1. BIOS

基本输入输出系统(Basic Input Output System,BIOS)是计算机中最重要的组成部分之一,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出程序、开机后自检程序和系统自启动程序,它可以从CMOS中读写系统设置的具体信息。其主要功能是为计算机提供最底层、最直接的硬件设置和控制。使用BIOS设置程序还可以排除系统故障或诊断系统问题。

BIOS应该说是连接操作系统与硬件设备的一座“桥梁”,负责满足硬件的即时要求。

BIOS设置程序是储存在BIOS芯片中的,BIOS芯片是主板上一块长方形或正方形芯片。早期的芯片有只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)等。随着科技的进步和操作系统对硬件更高的响应要求,现在的BIOS程序一般存储在非易失闪存(NORFlash)芯片中,NORFlash除了容量比EEPROM更大外,主要是NORFlash具有写入功能,运行计算机通过软件的方式进行BIOS的更新,而无须额外的硬件支持(通常EEPROM的擦写需要不同的电压和条件),且写入速度快。

2. BIOS的主要功能

•中断服务程序。中断服务程序是计算机系统软、硬件之间的一个可编程接口,用于程序软件功能与计算机硬件实现的衔接。操作系统对外围设备的管理既建立在中断服务程序的基础上,也可以通过对INT 5、INT 13等中断的访问直接调用BIOS。

•系统设置程序。计算机部件配置信息是放在一块可读写的CMOS芯片中的,它保存着系统CPU、硬盘驱动器、显示器、键盘等部件的信息。关机后,系统通过一块后备电池向CMOS供电以保持其中的信息。如果CMOS中关于计算机的配置信息不正确,会导致系统性能降低、硬件不能识别,并由此引发一系列的软硬件故障。在BIOS ROM芯片中装有系统设置程序,用来设置CMOS中的参数。这个程序一般在开机时按下一个或一组键即可进入,它提供了良好的界面供用户使用。这个设置CMOS参数的过程,也称为BIOS设置。新购计算机或新增了部件的系统,都需进行BIOS设置。

•上电自检(Power On Self Test,POST)。计算机接通电源后,系统将有一个对内部各个设备进行检查的过程,这是由POST程序来完成的。这也是BIOS的一个功能。POST自检通过读取存储在CMOS中的硬件信息识别硬件配置,同时对其进行检测和初始化。自检中若发现问题,系统将给出提示信息或鸣笛警告。

3. 进入BIOS

有时候需要修改BIOS的信息来进行操作系统的安装,那么如何进入BIOS界面呢?当打开计算机时,屏幕上一般会出现品牌机启动画面或主板Logo画面,在屏幕的左下角一般都有一行字提示如何进入BIOS设置。按照提示按键盘上相应的键即可。

下面列出了部分品牌主板和计算机进入BIOS设置界面的快捷键。同一品牌的计算机由于生产时间不同,进入BIOS的方式也不相同,如果按照提供的快捷键无法进入,可参考主板或计算机的说明书、帮助文档等。

DIY组装机主板类:

华硕主板 F8

技嘉主板 F12

微星主板 F11

映泰主板 F9

梅捷主板 Esc或F12

七彩虹主板 Esc或F11

华擎主板 F11

斯巴达卡主板 ESC

昂达主板 F11

双敏主板 Esc

翔升主板 F10

精英主板 Esc或F11

品牌笔记本:

联想笔记本 F12

宏碁笔记本 F12

华硕笔记本 Esc

惠普笔记本 F9

戴尔笔记本 F12

神舟笔记本 F12

东芝笔记本 F12

三星笔记本 F12

品牌台式机:

联想台式机 F12

惠普台式机 F12

宏碁台式机 F12

戴尔台式机 Esc

神舟台式机 F12

华硕台式机 F8

方正台式机 F12

清华同方台式机 F12

海尔台式机 F12

明基台式机 F8

由于生产BIOS的厂商很多,而且品牌机会对BIOS进行自己的个性化定制,所以BIOS的界面各式各样。下面以某品牌计算机为例介绍BIOS选项,其他品牌计算机可能在设置上有不一样的地方,但是大部分设置都是通用的。

•Main标签。主要用来设置时间和日期。显示计算机的硬件相关信息,如序列号、CPU型号、CPU速度、内存大小等。

•Advanced标签。主要用来设置BIOS的高级选项。如启动方式、开机显示、USB选项及硬盘工作模式等。

•Security标签。主要用来进行与安全相关的设置。可以设置BIOS管理员密码、开机密码、硬盘密码。

•Boot标签。用来设置计算机使用启动设备的顺序。

•Exit标签。退出BIOS设置。在这里可以选择保存当前的修改,或者放弃修改直接退出。如果BIOS设置出现问题,还可以在这个界面载入初始设置。

4. 主引导记录

计算机开机后,BIOS首先进行自检和初始化,然后开始准备操作系统数据。这时就需要访问硬盘上的主引导记录(Main Boot Record,MBR)了。

主引导记录是位于磁盘最前边的一段引导代码。它负责磁盘操作系统对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它是由磁盘操作系统在对硬盘进行初始化时产生的。

通常,将包含MBR引导代码的扇区称为主引导扇区。在这一扇区中,引导代码占有绝大部分的空间,故将该扇区称为MBR扇区(简称MBR)。由于这一扇区是管理整个磁盘空间的一个特殊空间,它不属于磁盘上的任何分区,因而分区空间内的格式化命令不能清除主引导记录的任何信息。

5. 主引导记录的组成

•启动代码。主引导记录最开头是第一阶段引导代码。其中的硬盘引导程序的主要作用是检查分区表是否正确,并且在系统硬件完成自检以后将控制权交给硬盘上的引导程序(如GNU GRUB)。它不依赖任何操作系统,而且启动代码也是可以改变的,从而能够实现多系统引导。

•硬盘分区表。硬盘分区表占据主引导扇区的64B(偏移01BEH~01FDH),可以对4个分区的信息进行描述,其中每个分区的信息占据16B。具体每个字节的定义可以参见硬盘分区结构信息。

•结束标志。结束标志字55 AA(偏移1FEH~1FFH)的最后两个字节,是检验主引导记录是否有效的标志。

6. 分区表

分区表是存储磁盘分区信息的一段区域。

传统的分区方案(称为MBR分区方案)是将分区信息保存到磁盘的第一个扇区(MBR扇区)中的64B,每个分区项占用16B,这16B中存有活动状态标志、文件系统标识、起止柱面号、磁头号、扇区号、隐含扇区数目(4B)、分区总扇区数目(4B)等内容。由于MBR扇区只有64B用于分区表,所以只能记录4个分区的信息。这就是硬盘主分区数目不能超过4个的原因。后来为了支持更多的分区,引入了扩展分区及逻辑分区的概念。但每个分区项仍用16个字节存储。

7. 磁盘分区

计算机中存放信息的主要存储设备就是硬盘,但是硬盘不能直接使用,必须对硬盘进行分割,分割成的一块一块的硬盘区域就是磁盘分区。在传统的磁盘管理中,将一个硬盘分为两大类分区,即主分区和扩展分区。

•主分区:主分区通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。其中的主引导程序是它的一部分,此段程序主要用于检测硬盘分区的正确性,并确定活动分区,负责把引导权移交给活动分区的操作系统。如果这个分区的数据损坏将无法从硬盘启动操作系统。

•扩展分区:除主分区外的其他用于存储的磁盘区域,称为扩展分区。扩展分区不可以直接进行存储数据,它需要分成逻辑磁盘才可以用来读写数据。

8. UEFI——新的计算机硬件接口

统一的可扩展固件接口(Unified Extensible Firmware Interface,UEFI)是一种详细描述接口类型的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上。

UEFI是以EFI1.10为基础发展起来的。EFI中文名为可扩展固件接口,是Intel为PC固件的体系结构、接口和服务提出的建议标准。其主要目的是为了提供一组在OS加载之前(启动前)在所有平台上一致的、正确指定的启动服务,被看作是有近20多年历史的BIOS的继任者。

与传统的BIOS相比,UEFI有以下优点。

•纠错特性。与BIOS显著不同的是,UEFI是用模块化、C语言风格的参数堆栈传递方式、动态链接的形式构建系统,它比BIOS更易于实现,容错和纠错特性也更强,从而缩短了系统研发的时间。更加重要的是,它运行于32bit或64bit模式,突破了传统16bit代码的寻址能力,达到处理器的最大寻址,从而克服了BIOS代码运行缓慢的弊端。

•兼容性。与BIOS不同的是,UEFI体系的驱动并不是由直接运行在CPU上的代码组成的,而是用EFI Byte Code(EFI字节代码)编写而成的。Java是以“Byte Code”形式存在的,正是这种没有一步到位的中间性机制,使Java可以在多种平台上运行。UEFI也借鉴了类似的做法。EFI Byte Code是一组用于UEFI驱动的虚拟机指令,必须在UEFI驱动运行环境下解释运行,由此保证了充分的向下兼容性。一个带有UEFI驱动的扩展设备既可以安装在使用安卓的系统中,也可以安装在支持UEFI的新PC系统中,它的UEFI驱动不必重新编写,这样就无须考虑系统升级后的兼容性问题。基于解释引擎的执行机制,还大大降低了UEFI驱动编写的复杂门槛,所有的PC部件提供商都可以参与。

•鼠标操作。UEFI内置图形驱动功能,可以提供一个高分辨率的彩色图形环境,用户进入后能用鼠标单击调整配置,一切就像操作Windows系统下的应用软件一样简便。

•可扩展性。UEFI使用模块化设计,它在逻辑上分为硬件控制与操作系统(OS)软件管理两部分,硬件控制为所有UEFI版本所共有,而OS软件管理其实是一个可编程的开放接口。借助这个接口,主板厂商可以实现各种丰富的功能。比如各种备份及诊断功能可通过UEFI加以实现,主板或固件厂商可以将它们作为自身产品的一大卖点。UEFI也提供了强大的联网功能,其他用户可以对你的主机进行远程故障诊断,而这一切并不需要进入操作系统。

因为UEFI标准出现得比较晚,所以如果启用了UEFI,则只能安装特定版本的Windows。Windows支持UEFI的情况如图2-1所示。

图2-1

9. MBR分区表和GPT分区表

由于磁盘容量越来越大,传统的MBR分区表(主引导记录)已经不能满足大容量磁盘的需求。传统的MBR分区表只能识别磁盘前面的2.2TB左右的空间,对于后面的多余空间只能浪费掉了,而对于单盘4TB的磁盘,只能利用一半的容量。基于此,就有了全局唯一标识分区表(GPT)。

此外,MBR分区表只能支持4个主分区或者3个主分区+1个扩展分区(包含随意数目的逻辑分区),而GPT分区表在Windows下可以支持多达128个主分区。

下面给大家介绍一下MBR和GPT的详细区别。

(1)MBR分区表。

在传统硬盘分区模式中,引导扇区是每个分区(Partition)的第一扇区,而主引导扇区是硬盘的第一扇区。它由3部分组成,即主引导记录MBR、硬盘分区表DPT和硬盘有效标志。在总共512B的主引导扇区里MBR占446B,第二部分是Partition table区(分区表),即DPT,占64B,硬盘中有多少分区及每一分区的大小都记在其中。第三部分是Magic number,占2B,固定为55AA。

一个扇区的硬盘主引导记录MBR由3部分组成。

•主引导程序(偏移地址0000H~0088H),它负责从活动分区中装载,并运行系统引导程序。

•分区表(Disk Partition Table,DPT)含4个分区项,偏移地址01BEH~01FDH,每个分区表项长16B,共64B,为分区项1、分区项2、分区项3和分区项4。

•结束标志字,偏移地址01FE~01FF的2B值为结束标志55AA,如果该标志错误,系统就不能启动。

(2)GPT分区表。

GPT的分区信息是在GPT分区表中,而不像MBR那样在主引导扇区,为保护GPT不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一个保护分区(Protective MBR)的MBR分区表(此分区并不必要)。这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,在Windows磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区,而不是错误地当成一个未分区的磁盘。

另外,为了保护分区表,GPT的分区信息在每个分区的头部和尾部各保存了一份,以便分区表丢失后用于恢复。

对基于x86/64的Windows想要从GPT磁盘启动,主板的芯片组必须支持UEFI(这是强制性的,但是如果仅把GPT用作数据盘则无此限制)。例如,Windows 8/Windows 8.1原生支持从UEFI引导的GPT分区表上启动,大多数预装Windows 8系统的计算机也逐渐采用了GPT分区表。至于如何判断主板芯片组是否支持UEFI,一般可以查阅主板说明书或厂商的网址,也可以通过查看BIOS设置里面是否有UEFI字样。

10. 配置基于UEFI/GPT的硬盘驱动器分区

当在基于UEFI的计算机上安装Windows时,必须使用GUID分区表(GPT)文件系统对包括Windows分区的硬盘驱动器进行格式化。其他驱动器可以使用GPT或主启动记录(MBR)文件格式。接下来为大家介绍Windows的工具分区及系统分区。

(1)Windows RE工具分区。

•该分区必须至少为300MB。

•该分区必须为Windows RE工具映像(winre.wim,至少为250MB)分配空间,此外,还要有足够的可用空间以便备份实用程序捕获到该分区。

•如果该分区小于500MB,则必须至少具有50MB的可用空间。

•如果该分区等于或大于500MB,则必须至少具有320MB的可用空间。

•如果该分区大于1GB,建议应至少具有1GB的可用空间。

•该分区必须使用Type ID:DE94BBA4-06D1-4D40-A16A-BFD50179D6AC。

•Windows RE工具应处于独立分区(而非Windows分区),以便为自动故障转移和启动Windows BitLocker驱动器加密的分区提供支持。

(2)系统分区。

•计算机应含有一个系统分区。在可扩展固件接口(EFI)和UEFI系统上,这也可称为EFI系统分区或ESP。该分区通常存储在主硬盘驱动器上。计算机启动到该分区。

•该分区的最小规格为100MB,必须使用FAT32文件格式进行格式化。

•该分区由操作系统加以管理,不应含有任何其他文件,包括Windows RE工具。

•对于Advanced Format 4K Native(4-KB-per-sector)驱动器,由于FAT32文件格式的限制,大小最小为260MB。FAT32驱动器的最小分区大小可按以下方式计算:扇区大小(4KB)×65527=256MB。

•Advanced Format 512e驱动器不受此限制的影响,因为其模拟扇区大小为512B。512B×65527=32MB,比该分区的最小大小100MB要小。

下面介绍默认分区配置和建议分区配置。

默认配置:Windows RE工具、系统、MSR和Windows分区。

Windows安装程序默认配置包含Windows恢复环境(Windows RE)工具分区、系统分区、MSR和Windows分区。该配置可让BitLocker Drive Encryption投入使用,并将Windows RE存储在隐藏的系统分区中。通过使用该配置,可以将系统工具(如Windows BitLocker驱动器加密和Windows RE)添加到自定义Windows安装。

建议配置包括Windows RE工具分区、系统分区、MSR、Windows分区和恢复映像分区。

在添加Windows分区之前添加Windows RE工具分区和系统分区。最后添加包含恢复映像的分区。在诸如删除恢复映像分区或更改Windows分区大小的此类操作期间,这一分区顺序有助于维护系统和Windows RE工具分区的安全。

11. 检测计算机是使用UEFI固件还是传统BIOS固件

要查看计算机固件的设置,进入开机设置界面是最好的方法,如果进入操作系统后还想查看固件信息,通过以下步骤实现。

(1)同时按键盘上的“Windows”键和字母“R”键,打开“运行”对话框,输入msinfo32并按回车键,如图2-2所示。

图2-2

(2)在弹出的“系统信息”窗口中可以看到BIOS模式。如果值为“传统”,则为BIOS固件;如果值是“UEFI”,则使用的是UEFI固件,如图2-3所示。

图2-3

12. Windows的启动过程

掌握Windows的启动过程会对以后计算机问题的分析有很大的帮助,下面就简要介绍分别从BIOS和UEFI启动Windows的过程及Windows 10的安全启动过程。

从BIOS启动的过程

(1)打开电源后,BIOS首先执行加电自检(POST)过程,如果自检出现问题,此时无法启动计算机,并且系统会报警。自检完成后,BIOS开始读取启动设备启动数据。如果是从硬盘启动,BIOS会读取硬盘中的主引导记录(MBR),然后由主引导记录进行下一步操作。

(2)主引导记录(MBR)搜索分区表并找到活动分区,然后读取活动分区的启动管理器(bootmgr),并把它写入内存执行,这一步之后,主引导记录的操作完成,下一步由bootmgr进行以后的操作。

(3)启动管理器执行活动分区boot目录下的启动配置数据(BCD),启动配置数据中存储了操作系统启动时需要的各种配置。如果有多个操作系统,则启动管理器会让用户选择要启动的操作系统。如果只有一个操作系统,则启动管理器直接启动这个操作系统。

(4)启动管理器运行Windows\system32目录下的winload.exe程序,然后启动管理器的任务就结束了。Winload程序会完成后续的启动过程。

从UEFI启动Windows的过程

(1)打开电源后,UEFI模块会读取启动分区内的bootmgfw.efi文件并执行它,然后由bootmgfw执行后续的操作。

(2)bootmgfw程序读取分区内的BCD文件(启动配置数据)。此时和BIOS启动一样,如果有多个操作系统,会提示用户选择要启动的操作系统,如果只有一个,则默认启动当前操作系统。

(3)然后bootmgfw读取winload.efi文件并启动winload程序,由winload程序完成后续的启动过程。

Windows 10的安全启动

安全启动是在UEFI 2.3.1中引入的,安全启动定义了平台固件如何管理安全证书、如何进行固件验证及定义固件与操作系统之间的接口(协议)。

Microsoft的平台完整性体系结构利用UEFI安全启动及固件中存储的证书与平台固件之间创建一个信任根。随着恶意软件的快速演变,恶意软件正在将启动路径作为首选攻击目标。此类攻击很难防范,因为恶意软件可以禁用反恶意软件产品,彻底阻止加载反恶意软件。借助Windows 10的安全启动体系结构及其建立的信任根,通过确保在加载操作系统之前,仅能够执行已签名并获得认证的“已知安全”代码和启动加载程序,可以防止用户在根路径中执行恶意代码。