坏块是存储介质的区域,由于它已完全损坏或损坏,因此对数据的存储不再可靠。
我们知道磁盘具有运动部件,并且公差小,容易发生故障。如果故障完成,则需要更换磁盘,并将其内容从备份介质还原到新磁盘。更常见的是,一个或多个扇区出现故障。甚至更多的磁盘来自名为Bad blocks的工厂。
这也称为坏道。
错误阻塞的原因:
存储驱动器可能会在出厂时带有制造过程中产生的有缺陷的块。带有坏块的设备在出厂前被标记为有缺陷。这些将与可用的额外存储单元重新映射。
设备的物理损坏也使设备成为坏块,因为有时操作系统无法访问数据。掉落笔记本电脑也会损坏HDD的盘片。有时灰尘还会损坏HDD。
当存储晶体管出现故障时,将导致固态驱动器损坏。随着时间的推移,存储单元也会变得不可靠,因为在一定数量的编程擦除周期后,存储单元中的NAND闪存基板将变得不可用。
对于固态驱动器上的擦除过程,它需要通过闪存卡的大量电荷。这使将浮栅晶体管与闪存硅衬底分离的氧化层劣化,并且位错误率增加。驱动器的控制器可以使用错误检测和纠正机制来修复这些错误。但是,在某些时候,错误可能会超出控制器纠正错误的能力,并且单元可能变得不可靠。
软坏扇区是由软件问题引起的。例如,如果计算机因此意外关闭,则硬盘驱动器也会在写入块的过程中打开。因此,该块中包含的数据与CRC检测错误代码不匹配,并将其标记为坏扇区。
坏块的类型:
坏块有两种类型-
- 物理或硬坏块:
它来自存储介质的损坏。 - 软或逻辑坏块:
当操作系统(OS)无法从扇区读取数据时,将发生软性或逻辑性坏块。
例子 –
软损坏块包括特定存储块的循环冗余校验(CRC)或纠错码(ECC)不匹配磁盘读取的数据的时间。
如何处理坏块:
这些块有多种处理方式,但取决于磁盘和控制器。
在简单的磁盘(例如某些带有IDE控制器的磁盘)上,不良块是手动处理的。一种策略是在格式化磁盘时扫描磁盘以查找坏块。被发现标记为不可用的任何坏块,因此文件系统不会分配它们。如果在正常操作期间块变坏,则必须手动运行特殊程序(例如Linux badblocks命令)以搜索坏块并将其锁定。
越复杂的磁盘在坏块恢复方面就越聪明。控制器的工作是维护坏块列表。控制器形成的列表在出厂前的低级格式化期间会初始化,并在磁盘的整个生命周期内进行更新。低级格式化保留了操作系统不可见的备用扇区。最后一个任务是由控制器完成,该控制器将逻辑上将每个坏扇区替换为备用扇区。此方案也称为扇区备用和转发。
典型的不良行业交易如下:
- 假设操作系统要读取逻辑块80。
- 现在,控制器将要计算EEC,并假设它发现该块是坏的。它向操作系统报告所请求的块已损坏。
- 每当下次系统重新引导时,都会使用特殊命令,它将告诉控制器该扇区将被备用扇区替换。
- 将来,只要有对框80的请求,该请求就由控制器翻译成替换扇区的地址。
注意–
控制器的重定向(即,转换为替换的请求)可能会使操作系统的磁盘调度算法的任何优化无效。因此,大多数磁盘都经过了格式化,可以在每个柱面以及备用柱面中提供一些备用扇区。每当坏块要重新映射时,如果可能,控制器将使用来自同一柱面的备用扇区。否则,还会有备用气瓶。
一些控制器使用备用扇区来替换坏块,还有另一种技术来替换坏块,即扇区滑移。
部门滑落的例子–
假设逻辑块16出现故障,并且第一个可用的备用扇区跟随扇区200。然后,扇区滑动开始重新映射。从16到200的所有扇区,将它们全部向下移动一位。也就是说,将扇区200复制到备用磁盘,然后将扇区199复制到200,然后将198复制到199,依此类推,直到将扇区17复制到扇区18。
以这种方式滑动扇区可以释放扇区17的空间,从而可以将扇区16映射到该扇区。
坏块的替换并不是完全自动的,因为坏块中的数据通常会丢失。软错误会触发过程,在此过程中会复制块数据,并保留或滑移块。不可恢复的硬错误将丢失其所有数据。无论使用该块的任何文件都必须修复,并且需要手动干预。