硬盘的物理降级是否有可能导致文件内容中的位“翻转”而没有操作系统“注意”并在读取文件时告诉您有关信息?例如,可以将ASCII文本文件(二进制0111000 0)中的“ p”更改为“ q”(0111000 1),然后用户(我)可以打开文件并看到“ q”而不会意识到失败已经发生了?
我对与FAT,NTFS或ReFS相关的答案感兴趣...如果有帮助的话。
我想知道操作系统是否为此保护了我,或者我是否应该检查我的数据在复制/时间之间的不变性。
硬盘的物理降级是否有可能导致文件内容中的位“翻转”而没有操作系统“注意”并在读取文件时告诉您有关信息?例如,可以将ASCII文本文件(二进制0111000 0)中的“ p”更改为“ q”(0111000 1),然后用户(我)可以打开文件并看到“ q”而不会意识到失败已经发生了?
我对与FAT,NTFS或ReFS相关的答案感兴趣...如果有帮助的话。
我想知道操作系统是否为此保护了我,或者我是否应该检查我的数据在复制/时间之间的不变性。
Answers:
是的,有一种叫做腐烂的东西。
但是,不会,它不会影响您。
当驱动器将一个扇区写入磁盘时,它不仅会以与存储在RAM中相同的方式写入这些位,还会使用编码来确保同一位中没有任何序列太长,并添加了ECC代码,从而可以修复影响数位的错误,并检测影响数位以上的错误。
当驱动器读取扇区时,它会检查这些ECC代码,并在必要时修复数据。接下来发生的情况取决于驱动器的环境和固件,这受驱动器名称的影响。
(这是作为“台式机”,“ NAS / RAID”或“视频监控”驱动器出售的驱动器之间的主要区别之一。RAID驱动器可以迅速放弃,并使控制器修复该扇区,从而避免延迟。用户端。台式机驱动器会一次又一次地重试,因为让用户等待几秒钟可能比告诉他们数据丢失更好;而视频驱动器重视恒定数据速率而不是错误恢复,因为通常会损坏帧甚至没有被注意到。)
无论如何,驱动器将知道是否发生了位腐烂,通常会从中恢复,如果无法恢复,它将告诉控制器,后者又将告诉驱动程序将告诉操作系统。然后,由操作系统将错误提示给用户并采取措施。这就是为什么网络虫说
我本人从未见过任何错误,但是我看到许多硬盘驱动器中的整个扇区都发生了故障。
驱动器将知道该扇区有问题,但是它不知道哪些位发生了故障。(失败的一位总是会被ECC捕获)。
请注意,CHKDSK,并自动修复文件系统,不涉及练习器数据中的文件。这些文件的目标是破坏文件系统的结构。例如目录条目和分配的块数之间的文件大小不同。NTFS的自我修复功能将检测结构损坏并防止它们进一步影响您的数据,它们将无法修复任何已损坏的数据。
当然,还有其他可能导致数据损坏的原因。例如。控制器上的错误RAM甚至可能在更改数据之前将其发送到驱动器。在那种情况下,驱动器上没有机制可以检测或修复数据,这可能是文件系统结构损坏的原因之一。其他原因包括普通的软件错误,写入磁盘时出现中断(尽管这是通过文件系统日志记录解决的)或错误的文件系统驱动程序(Linux上的NTFS驱动程序默认长时间为只读状态,因为NTFS是反向工程的,未记录在文档中) ,而开发人员不信任自己的代码)。
我曾经遇到过这种情况,即应用程序将所有文件保存到两个位于不同数据中心的不同服务器上,以在所有情况下都保留工作副本。几个月后,我们注意到在其中一个副本上,大约所有文件的0.1%与应用程序存储在其数据库中的MD5总和不匹配。原来是服务器和SAN之间的光纤电缆有故障。
这些其他原因也是为什么某些文件系统(例如ZFS)保留其他校验和信息以检测错误的原因。它们旨在保护您免受更多可能出错的问题的影响,而不仅仅是腐烂。
是的,硬盘驱动器可以而且确实会在没有操作系统警告的情况下降级。这叫做腐烂。我本人从未见过任何错误,但是我看到许多硬盘驱动器中的整个扇区都发生了故障。
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只是软件。软件是计算机遵循的一系列说明。
考虑一系列说明的另一种类型:一本书。如果这些说明写在架子上的书中,没有人打扰着打开书并阅读这些说明,该怎么办?
就像那些书面说明需要一个人阅读说明并按照说明开始一样,计算机软件也需要硬件来做有用的事情。即使书中的指示写得极好,如果一个人决定阅读这些指示但又错误地实施了指示,这也无法避免问题。同样,软件不能阻止硬件做坏事。因此,损坏的硬件可以在物理上战胜任何软件,包括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还多,后者本质上相对简单,