磁盘管理(磁盘格式化,引导块和坏块)详解

  • 内容
  • 评论
  • 相关

操作系统还负责磁盘管理的其他几个方面。本节讨论磁盘初始化、磁盘引导、坏块恢复等。

磁盘格式化

一个新的磁盘是一个空白盘,它只是一个磁性记录材料的盘子。在磁盘可以存储数据之前,它必须分成扇区,以便磁盘控制器能够读写,这个过程称为低级格式化物理格式化

低级格式化为每个扇区使用特殊的数据结构,填充磁盘。每个扇区的数据结构通常由头部、数据区域(通常为 512 字节大小)和尾部组成。头部和尾部包含了一些磁盘控制器的使用信息,如扇区号和纠错代码(ECC)。

当控制器通过正常 I/O 写入一个扇区的数据时,ECC 采用根据数据区域所有字节而计算的新值来加以更新。在读取一个扇区时,ECC 值会重新计算,并与原来存储的值相比较,如果存储和计算的数值不一样,则表示扇区数据区已损坏,并且磁盘扇区可能已坏。

ECC 是纠错代码,因为它有足够的信息,以便在只有少数数据损坏时,控制器能够识别哪些位已经改变,并且计算它们的正确值应该是什么。然后它会报告可恢复的软错误。当读或写一个扇区时,控制器自动进行 ECC 处理。

大多数磁盘在工厂时作为制造过程的一部分就已低级格式化。这种格式化能让制造商测试磁盘,并且初始化逻辑块号到无损磁盘扇区的映射。对于许多磁盘,当磁盘控制器低级格式化磁盘时,还能指定在头部和尾部之间留下多长的数据区。通常有几个选择,如 256、512 和 1024 字节等。采用较大扇区来低级格式化磁盘,意味着每个磁道的扇区数会更少,但也意味着每个磁道的头部和尾部信息会更少,用户数据的可用空间会更多。有的操作系统只能处理 512 字节的扇区大小。

在可以使用磁盘存储文件之前,操作系统仍然需要将自己的数据结构记录在磁盘上。这分为两步:

  • 第一步是将磁盘分为由柱面组成的多个分区。操作系统可以将每个分区作为一个单独磁盘。例如,一个分区可以存储操作系统的可执行代码,而另一个分区存储用户数据;
  • 第二步是逻辑格式化,或创建文件系统。在这一步,操作系统将初始的文件系统数据结构存储到磁盘上。这些数据结构包括空闲和已分配的空间和一个初始为空的目录。

为了提高效率,大多数操作系统将块组合在一起变成更大的块,经常称为簇。磁盘 I/O 按块完成,而文件系统 I/O 按簇完成,有效确保了 I/O 具有更多的顺序访问和更少的随机访问的特点。

有些操作系统允许特殊程序将磁盘分区作为逻辑块的一个大的有序数组,而没有任何文件系统数据结构。这个数组有时称为原始磁盘,这个数组的 I/O 称为原始 I/O。例如,有些数据库系统喜欢使用原始 I/O,因为能够允许它们控制每条数据库记录存储的精确磁盘位置。原始 I/O 绕过所有文件系统服务,如缓冲区缓存、文件锁定、预取、空间分配、文件名和目录等。虽然某些应用程序可以通过原始分区来实现自己特殊的更为高效的存储服务,但是大多数应用程序在使用常规文件系统服务时会执行的更好。

引导块

为了开始运行计算机,如打开电源或重启时,它必须有一个初始程序来运行。这个初始自举程序往往很简单。它初始化系统的所有部分,从 CPU 寄存器到设备控制器和内存,接着启动操作系统。为此,自举程序找到磁盘上的操作系统内核,加载到内存,并转到起始地址以便幵始操作系统的执行。

对于大多数计算机,自举程序处在只读存储器(ROM)中。这个位置非常方便,因为 ROM 不需要初始化而且位于固定位置,这便于处理器在上电或复位时开始执行。并且,由于 ROM 是只读的,不会受到计算机病毒的影响。它的问题是,改变这种自举代码需要改变 ROM 硬件芯片。

因此,大多数系统存储一个极小的自举程序在启动 ROM 中,它的作用是从磁盘上调入完整的引导程序。这个完整的引导程序可以轻松改变:可以简单地将新的版本写到磁盘。完整的引导程序存储在磁盘固定位置上的“启动块”。具有启动分区的磁盘称为启动磁盘或系统磁盘。

引导 ROM 内的代码指示磁盘控制器将引导块读到内存(这时不加载设备驱动程序),然后开始执行代码。完整的自举程序比引导 ROM 的自举程序更加复杂。它可以从非固定的磁盘位置处加载整个操作系统,并且开始运行操作系统。即使如此,完整的自举程序可能很小。



图 1 Windows的磁盘引导

本文标题:磁盘管理(磁盘格式化,引导块和坏块)详解

本文地址:https://www.hosteonscn.com/3646.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注