2012-07-15 91 views
2

从文件系统的角度来看,当驱动器处于空闲状态或正在读取但不写入数据时,数据可能会丢失?假设您可以确认没有用户或操作系统操作正在写入磁盘,在空闲或读取过程中是否存在任何微妙的文件系统操作,这些操作在中断时可能导致数据损坏(即断电,数据电缆拔出)?不写入磁盘时,有可能丢失数据吗?

回答

0

哦,“这一切都取决于” ......

简短的回答是肯定的,可能会出现腐败。最简单的情况是您拥有16Mb缓存的硬盘。程序写入“控制器”,数据在设备缓存中结束。你的程序认为没关系。您然后失去力量。 >一些<系统有足够的电容容量让这些数据运行,但你仍然可以获得部分写入。

根据我的经验,这些延迟写入期间的功率损耗也可能由于ECC更新不完全而导致媒体错误。一旦重新启动,硬件可能会检测到这一点,并声明该磁盘区域(扇区/磁道)是坏的,并从备用磁盘重新映射它。

某些操作系统将更新文件上次访问时间戳,因为文件大于<这意味着当用户正在进行纯粹的只读活动时,写入操作仍然在磁盘上进行。

+0

关于最后访问时间戳的好处。 Windows的“thumbs.db”和OSX的“.DS_Store”文件是后台OS写入操作的其他示例。为了争辩,如果我们假设这些操作都没有进行,那么对控制器的“延迟写入”是纯粹读取磁盘驱动器的结果吗?驱动器缓存在磁盘读取期间被写入以充当缓冲区是有意义的,但是您意味着什么时候电源丢失,ECC仍然可能将这些部分写入解释为损坏的扇区?它不应该知道为驱动器输入写入的缓存与输出之间的区别 – CauselessEffect 2012-12-10 18:00:28

相关问题