浅谈几种常见的引导方式

电脑教程021

浅谈几种常见的引导方式,第1张

一般来说,当电脑启动时,它所执行的第一条指令并不是来自安装在硬盘上的操作系统。换句话说,要想启动我们熟悉的操作系统,电脑需要首先启动一个预程序。完成这一操作的就是引导程序(Bootloader)。

引导程序通常很小,甚至只是预先写死在 ROM 中的几条指令。在机器接收到启动信号时,引导程序指挥机器去完成配置硬件、寻找系统等一系列操作。

通常,我们可以根据启动顺序,把引导程序大致分为两类:

顾名思义,这种引导程序更底层,往往是预置在主板中,我们无法进行更改的。我们经常用到的 BIOS(严格来说我们常用到是 BIOS 设置界面,但是在交流中我们经常把设置界面和 BIOS 程序本身划等号,这里自然指的是 BIOS 程序)在电脑中就是扮演这个角色。折腾过电脑的人可能有过这样的经验,无论电脑是否连接了硬盘,都可以正常进入 BIOS;实际上,更多数遇到的情况是硬盘突然崩了导致开机无法进入系统而自动进入了 BIOS。可见,BIOS 程序的启动与硬盘无关。

当电脑启动了 BIOS 后,电脑便开始在硬盘上寻找操作系统了。在硬盘茫茫文件中,电脑是如何精确定位到系统文件的呢?这时就需要硬盘上的二级引导程序。

为了讲清二级引导程序,我们需要首先了解几个关于硬盘的概念。

引导记录,通常指主引导记录(MBR),既可以指一种在硬盘最开始扇区寻找引导程序的引导方式,又可以指在硬盘最开始的一部分扇区中存放的记录分区、引导等重要信息的数据。不过为了方便理解,我个人习惯把引导方式称为“MBR 引导”,把负责记录引导的相关扇区称为“主引导记录(MBR)”,而负责记录分区的称为“分区表”。

硬盘的分区我想大家应该都能理解,所谓分区表就是指硬盘的分区方式,相关数据通常存在硬盘最开始的一部分扇区中。

这里,分区表又分为两种类型:

顾名思义,即以 MBR 方式进行分区的分区表类型。在这种方式中,硬盘前部的 64 个扇区存放分区表。由于每个主分区都需要 16 个扇区记录分区信息,所以 MBR 分区表类型下只能划分出 4 个主分区。若想划分更多的分区,只能牺牲最后一个主分区用作扩展分区,进而划分逻辑分区。

在这种分区下, 引导信息写在硬盘前部扇区的 MBR 中,而不是硬盘分区内。 由于扇区大小的限制,引导扇区中的引导程序不能太长。通常情况下都是在引导扇区中写入一个简单的引导程序,再指引电脑在硬盘分区执行下一步的引导程序。

GUID 是全局唯一标识分区表(GUID Partition Table)的缩写,这是为了替代 MBR 分区表而发布的一个新的标准。在这种分区表类型下,硬盘的容量不再限制于 4TB。同时,GUID 是 EFI(Extensible Firmware Interface,可扩展固件接口)标准中的一部分,在这种分区表类型下电脑采用了之后会提到的 EFI 执行程序的方式引导系统。

为了简化理解,我们可以大致总结出如下的对应关系。

: MBR 分区表类型——扇区引导——适用于 BIOS(LEGACY)启动

: GPT 分区表类型——分区引导——适用于 UEFI 模式启动

在 MBR 分区表类型中,BIOS 首先搜寻硬盘的引导扇区,在扇区中执行存放的引导指令,指令通常指向并启动硬盘中引导分区内的引导程序,进而启动系统。

而在 GPT 分区表类型中,电脑会在 EFI 引导分区(ESP 分区)中寻找 EFI 可执行程序,通常为 Bootx64.efi 或者 Bootia32.efi,这个程序会指向引导程序对应的执行文件,进而引导系统。

目前来看,UEFI 是主流趋势,BIOS 引导方式已经渐渐淡出了市场。不过由于 BIOS 引导年代流传下来了很多功能强大的工具,仍然有一些用户喜欢用 BIOS 方式引导系统(私人维修店的无良商家居多)。目前市场主流的主板都是符合 UEFI 标准并兼容 BIOS 启动方式的。

对于 Windows 电脑来说,这显然时最常见的引导方式。这种引导方式的主引导记录(MBR)为 Windows NT,直接搜索并启动第一个激活的分区。

电脑启动时,BOOTMGR 会搜索分区中的 bootmgr 内核文件(legacy 下为 ntldr),这个文件会继续按照 BCD 文件设置的系统参数启动系统。

Grub 是开源组织 GNU Project 开发的一个类 Unix 引导系统,通过配置.cfg 文件可以引导多种系统内核。目前大多数 Linux 系统都是用 Grub 作为引导方式。目前 Grub 有以下几个常用的分支:

基于 Grub 的一个魔改版,顾名思义,Grub4Dos 是为了兼容 DOS 操作而生。因为其强大的图形界面定制和多系统引导功能,在盗版 DVD 年代广为受中国玩家欢迎,那个年代的各种系统修复 PE 工具箱基本都是用 Grub4Dos 编写的。

但是,Grub4Dos 有个致命的缺陷,那就是它不支持 EFI 启动,这也是为什么一些习惯使用 Grub4Dos 工具箱的私人维修店无良奸商在这个 EFI 主流的年代还会把 Windows 装成 BIOS 引导启动。

GNU 团队开发的第二代 Gurb,目前 Github 上很多大神还在日常维护。很多不懂洋文的人总是以为 Grub2 是 2 代,Grub4Dos 是 4 代所以 Grub4Dos 要比 Grub2 强大,显然这种刻板印象是可笑的。事实上,Grub2 是笔者目前见过功能最强大的引导程序。兼容 BIOS 和 EFI 两种启动方式,基本能够引导现在所有的操作系统,非常适合作为 U 盘引导工具。

玩过黑苹果的人一定不会对 Clover 陌生,除了引导 OS X 以外,它支持 BIOS 和 EFI 两种启动模式下引导 Windows、Linux 系统。Clover 的强大之处在于对 OS X 驱动的配置上,针对不同的机型玩家的可操作性很大。不过相比较 Gurb2 而言,Clover 更适合作为电脑系统引导,做 U 盘引导工具就要逊色于 Grub2 了。

syslinux 对于 Linux 系统的引导功能还是很强大的,不过似乎很少有人会去折腾 syslinux 的多系统启动,多是模块化之后在 Grub2 中用命令调用。

除此之外,可能还有 rEFInd、WEE、Plop 等引导程序,因为比较小众,在这里不做介绍了。

目前来说,EFI 引导方式是主流,不管是多系统启动还是引导修复,EFI 都要比 BIOS 简单方便许多。对于有多系统需要的玩家,EFI+Grub2 是一个比较完善的解决方案。

参考链接:

Comparison of boot loaders

: https://en.wikipedia.org/wiki/Comparison_of_boot_loaders

GNU GRUB

: https://www.gnu.org/software/grub/

装系统 比如安装前会在你安装进系统的分区中拷贝进去一些文件 这里面就包含了引导引导是进入系统的方式 就跟带你进轨道一样 通过引导 系统才会运行某些系统程序讲系统打开 说白了 就是一份名单 告诉电脑开机需要运行那些程序引导出问题就是没办法进入系统 常你说常见的引导方式 我想你想问的就是选择“开机方式”常见的有“硬盘启动” 系统装在硬盘里面 所以从硬盘读取引导程序开机还有就是“光驱启动”我们用系统盘安装系统时候 需要在系统开始前进入光驱的安装程序 所以选择光驱中读取引导还有“U盘启动”和硬盘启动类似 只是把系统装在U盘里面还有外接光驱、外接硬盘启动 和上面说的没啥区别 只是告诉电脑从哪里优先寻找引导程序罢了 我们装系统需要修改启动方式 是通过开机时按F2进BOSS里面设置 详情百度“修改启动方式”

系统引导指的是将操作系统内核装入内存并启动系统的过程。

系统引导通常是由一个被称为启动引导程序的特殊代码完成的,它位于系统ROM中,用来完成定位内核代码在外存的具体位置、按照要求正确装入内核至内存并最终使内核运行起来的整个系统启动过程。

该过程中,启动引导程序要完成多个初始化过程,当这些过程顺利完成后才能使用系统的各种服务。这些过程包括初始引导、内核初始化、全系统初始化。

扩展资料

初始引导过程主要由计算机的BIOS完成。

从功能上看,BIOS引导为三个部分:

第一个部分是用于电脑刚接通电源时对硬件部分的检测,也叫做加电自检(Power On Self Test,简称POST),功能是检查电脑是否良好。

第二个部分是初始化,包括创建中断向量、设置寄存器、对一些外部设备进行初始化和检测等,其中很重要的一部分是BIOS设置,主要是对硬件设置的一些参数,当电脑启动时会读取这些参数,并和实际硬件设置进行比较,如果不符合,会影响系统的启动。

第三个部分是引导程序,功能是引导DOS或其他操作系统。BIOS先从软盘或硬盘的开始扇区读取引导记录,如果没有找到,则会在显示器上显示没有引导设备,如果找到引导记录会把电脑的控制权转给引导记录,由引导记录把操作系统装入电脑,在电脑启动成功后,BIOS的这部分任务就完成了。