是否可以计算出硬盘上坏块的物理位置?

是否可以计算出硬盘上坏块的物理位置?

dd_rescue有一个硬盘,我知道坏块在哪里。我仍然带着这个硬盘,所以我可以从 SMART 或 获得所需的任何信息fdisk

我想知道是否有可能从物理上看到这些坏块的位置。我听说过扇区、磁道、磁柱(至少在旧磁盘中),但我不知道磁盘的组织方式,也不知道将块映射到物理扇区所涉及的数学运算。我相信这是一个很好的起点,我会尽快搜索它,但由于我现在的情况,我提前问了这个问题,以便任何人都可以尽快帮助我。

理想情况下,我会有一个圆形磁盘的(文字)图像,并且我能够精确地定位磁盘中的位置,比如说,块#1000。

这可行吗?可能在采用磨损均衡技术的磁盘上不行,但至少在台式机硬盘上可行,比如 Western Digital Caviar Green,也就是我正在研究的这款,坏块数超过 40k。

这是个学术问题。这个磁盘显然不再值得信任,但我希望能够看到是否存在物理模式。

答案1

对于现代磁盘来说这确实是不可行的。

在过去,磁盘本质上是一种哑设备(虽然我这么说有点简单,但请听我说)。系统会从特定的柱面(磁盘上的物理环)、磁头(每个盘片有 2 个磁头)和扇区(每个环都有从 1 到任意编号的扇区)请求数据。控制器告诉磁盘移动到某个 CHS 位置并读取或写入数据。您知道 0 号柱面靠近磁盘的边缘,而最高的柱面位于根部。真正古老的磁盘在每个柱面中都有一个物理标记,其中 1 号扇区位于该位置,因此您可以打开驱动器并几乎看到数据位置。

当今的磁盘具有永久格式,其中包括地址信息、真实物理地址,而不是呈现给控制器的逻辑地址。当要求磁盘将磁头移动到大块地址 (LBA) 0 时,该地址将映射到物理扇区(可能是实际的第一个扇区,或靠近该扇区,除非已重新映射)。但磁盘会根据猜测算法预测该扇区的位置。然后,它等待下一个扇区飞到磁头下方,读取地址 - 如果猜错了,它会进行调整,如果猜对了,它会读取/写入扇区。这个猜测过程是必要的,因为磁盘在加热时会物理膨胀,导致扇区在磁盘变热或变冷时位于不同的位置。此外,每个柱面中的扇区数量不一致。由于寻址系统的原因,较旧的 CHS 磁盘具有物理上不同大小的扇区。现代磁盘具有一致大小的扇区,因为它们只是按顺序从 0 开始编号。

更复杂的是,当磁盘检测到可能或实际上有问题的扇区时,它会默默地重新映射它们(SMART 显示,但直到无法读取时,它才对主机操作系统造成错误 - 或者可以告知 SCSI 磁盘通知主机操作系统)。因此,您看到的逻辑 LBA 可能与驱动器内部的物理地址不对应。

相关内容