数据再次丢失了

事故

昨天好不容易修复了丢失的数据,几天高高兴兴的写了一天代码。然而到了晚上再打开项目想要修改的时候发现今天写的代码竟然又丢了。我顶你个肺! 还好这次丢的不是博客的数据,只是今天写的代码而已。

分析

心情十分的糟糕,这他吗的有完没完,为求速度和抗摔,还是故意选择使用的固态盘。尼玛,正是因为固态盘,数据丢失后完全没有找回的可能。正是因为固态盘,突然断电后数据完全丢失。我猜测情况可能有两种。

  • 代码只是写入了缓存,并没有完全保存成功。
    此时由于电源供电的原因,硬盘突然被断开,致使数据没有写入成功。故此,没有被成功的保存。 而固态盘掉电数据丢失是一个非常正常的现象。
  • 硬盘出现了坏块 因为异常导致程序出错而向硬盘写入了不正确的数据,并在不了解原因的情况下,强行重启了电脑,导致SSD内的部分文件数据损坏或丢失(注意:这里损坏的仅仅只是文件及校验数据,SSD硬件并无损坏)。在未修复这些损坏或丢失的数据的情况下,如果用户再次操作到这些数据所在的地址,由于校验数据已经不正确,因此系统便会陷入一直重复纠错,却又无法修复的死循环,最终导致系统认为这些块地址已经损坏(坏块),但SSD自身并不会对这些逻辑块地址(LBA)对应的物理块地址重映射,因此才出现了上述故障,其实实际存储单元并没有损坏。

方案

第一种情况

因为往固态硬盘里面写入数据,首先存储到的并不是不怕掉电的闪存颗粒上,而是固态硬盘上的DDR内存颗粒中,一种易失性的高速缓存,一直要等到缓存写满,才会考虑是否要把内存中的数据移入到闪存当中去。 从原理上来讲,只能换个大功率的电源,或者给硬盘加个大电容来缓冲下了。

第二种情况

使用HD Tune来进行检测。 使用Intel SSD Toolbox来进行安全擦除。

实践

现在只是先准备好方案,等持续观察之后再做打算。

版权说明

本页地址为 https://post.zz173.com/detail/47dWhIAl9r0YiHPqUs-SUA.html,本文作者为落月
本文采用 署名-相同方式共享 3.0 中国大陆许可协议 ,分享、演绎需署名且使用相同方式共享。转载请务必保留本页网址和作者信息,否则即为侵权。

– EOF –