67. 计算机的启动¶
计算机出现问题的时候,希望知道设备是处在什么阶段
67.1. BIOS启动¶
BIOS启动进行设备自检。自检完成后会递交控制权给boot loader.
递交的顺序是在启动顺序中指定的启动项,这些启动项指向一个外部存储设备。
/------------------------------------------------------------------------------\
| Boot Manager |
\------------------------------------------------------------------------------/
Device Path :
Boot Manager Menu HD(1,GPT,D9F797D0-9E50
-4D21-B618-CDE854597D5
Red Hat Enterprise Linux F,0x800,0x64000)/\EFI\
UEFI redhat\shimaa64.efi
UEFI 2
Uefi Redhat Boot
UEFI Misc Device
UEFI PXEv4 (MAC:001886000006)
UEFI PXEv4 (MAC:001886010006)
UEFI PXEv4 (MAC:001886020006)
UEFI PXEv4 (MAC:001886030006)
UEFI PXEv4 (MAC:001886040006)
UEFI PXEv4 (MAC:001886050006)
UEFI Shell
/------------------------------------------------------------------------------\
| |
| ^v=Move Highlight <Enter>=Select Entry Esc=Exit |
\------------------------------------------------------------------------------/
67.2. 主引导记录。¶
控制权转移到一个外部存储设备之后,会读取这个设备的前面512字节,也就是主引导记录
(1) 第1-446字节,共446字节:调用操作系统的机器码。
(2) 第447-510字节,共64字节:分区表(Partition table)。
(3) 第511-512字节,共2字节:主引导记录签名(0x55和0xAA)。
1 446 447 510 511 512
+-----------------------------------------------------------+---------------+-------+
| | | |
| binary code to call OS | partition |0x55 |
| | table | x0AA|
+-----------------------------------------------------------+---------------+-------+
67.3. 分区表¶
分区表的长度是64字节,分成4项,每项16字节,对应4个一级分区,叫做“主分区”
每个主分区的16个字节,由6个部分组成:
(1)
第1个字节:如果为0x80,就表示该主分区是激活分区,控制权要转交给这个分区。四个主分区里面只能有一个是激活的。
(2)
第2-4个字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等等)。
(3) 第5个字节:主分区类型。
(4) 第6-8个字节:主分区最后一个扇区的物理位置。
(5) 第9-12字节:该主分区第一个扇区的逻辑地址。
(6) 第13-16字节:主分区的扇区总数。
+-------------+-----------------+---------------+-----------------+--------------+----------------+
|第1个字节 |第2-4个字节 |第5个字节 | 第6-8个字节 |第9-12字节 |第13-17字节 |
|0x80 |主分区第一个 |主分区的类型 | 主分区最后一个 |该主分区第一个|主分区的扇区总数|
|表示激活分区 |扇区的物理位置 | | 扇区的物理位置 |扇区的逻辑地址| |
| | | | | | |
+-------------+-----------------+---------------+-----------------+--------------+----------------+
最后4个字节的(主分区的扇区总数),决定了这个主分区的长度。也就是说,一个主分区的扇区总数最多不超过2^32。
如果每个扇区为512=29字节,意味着单个分区最大不超过241
=2*2^40 =2
TB。再考虑扇区的逻辑地址也是32位,所以单个硬盘可利用的空间最大也不超过2TB,如果想使用更大的硬盘,只有2个办法:一个是提高每个扇区的字节数,而是增加删去总数
67.4. 卷引导记录¶
计算机会读取主分区中的激活分区。并读出第一扇区,叫做“卷引导记录”(Volume boot record,缩写为VBR)。“圈引导记录”的主要作用是,告诉计算机,擦偶哦在系统在这个分区里的位置。然后,计算机就会加载操作系统。
67.5. 拓展分区¶
随着硬盘越来越大,4个分区已经不够了,需要更多的分区。但是分区表只有4项,因此规定有且仅有一个区可以被定义为“扩展分区”。 扩展分区,指一个区里面可以分成多个区,叫做“逻辑分区”。 拓展分区的第一个扇区,叫做“拓展引导记录” Extended boot record EBR。EBR也包含64字节的分区表,但是只有两项。也就是两个逻辑分区。