尝试访问数据时,如果没有Windows警告我发生这种情况,硬盘上的数据是否可以降级?


30

硬盘的物理降级是否有可能导致文件内容中的位“翻转”而没有操作系统“注意”并在读取文件时告诉您有关信息?例如,可以将ASCII文本文件(二进制0111000 0)中的“ p”更改为“ q”(0111000 1),然后用户(我)可以打开文件并看到“ q”而不会意识到失败已经发生了?

我对与FAT,NTFS或ReFS相关的答案感兴趣...如果有帮助的话。

我想知道操作系统是否为此保护了我,或者我是否应该检查我的数据在复制/时间之间的不变性。


没有特别的关联,但类似:superuser.com/questions/613702/…–
迈克尔·弗兰克

我想损坏的读/写头可能会意外地对光盘施加错误的电荷,尽管我从未见过如此小规模的数据损坏。另外,我不信任Windows告诉我驱动器是否发生故障(登录消息)。我已经看到驱动器会随着时间的推移缓慢消失,而Windows则不会发出任何警告。
CConard96 '16

当然...数据以相对值为0或1的位存储,在包括磁存储和固态存储在内的所有系统中都会出现熵。随着时间的推移,所有数据都会降级。
acejavelin

2
@Moab:如果URL与您的第一个注释中的URL有任何不同,我会对您的第二个(“也...”)注释印象深刻。
TOOGAM

1
如果在镜像卷(不是奇偶校验!)上使用ReFS 并进行正确配置,它将校验和文件数据以及文件系统元数据。将在读取时对其进行验证(并在必要时进行修复),并且还有一个计划的作业,该作业将定期扫描整个卷以检测到错误。
davidbak '16

Answers:


24

是的,有一种叫做腐烂的东西。

但是,不会,它不会影响您。

当驱动器将一个扇区写入磁盘时,它不仅会以与存储在RAM中相同的方式写入这些位,还会使用编码来确保同一位中没有任何序列太长,并添加了ECC代码,从而可以修复影响数位的错误,并检测影响数位以上的错误。

当驱动器读取扇区时,它会检查这些ECC代码,并在必要时修复数据。接下来发生的情况取决于驱动器的环境和固件,这受驱动器名称的影响。

  • 如果可以读取一个扇区并且没有ECC问题,则将其传递给OS
  • 如果可以轻松修复某个扇区,则可以将修复后的版本写入磁盘,读回并进行验证,以确定错误是随机错误(宇宙射线...)还是介质存在系统性错误。
  • 如果驱动器确定介质存在错误,则会重新分配扇区
  • 如果在几次读取尝试后无法读取或纠正扇区,则在指定为RAID驱动器的驱动器上,该驱动器将放弃,重新分配该扇区,并告知控制器有问题。它依靠RAID控制器从其他RAID成员重建扇区,然后将其写回到发生故障的驱动器,然后将其存储在重新分配的扇区中,希望该扇区不会出现问题。
  • 如果无法在台式机驱动器上读取或纠正扇区,则该驱动器将进行更多尝试读取该扇区。根据驱动器的质量,这可能涉及重新放置磁头,检查是否有任何位在重复读取时发生翻转,检查哪些位是最弱的位以及其他一些事情。如果任何这些尝试成功,驱动器将重新分配该扇区并写回修复的数据。

(这是作为“台式机”,“ NAS / RAID”或“视频监控”驱动器出售的驱动器之间的主要区别之一。RAID驱动器可以迅速放弃,并使控制器修复该扇区,从而避免延迟。用户端。台式机驱动器会一次又一次地重试,因为让用户等待几秒钟可能比告诉他们数据丢失更好;而视频驱动器重视恒定数据速率而不是错误恢复,因为通常会损坏帧甚至没有被注意到。)

无论如何,驱动器将知道是否发生了位腐烂,通常会从中恢复,如果无法恢复,它将告诉控制器,后者又将告诉驱动程序将告诉操作系统。然后,由操作系统将错误提示给用户并采取措施。这就是为什么网络虫说

我本人从未见过任何错误,但是我看到许多硬盘驱动器中的整个扇区都发生了故障。

驱动器将知道该扇区有问题,但是它不知道哪些位发生了故障。(失败的一位总是会被ECC捕获)。

请注意,CHKDSK,并自动修复文件系统,不涉及练习器数据中的文件。这些文件的目标是破坏文件系统的结构。例如目录条目和分配的块数之间的文件大小不同。NTFS的自我修复功能将检测结构损坏并防止它们进一步影响您的数据,它们将无法修复任何已损坏的数据。

当然,还有其他可能导致数据损坏的原因。例如。控制器上的错误RAM甚至可能在更改数据之前将其发送到驱动器。在那种情况下,驱动器上没有机制可以检测或修复数据,这可能是文件系统结构损坏的原因之一。其他原因包括普通的软件错误,写入磁盘时出现中断(尽管这是通过文件系统日志记录解决的)或错误的文件系统驱动程序(Linux上的NTFS驱动程序默认长时间为只读状态,因为NTFS是反向工程的,未记录在文档中) ,而开发人员不信任自己的代码)。

我曾经遇到过这种情况,即应用程序将所有文件保存到两个位于不同数据中心的不同服务器上,以在所有情况下都保留工作​​副本。几个月后,我们注意到在其中一个副本上,大约所有文件的0.1%与应用程序存储在其数据库中的MD5总和不匹配。原来是服务器和SAN之间的光纤电缆有故障。

这些其他原因也是为什么某些文件系统(例如ZFS)保留其他校验和信息以检测错误的原因。它们旨在保护您免受更多可能出错的问题的影响,而不仅仅是腐烂。


2
+1指出,除了驱动器介质降解等硬件问题可能导致损坏的数据被读取和写入。我个人曾遇到箱子内电缆不良的问题。而且,仅供参考,除ZFS外,正确配置并在存储空间顶部运行的Windows ReFS文件系统(用于Server 2012+)将对文件数据以及文件系统元数据进行校验和并进行恢复,此外,它将定期执行整个卷完整性扫描可检测并修复许多此类错误。
davidbak

17

是的,硬盘驱动器可以而且确实会在没有操作系统警告的情况下降级。这叫做腐烂。我本人从未见过任何错误,但是我看到许多硬盘驱动器中的整个扇区都发生了故障。

Windows在NTFS文件系统的结构之外没有对文件内容的内置保护。将NTFS视为一本书:好吧,它只能保护目录并验证所有内容是否匹配。但是,如果损坏位于页面中间,则不会提供任何保护。FAT一无所有。硬盘驱动器按扇区进行ECC错误校正,但是驱动器不告诉Windows。某些文件类型专门具有CRC,MD5或SHA散列来检测损坏,但它们不能解决任何问题。

即使这样,哈希值也只能告诉您有问题,但不知道错误位于何处。

硬盘驱动器具有SMART,可监视硬盘驱动器的运行状况,但除非驱动器快要死了,否则BIOS不会警告您。更糟糕的是,默认情况下,BIOS中通常默认禁用SMART。您可以通过软件监视数字,但是不同的驱动器有不同的问题。如果您有一堆重新分配的扇区,或者您的ECC错误不断上升。如果每天有100,000个新的ECC,这是一个不好的信号。

许多文件类型都无法防止位腐烂。就像TXT和BMP一样,它们根本没有保护。Winrar有一个可选选项,可将奇偶校验数据添加到存档中,这将使文件更大,但是Winrar可以检测(与所添加的奇偶校验数据量成比例)并修复此类错误。

我知道的所有其他压缩程序都会检测到错误,但无能为力。

最终,一个扇区中的错误将非常严重,ECC无法纠正它,即使错误,驱动器也会为您提供读取的内容。

您可以使用QuickPar或类似工具创建奇偶校验数据文件,但是据我所知,没有办法将其自动化。例如,实际上您必须手动更新奇偶校验时自己更改文件。您也可以具有一组文件的奇偶校验数据,但是您更改了1个文件,则必须重新创建整个奇偶校验集。这对于所有人来说都是一件令人头疼的事,但文件数量很少。


Windows,chdsk或NTFS都无法检测到位腐烂,这是由RAID或具有奇偶校验的文件系统处理的。坏分区不是由位腐烂引起的。我同意这个答案
Ramhound

1
@Ramhound不幸的是,使用RAID镜像(第5级或第6级)保护那里数据的用户数量可能不到0.01%
cybernard

我知道我在一般地说。烂!=坏分区
Ramhound

1
NOR =非或;在句子中使用意味着它是排他性列表;
Ramhound

1
我有一个750GB的硬盘,它可以执行以下操作。首先,计算机运行缓慢且一直死机。当我将某些文本文件的一部分清零或出现乱码时。计算机随后停止引导。有一个新的硬盘(我没有HDD而不是SSD。我想我应该有SSD),问题解决了,PC运行很快
Suici Doga's

2

对的,这是可能的。Windows只是软件。软件是计算机遵循的一系列说明。

考虑一系列说明的另一种类型:一本书。如果这些说明写在架子上的书中,没有人打扰着打开书并阅读这些说明,该怎么办?

就像那些书面说明需要一个人阅读说明并按照说明开始一样,计算机软件也需要硬件来做有用的事情。即使书中的指示写得极好,如果一个人决定阅读这些指示但又错误地实施了指示,这也无法避免问题。同样,软件不能阻止硬件做坏事。因此,损坏的硬件可以在物理上战胜任何软件,包括Microsoft Windows。

现在,可以设计ReFS的目的是软件将存储有关数据的详细信息,并在以后让软件比较这些详细信息。一个简单的概念是“校验和”,其中软件会添加某些值并确保这些值与预期结果匹配。当硬件实施该软件时,可能会检测到某些不良结果。这甚至很有可能起作用。但是,由于理论上可能存在的潜在问题的数量基本上是无限的,因此不能保证软件一定会检测到每个问题。(请记住,软件是一系列提前创建的指令。)

FAT的功能特别低。FAT12是为软盘设计的,而FAT16是为最大4GB的系统设计的(尽管Microsoft的FAT16的大多数实现都无法在2GB以上的环境下工作)。没有VFAT扩展名,它们都不支持长于11个字符的文件名(其中一些文件名称为“扩展名”)。FAT仅用于存储数据,而此时存储数据的能力是一个需要向成年人传授的新颖概念。当FAT被认为是“领先”技术时,计算机技术还没有足够普及和完善,以使人们担心高级功能。

NTFS增加了对更多功能的支持,也许最值得注意的是使操作系统能够轻松跟踪用户权限。有不同版本的NTFS。例如,Moab指出Windows Server 2008添加了对自愈NTFS的支持,这可能会检测到一些东西。不过,该功能是Windows Server 2008的新增功能,因此Windows XP(或Windows Server 2003或更早版本)根本不支持该功能。甚至在功能列表中,它似乎都包含一些元数据,这些数据可以帮助操作系统发现严重的问题,以至于磁盘无法挂载,或者磁盘的其他关键区域影响操作系统的内核。看起来每个文件中的每个数据片段都不会受到这一特定功能的影响。

用于此类操作系统的软件极不可能注意到此类事物,除非它们对操作系统完成任务造成显着问题。可能会有一些例外情况,例如检查磁盘的操作系统部分(CheckDsk / ChkDsk / ScanDisk / ScanDskW,具体取决于操作系统),但即使它们在可检测内容方面也受到相当大的限制,主要是因为文件系统没有不会存储用于磁盘检查的大量数据。

(RAID5可能更容易检测到这种情况,因为每个位都有一个奇偶校验位,可以帮助发现异常。即使这样,RAID实施也可以运行检查以发现问题。如果问题发生在部分未积极使用的磁盘,直到有人尝试开始使用该数据时,问题才可能未被注意到。)

在最近的时间里,更多的比特意味着较小的可能性,例如“千分之一”的可能性,更可能影响事物。公众也了解了“宇宙射线”,这可能对事物产生很小的影响。由于在较新的设备中,位被紧紧地塞满了,代表位的物理要求较小,因此,即使很小的影响也更可能使位的识别方式混乱。ReFS具有旨在帮助检测它们的某些功能。 Wikipedia在ReFS上的文章将其称为“自动完整性检查”。正如该文件系统的显着功能所描述的那样,这些功能可能比NTFS的功能更发达(当然比FAT还多,后者本质上相对简单,

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.