最近,我听了“电脑是从硬盘启动的”不下10遍。那我就不解了,正如我前几篇所写,《忘记电脑开机密码怎么办》里面所说的用U盘做为第一启动盘,可以绕过密码输入项从而进入PE系统。PE系统全称为preinstallation environment,意思是预安装系统。啥意思?就是说PE系统里可以轻松完成重装系统的功能,网吧里面一重启就相当于重装了系统。
令我好奇的来了,为什么要从USB和硬盘里启动电脑。下面是我整理的一些notes。
启动的专用单词是什么?boot!在它有这层意思之前,他的意思是靴子。但是经查询它是bootstraps的缩写,它其实来源于一段谚语“pull oneself up by one’s bootstraps”通过自己的鞋带拉自己?最先工程师就是用它来比喻电脑启动的过程:要先运行程序才能启动计算机。这不是矛盾的吗?经过一系列的研究,人们想出了把程序先装入内存中再来启动计算机。这个过程就叫做boot。
上世纪70年代,ROM只读内存被研发出来,计算机一通电就读取这个ROM。含在这块芯片内的程序叫做bios。
2.1 首先bios程序会做自我检查,硬件检查是否满足开启计算机的条件——post,如果没有问题计算机将显示各种信息,包括内存,CPU,硬盘。如果不满足条件,则启动终止。
2.2 硬件检验完毕后,bios将控制权给下个设备了。这时,BIOS需要知道,”下一阶段的启动程序”具体存放在哪一个设备。也就是说,BIOS需要有一个外部储存设备的排序,排在前面的设备就是优先转交控制权的设备。这种排序叫做”启动顺序”(Boot Sequence)。BIOS界面里面就有启动顺序。
这就是我开头说的设置为第一启动项。
3.这段有点抽象了。主引导记录。BIOS将控制权交给第一启动项,我们电脑默认的为硬盘,即从硬盘启动(后面会说为什么是硬盘),这时,计算机读取该设备的第一个扇区,也就是读取最前面的512个字节。如果这512个字节的最后两个字节是0x55和0xAA,表明这个设备可以用于启动;如果不是,表明设备不能用于启动,控制权于是被转交给”启动顺序”中的下一个设备。这最前面的512个字节,就叫做“主引导记录”(Master boot record,缩写为MBR)。
3.1主引导记录的作用
我们都知道开机了,即要启动电脑系统了。主引导记录就是告诉计算机哪个盘里面有操作系统(所以可以说有承载能力和电脑可以识别的都可以做为启动项,但是硬盘最实用)。主引导记录的512个字节由三个部分组成:
(1) 第1-446字节:调用操作系统的机器码。
(2) 第447-510字节:分区表(Partition table)。
(3) 第511-512字节:主引导记录签名(0x55和0xAA)。
3.2分区表什么用呢?它的主要作用就是将硬盘分区。为什么要分区呢?第一,方便管理。第二,不影响系统盘C盘的运行,减压。第三,可安装多个系统。第四,如果不分区中毒了,那就是全都完了,分区了,你可以将中毒的那个盘格式化。
分区表的长度只有64个字节,里面又分成四项,每项16个字节。所以,一个硬盘最多只能分四个一级分区,又叫做”主分区”。
每个主分区的16个字节,由6个部分组成:
(1) 第1个字节:如果为0x80,就表示该主分区是激活分区,控制权要转交给这个分区。四个主分区里面只能有一个是激活的。
(2) 第2-4个字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等等)。
(3) 第5个字节:主分区类型。
(4) 第6-8个字节:主分区最后一个扇区的物理位置。
(5) 第9-12字节:该主分区第一个扇区的逻辑地址。
(6) 第13-16字节:主分区的扇区总数
主分区的扇区总数决定了主分区的长度。
4.硬盘启动
这时,计算机的控制权就要转交给硬盘的某个分区了,这里又分成三种情况。
情况A:卷引导记录
上一节提到,四个主分区里面,只有一个是激活的。计算机会读取激活分区的第一个扇区,叫做“卷引导记录“(Volume boot record,缩写为VBR)。
“卷引导记录”的主要作用是,告诉计算机,操作系统在这个分区里的位置。然后,计算机就会加载操作系统了。
情况B:扩展分区和逻辑分区
随着硬盘越来越大,四个主分区已经不够了,需要更多的分区。但是,分区表只有四项,因此规定有且仅有一个区可以被定义成”扩展分区”(Extended partition)。
所谓”扩展分区”,就是指这个区里面又分成多个区。这种分区里面的分区,就叫做”逻辑分区”(logical partition)。
计算机先读取扩展分区的第一个扇区,叫做“扩展引导记录”(Extended boot record,缩写为EBR)。它里面也包含一张64字节的分区表,但是最多只有两项(也就是两个逻辑分区)。
计算机接着读取第二个逻辑分区的第一个扇区,再从里面的分区表中找到第三个逻辑分区的位置,以此类推,直到某个逻辑分区的分区表只包含它自身为止(即只有一个分区项)。因此,扩展分区可以包含无数个逻辑分区。
但是,似乎很少通过这种方式启动操作系统。如果操作系统确实安装在扩展分区,一般采用下一种方式启动。
情况C:启动管理器
在这种情况下,计算机读取”主引导记录”前面446字节的机器码之后,不再把控制权转交给某一个分区,而是运行事先安装的“启动管理器”(boot loader),由用户选择启动哪一个操作系统。
Linux环境中,目前最流行的启动管理器是Grub。
5.启动系统。
上面已经从硬盘中启动系统了,操作系统的内核首先被载入内存。至此启动完毕。再给大家看看
这是计算机系统硬件结构及相互关系。
至此。。。。。