V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wangyuyang3
V2EX  ›  SSD

作为三星 pm9a1 固态 0e 报错/数据损坏的早期、二度受害者,谈谈科学的预判和检测方法

  •  4
     
  •   wangyuyang3 · 263 天前 · 2774 次点击
    这是一个创建于 263 天前的主题,其中的信息可能已经有所发展或是发生改变。

      看了《三星这次所谓大批量爆出固态损坏,可能也没那么严重?》( https://www.v2ex.com/t/879351 )这个帖子有感而发,感受到许多朋友对自己使用类似型号的三星固态感到不安(即便目前 0e 没有计数),以及迫切地想要实锤自己会不会翻车。因此发个帖子简单陈述一下我这个倒霉蛋的实践经验,供各位参考。

    1 、问题表现:从 S.M.A.R.T 几个相关属性的性质以及相互关系作为切入口
      这次三星固态翻车,主要表征可以从三个属性反馈出来:
      03 可用备用空间
      0E 媒体与数据完整性错误计数
      0F 错误日志项数

    ( 1 ) 0e 报错或数据丢失是因为 03 可用备用空间耗尽?非也。
      时常看到一些网友这样描述:可用备用空间是用来纠错的,会有自然损耗,但如果耗尽了备用空间,那么一些数据错误就无法纠正过来,最后引发文件物理损坏的严重后果。
      事实上,这种解释让我很困惑,因为我两次翻车出现数据丢失的时候,0E/0F 计数疯涨,但是 03 可用备用空间依然十分充裕。例如我本周的这次翻车,03 计数为 93%,但已经丢了好几个文件了。
      换句话说,三星这次报 0e 和数据损坏,压根不是因为用于纠错的备用空间用完,而是压根没有纠错就坏了?

    ( 2 )本次问题的重点——0e 媒体与数据完整性错误计数及其对应的实际危害
      顾名思义。这个计数表示 SSD 中文件在读取过程中出现的不可纠正错误的次数,反映到 windows 事件查看器对应的日志即 disk 错误(报:在 SSD 上检测到一个不正确的区块)。这种报错对应的实际问题包括但不限于:
      a.以视频文件为例,如果是文件头信息丢失,视频就直接损坏打不开了,视频文件的几个核心属性全部丢失,必须用一些视频恢复软件重新编码才能恢复;如果是文件中段数据丢失,那么就表现为:视频可以正常打开,但是播放到某个位置突然卡住了,然后播放器直接崩溃,此时可以拖进度条跳过损坏的区域;
      b.以 Vmware 虚拟机虚拟磁盘文件为例,部分损坏并不影响虚拟机的正常运行,但当用到虚拟机克隆功能时会做虚拟磁盘全盘数据校验,报循环冗余检查,提示无法克隆。
      c.对于分卷压缩文件,表现为 WinRAR 等压缩软件在执行解压时直接报循环冗余检查,无法正常解压;
      d.对于其他通常的单体文件:通常表现为无法正常使用特定软件打开,可能同时出现无法从 SSD 复制或移动到其他硬盘的情况,但这种检验方法并不可靠,文件可以打开不代表没有坏一小部分;某天可能反复尝试无法复制或移动出去,但第二天突然又可以移出了……但这并不代表它起死回生了,实测下来数据本身可能还是存在部分永久性损坏的;
      e.对于系统运行稳定性来说:到了 ssd 癌症晚期阶段,很容易发现系统存在莫名其妙的卡顿,windows 事件查看器的 disk 报错已经爆表了;甚至最严重的情况下,系统引导文件可以直接损坏,GG 。
      ……

    ( 3 )关于 0E 和 0F 的关系——0F 不重要
      显而易见,0F 包含 0E ,媒体与数据完整性错误只是日志记载错误中的一种,可能还有别的错误类型,所以 0F 在本次翻车事件中意义不大;实际上,在大部分情况下,本次翻车 0E 和 0F 计数基本上相等,也就是除了文件直接损坏并不会报别的错误。


    2 、涉及的设备型号和固件?——固件修复论不可信
      型号方面,这里我不再费工夫收集整理了,大家可以直接 google 一下 chiphell/nga/贴吧等论坛,或者看看外语论坛的相关讨论。
      但对于固件,很多评论指出升级到 XX 固件就好了,0e 计数不再增加了,这类断言我个人是觉得非常可疑的:
      ( 1 )即便已经出现 0e 计数,不动固件,0e 也不是每天都必然增加,需要你是个倒霉蛋,正好每天都读取到某个损坏的文件,才会报错,才会增加计数;你如果不触发损坏的文件,损坏实际上已经悄然发生,只是你恰好死活找不到损坏的究竟是谁……
      我现在二度翻车就遇到这么个情况,一个 60GB 的虚拟机磁盘已经暴毙,但最近连着好几天都再也没有 disk 错误,0e 也不增加,但我难道能一叶障目,忽略已经产生的损失和未来压根无法预判的随机损失吗?
      ( 2 )各种型号固件能否升级本身没用通行方案。像我这里用的 OEM 版本的 980pro——pm9a1 ,固件压根不是三星提供的,而是联想提供的第三方固件。整个 SSD 都无法通过 Samsung Magician 控制。我这边最新翻车的型号和固件分别为:SAMSUNG MZVL22T0HBLB-00BL/8L2QGXB7 ,固件版本查下来是联想于今年 3 月份释出的新版固件(至于是否有升级更新我压根找不到……我看到的都是 thinkpad 的技术支持页,而自己机器对应的官方页面并没有更新)。这种情况下,你让我怎么升级固件?。。
      ( 3 )更何况,三星压根没有正式公布这个问题及其本质原因,更遑论在固件更新日志中明确提示这一问题的解决。根据软硬件安全的基本常识,无论时软件 bug 还是安全漏洞,如果一个补丁包是用于解决生产环境的某个灾难性问题的,三星难道会悄咪咪地发布而不予以任何通告吗?如果固件更新真能解决 0e ,恐怕三星早就拿个大喇叭到处喊了,毕竟早期预防总好过未来无尽的售后成本和品牌形象贬损吧?


    3 、问题触发条件?能否预判?
    ( 1 )问题触发条件——没有规律可循
      有些人新盘到手没几天就暴毙,像我这种都是用了半年左右(通电 3000-5000 小时,写入 /读取 60TB 左右),才暴毙。这种都是看运气。
      我也曾 too young too simple ,常常为这价值 2000 多的小片片感到自责和懊悔。
      是不是我不够爱惜?是我下手太重了吗?是因为我经常搞音视频后期 /剪辑、折腾虚拟机的原因吗?是因为我有长期不关机的习惯吗?我想了想,根本不至于……
      我第一次翻车是在今年 3 月份,去年 10 月才买的联想游戏主机标配的三星 pm9a1 ;实际运行时间应该在几千小时,数据写入 /读取分别不会超过 100TB 。但发现翻车的时候,为时已晚,情况已经非常严重了——时常感到系统卡顿,0e 计数已经飙到几千了,除去不重要的系统文件和游戏数据,最终排查下来损失了近 100GB 关键资料(大部分是单体高价值大视频文件)。
      那个时候我作为早期受害者也很费解,因为当时网上压根没有多少先例可循。和维修师傅聊到这个,他也表示很诧异,表示很少见到三星旗舰 SSD 直接暴毙的。
      我暗自叫苦:我 tm 运气这么好花了 2 万多摇到的搭载三星 2TB 旗舰固态的“高端”游戏主机,就这么脆弱?你在逗我吧……

    ( 2 )能否预判?——压根不存在预判的可能性,等待你的只有突然暴毙
      朋友们,很能理解你“我应该不会这么倒霉吧”的侥幸心理和迫切想要亡羊补牢的情绪,但别忘了 0e 媒体与数据完整性错误计数本身的性质和含义,有没有一种可能,它本身就代表着死亡?
      试想一下,你每天都试图从 S.M.A.R.T 属性值找到迹象,但你等的究竟是什么?难道是某个先兆吗?你等的分明就是 0e 计数本身的上升,只有这个数字才能让你知道真有问题了(上文已经指出“备用空间”计数不可靠)。但这种上升本来就代表数据已经发生永久丢失了,你这不是在预判死亡,而是等待死亡,然后验尸。


    4 、本文重中之重:谈谈如何在暴毙早期及时发现问题
      看到这里,相信你已经摆正心态,明确检测问题的目标不是发现濒临死亡的迹象,而是探索已经死亡的文件尸体。目前来说,可靠的检测有以下几种:
      ( 1 )结合本文第 1 段第( 2 )节提出的问题表征,日常使用过程中提高发现问题的敏锐度,别一个报错一晃就过去了压根没看到,那就 G 了。
      ( 2 )抛弃 Diskgenius 、HD Tune Pro 的扫描功能,使用 Hard Disk Sentinel 6.01.4 PRO 的“扩展的自测试”以及“表面测试”功能。
      对于扩展的自测试,如非 OEM 产品,支持调用 Samsung Magician ,应该也有类似的官方检测功能。
      对于表面测试功能,选择测试类型为“读测试”,在“配置”选项卡中勾选“顺序测试”、“随意测试”、“蝴蝶式测试”、“颠倒顺序测试”,测试次数可以选择两次,这样比较容易排查出问题。
      表面测试完成后,如发现有红块,可以左键单击红块,勾选左下角“检测扇区文件信息”,就可以轻松定位已经损坏的文件。相应的,测试过程中的报错均会如实反映到 windows 事件查看器的 disk 报错以及同时导致 0E/0F 计数跟着增长。
      由于读取测试不会伤及 SSD 寿命,所以可以养成时常检测的习惯。
      ★相反:Hard Disk Sentinel 6.01.4 PRO 能扫出的错误区块,使用 Diskgenius 、HD Tune Pro 的扫描功能不一定能扫出,应该就是后两者检测功能对 SSD 的支持程度、检测方式细化程度不足。但如果问题已经到了极其严重的程度,那请放心,后两个软件也能扫出红块。
      ( 3 )养成每周筛选排查 windows 事件管理器的 disk/Disk 日志的习惯,及时发现数据错误。同时周期性地测试大文件、某个游戏地文件路径整体复制到其他硬盘,测试看是否会出现无法读取源文件的报错。
      ( 4 )如果出现大型文件已经损坏无法迁移出去的情况,可以尝试一下 chkdsk /r 这个 cmd 命令,或许有修复的机会
      (修复时需要锁定、卸除硬盘,可以 PE 上执行)
      (此处修复不是指文件从损坏恢复到完好如初,而仅仅是可以移动出 SSD 了,具体是否有损失还需要个案分析。)


    5 、结语
      这次三星固态翻车的问题,目前从原理上看 tm 就是个黑箱,官方还处在昏睡状态,没有预判方法。
      不要幻想它像人的糖尿病似的可以在早期通过体检找到相应指标,随后予以补救。记住,0e 本身就是死亡,重点在于死的是什么文件。
      如果 0e 已经有计数,“计数短期内不再增长”不是你摆烂的理由。能售后换新就赶紧去换吧,不要赌自己运气好。

      对于创意工作者,工程文件什么的都得长点心,处理好了赶紧转存机械硬盘。
      对于虚拟机使用者,要提防整个虚拟机磁盘损坏的风险,定期快照存到其他硬盘。
      对于单纯用来装系统或者放大型游戏的朋友,我只能说,我很羡慕你可以闲庭信步,处变不惊……

    第 1 条附言  ·  263 天前
    漏强调一个问题,很多人认为,自己也看了 S.M.A.R.T 计数,0e 指标完全没异常能够,就一下子放松警惕,觉得肯定没事。问题就在于对 0e 计数根本原理的理解除了偏差。
    0e 计数不是一种 ssd 系统自检,不要幻想你啥也不干,它就能在后台自动扫盘判断数据完整性。
    0e 计数只是 ssd 被动记录使用者在主动读取文件时发生的错误。这个错误难道是系统自己触发的吗?不可能,必须是使用者自己去触发。
    所以实际有没有翻车怎么能依赖于被动看指标呢?你要主动去做全盘读取扫描才行啊。。。而且是长期的、周期性的监控,不能安于一时的测试结果。
    24 条回复    2022-10-05 10:00:08 +08:00
    ltkun
        1
    ltkun  
       263 天前 via Android
    讲事实摆道理
    francis59
        2
    francis59  
       263 天前
    重要数据还是放在机械盘上吧,
    刚才复制 980 pro 2T 上的数据,触发了几次读取失败,0E 从 23 上升到 140 了,03 降到 90 了,
    像这种情况,还在保修期内的能直接换新吗?
    francis59
        3
    francis59  
       263 天前
    复制完飙升到 2601 了
    id7368
        4
    id7368  
       263 天前 via iPhone
    @francis59 能 有人狗东直接换新
    ready
        5
    ready  
       263 天前   ❤️ 1
    关键问题:换新之后,新换的就没有问题?
    LongLights
        6
    LongLights  
       262 天前 via iPhone
    天 我机器两条 m2 插槽都是 9a1 ,明天起床测一下
    c
        7
    c  
       262 天前
    完了,我也中招了。联想 pm9a1 CL2QGXA7 。全盘扫描了一次,0e 增加了 20 多。
    wangyuyang3
        8
    wangyuyang3  
    OP
       262 天前
    @francis59 我现在每天扫一遍,可以看出来每天都有新的区块错误。
    (目前这块盘还在等待上门换新)
    francis59
        9
    francis59  
       262 天前
    @wangyuyang3 我昨天把能复制出来的数据复制出来后,完整格式化了一下(不勾选快速格式化),再拿三星魔术师完整扫描,结果没红块了,但是 0E 飙升到 1 万 6 千多了,03 只剩 89 了。。。后来扫描了几遍 0E 也没再增长,但是还是不放心,申请保修了,
    可惜我的超过 180 天了(京东不能换新了),只能拿去返厂检测一下看有没有问题了
    francis59
        10
    francis59  
       262 天前
    忘了说了,我的硬盘是 980 pro 2T ,固件扫描之前已经升级到 5B 了
    gundam0603
        11
    gundam0603  
       262 天前 via Android
    去年 11 月的 970EP 1t ,新版主控,写入 4t 多,写保护,03 值已经是 0 了,0E 正好没截到不知道是多少,固件 3B2QEXM7 ,后来申请售后换了块,现在不太敢用,希望别出问题了
    totoro625
        12
    totoro625  
       262 天前
    @francis59 #9 受害者+1 ,我是快速格式化之后,再写满三遍数据,惊喜的发现 0E 又增加了,E 盘举例,cipher /w:E

    OP 分析的很到位,0E 是发现错误后才增加的,但是此时你的数据已经丢了
    SMART 只是告诉你,你去读取的时候发现数据死了,他帮你记录一下这件事

    固件论这件事,我是同时用了两块 PM9A1 2T ,当初有两个版本的固件,我特意挑了联想版升级到对应的 7401 固件( SAMSUNG MZVL22T0HBLB-00BL7 ),通用版保持 7301 固件( SAMSUNG MZVL22T0HBLB-00B00 ),长期使用下来唯独 7401 固件的固态炸了,之后就是统一升级到 7601 对应的固件(联想版为 8L2QGXB7 ),并将故障的固态写入 3 遍随机数据并格式化后继续用( OEM 商家让我自付邮费寄到台湾换新),与此同时我给机器加了 M2 散热风扇,控制固态工作温度长期低于 60 度,目前数据尚未出现问题。

    有点怀疑出问题的都是出厂固件是 7401 版本的。
    猜测:该版本固件为鸡血固件,解决了掉速问题,使用过程中出现数据损坏的区块但是为进行屏蔽,导致即使你升级了 7601 固件后问题依旧存在,需要低格后让固态主控发现问题,主动屏蔽坏块,即主动让 0E 增加

    Hard Disk Sentinel 6.01.4 PRO 用你的办法测试完没发现问题,但是数据读取量增加了 7735GB ,另外建议下次推荐一些免费软件,减轻大家钱包的压力
    totoro625
        13
    totoro625  
       262 天前
    @gundam0603 #11 安利一个小软件 StableBit DrivePool
    Windows 胆子大的可以用存储空间 /存储池功能软 RAID 一下
    wangyuyang3
        14
    wangyuyang3  
    OP
       262 天前 via Android
    @totoro625 因为 V2EX 不让分享破解软件。实际上这个破解版网上很好找哦
    wangyuyang3
        15
    wangyuyang3  
    OP
       262 天前 via Android
    @totoro625 之后可以继续长期随诊一下 hhh 因为这种数据静态损失的出现可能周期非常长。不过如果有效的话可以帮上很多没保修的朋友也算是好消息了。不过还是想吐槽,真是升级固件可以搞定的话,那三星现在动作也太慢了
    mingl0280
        16
    mingl0280  
       261 天前 via Android
    不是固件升级能搞定的,我这五块盘里面坏了三块,都是最新固件。
    eightsheep
        17
    eightsheep  
       261 天前
    害怕,PM9A1 1TB 00B00 ,最新固件,也会中招吗……
    fuxkcsdn
        18
    fuxkcsdn  
       261 天前
    MacOS 有对应工具吗?
    eightsheep
        19
    eightsheep  
       261 天前
    话说我的 PM9A1 出场固件是 7301Q ,升级到最新的。
    francis59
        20
    francis59  
       257 天前
    更新一下,京东给换新了,拿回来扫了一遍没问题,京东自营售后还是可以的
    1194129822
        21
    1194129822  
       255 天前
    有用,我一个备用盘,测一下 20 个坏块。
    1194129822
        22
    1194129822  
       255 天前
    @eightsheep 没必要升级,我 7301Q 的时候固态写了快 100T 都没什么问题,升到 7401 ,7601 后 G 了。
    kevin335200
        23
    kevin335200  
       243 天前
    中招序列号我收集了一下,见 https://www.chiphell.com/thread-2443478-1-1.html
    序列号第八位第九位为出厂年月
    KagurazakaKotori
        24
    KagurazakaKotori  
       240 天前
    22 年 6 月出厂的 PM9A1 2T MZVL22T0HBLB-00B00 ,S677NX0T ,出厂 7601Q 固件,测出来没问题
    查了一圈好像 22 年出厂的盘出问题的很少
    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2197 人在线   最高记录 5634   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 15:58 · PVG 23:58 · LAX 08:58 · JFK 11:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.