Chap 2 主机规划与磁盘分区 (鸟哥的Linux私房菜笔记)

  • 各个组件或设备在Linux下面都是一个文件

磁盘分区

磁盘连接方式与 设备文件名的关系

  • 扇区的物理大小设计有两种:512字节,4K字节。
  • 早期第一个扇区里面含有的重要消息成为MBR(Master Boot Record)。
  • 后来多了一种磁盘的分布格式:GPT(GUID partition table)

MBR(MS-DOS)

  • 柱面 通常是文件系统的最小单位,也就是分区的最小单位。
  • 将启动引导程序记录区与分区表放在磁盘的第一个扇区。(通常512 Bytes)
    • 主引导记录(Master Boot Record,MBR):可以安装启动引导程序的地方,446 Bytes。
    • 分区表(partition table):整块硬盘分区的状态,64 Bytes-->最多仅能有四组记录区,每组记录了开始与结束的柱面号码。
  • 分区:对64 bytes 的分区表进行设置。
  • 磁盘默认的分区表仅能写入四组分区信息。
  • 这四组划分信息我们称为主要、扩展分区。
  • 分区最小单位通常为柱面。
  • 当系统写入磁盘时,一定会参考磁盘分区表。
  • 扩展分区
    • 用额外的扇区记录分区信息。
    • 扩展分区本身不能被拿来格式化。
    • 逻辑分区:
      • 扩展分区继续切出来的分区。逻辑分区可以被格式化。
      • 逻辑分区的数量依操作系统不同而不同。
  • 主要分区+扩展分区最多4个。(硬盘限制,64 byte)
  • 扩展分区最多只能有一个。(操作系统限制)
  • 能被格式化作为数据存储的分区:主要分区、逻辑分区。不能的:扩展分区。
  • 主要分区和逻辑分区,两者不可整合在一起。
  • 如果扩展分区被破坏(重新分扩展分区),所有逻辑分区将被删除。
  • 问题:
    • 操作系统无法使用2.2TB以上的磁盘容量。
    • MBR只有一个区块,被破坏后,基本整个磁盘都废了。
    • 启动引导程序的区块仅446 Bytes,无法存储较多的程序代码。

GPT磁盘分区表(partition table)

  • LBA:logical block address, 逻辑区块地址。
  • GPT将磁盘所有的区块以LBA(默认512B)来规划。第一个为LBA0(零基)。
  • 倒数34个LBA用于备份正数前34个LBA。
  • LBA0(MBR兼容区块)
    • 存储了第一阶段的启动引导程序。
    • 在原本的分区表里,仅放入一个特殊标志符表示此磁盘为GPT格式。
  • LBA1 (GPT表头记录)
    • 记录了分区表本身的位置和大小。
    • 记录了备用的GPT放置的位置。
    • 记录了分区表的校验码(CRC32)。
  • LBA2-33(实际记录分区信息)
    • 每个LBA可以记录4组分区记录。每组128B。
  • GPT分区没有主、扩展、逻辑分区的概念,每个分区都可以独立存在,每个都可以视为主要分区,每个分区都可以格式化。

BIOS和UEFI启动检测程序

  • BIOS:启动的时候,计算机系统主动执行的第一个软件。
  • 启动流程到操作系统间的过程:
    • BIOS:启动主动执行的固件,到该硬盘去读取第一个扇区的MBR位置。
    • MBR:第一个可启动设备的第一个扇区内的主引导记录快,内含启动引导代码。
    • 启动引导程序(boot loader):一个可读取内核文件来执行的软件。
    • 内核文件: 开始启动操作系统
  • Boot loader的主要任务:
    • 提供启动选项,多重引导的重要功能。
    • 加载内核文件:直接指向可使用的程序区段来启动操作系统。
    • 转交其他启动引导程序
  • 启动引导程序除了可以安装在MBR之外,还可以安装在每个分区的启动扇区boot sector。
  • 启动引导程序:
    • 每个分区都拥有自己的启动扇区
    • 可启动的内核文件是放置到各分区中的。
    • 启动引导程序只会认识自己的系统分区内的可启动内核文件。
    • 启动引导程序可以直接指向或者间接将管理权转交给另一个管理程序。
  • UEFI(unified extensible firmware interface):统一可扩展固件接口。
    • 旨在取代BIOS这个固件接口。
    • 有安全启动
    • 使用c语言
posted @ 2020-07-12 14:07  xxxuanei  阅读(229)  评论(0编辑  收藏  举报