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

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

  •  4
     
  •   wangyuyang3 · 2022-09-12 14:19:45 +08:00 · 5196 次点击
    这是一个创建于 801 天前的主题,其中的信息可能已经有所发展或是发生改变。

      看了《三星这次所谓大批量爆出固态损坏,可能也没那么严重?》( 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 条附言  ·  2022-09-12 15:23:28 +08:00
    漏强调一个问题,很多人认为,自己也看了 S.M.A.R.T 计数,0e 指标完全没异常能够,就一下子放松警惕,觉得肯定没事。问题就在于对 0e 计数根本原理的理解除了偏差。
    0e 计数不是一种 ssd 系统自检,不要幻想你啥也不干,它就能在后台自动扫盘判断数据完整性。
    0e 计数只是 ssd 被动记录使用者在主动读取文件时发生的错误。这个错误难道是系统自己触发的吗?不可能,必须是使用者自己去触发。
    所以实际有没有翻车怎么能依赖于被动看指标呢?你要主动去做全盘读取扫描才行啊。。。而且是长期的、周期性的监控,不能安于一时的测试结果。
    24 条回复    2022-10-05 10:00:08 +08:00
    ltkun
        1
    ltkun  
       2022-09-12 14:36:42 +08:00 via Android
    讲事实摆道理
    francis59
        2
    francis59  
       2022-09-12 15:56:14 +08:00
    重要数据还是放在机械盘上吧,
    刚才复制 980 pro 2T 上的数据,触发了几次读取失败,0E 从 23 上升到 140 了,03 降到 90 了,
    像这种情况,还在保修期内的能直接换新吗?
    francis59
        3
    francis59  
       2022-09-12 16:57:56 +08:00
    复制完飙升到 2601 了
    id7368
        4
    id7368  
       2022-09-12 20:06:43 +08:00 via iPhone
    @francis59 能 有人狗东直接换新
    ready
        5
    ready  
       2022-09-12 20:15:26 +08:00   ❤️ 1
    关键问题:换新之后,新换的就没有问题?
    LongLights
        6
    LongLights  
       2022-09-13 01:48:07 +08:00 via iPhone
    天 我机器两条 m2 插槽都是 9a1 ,明天起床测一下
    c
        7
    c  
       2022-09-13 07:57:40 +08:00
    完了,我也中招了。联想 pm9a1 CL2QGXA7 。全盘扫描了一次,0e 增加了 20 多。
    wangyuyang3
        8
    wangyuyang3  
    OP
       2022-09-13 19:13:51 +08:00
    @francis59 我现在每天扫一遍,可以看出来每天都有新的区块错误。
    (目前这块盘还在等待上门换新)
    francis59
        9
    francis59  
       2022-09-13 21:14:53 +08:00
    @wangyuyang3 我昨天把能复制出来的数据复制出来后,完整格式化了一下(不勾选快速格式化),再拿三星魔术师完整扫描,结果没红块了,但是 0E 飙升到 1 万 6 千多了,03 只剩 89 了。。。后来扫描了几遍 0E 也没再增长,但是还是不放心,申请保修了,
    可惜我的超过 180 天了(京东不能换新了),只能拿去返厂检测一下看有没有问题了
    francis59
        10
    francis59  
       2022-09-13 21:26:47 +08:00
    忘了说了,我的硬盘是 980 pro 2T ,固件扫描之前已经升级到 5B 了
    gundam0603
        11
    gundam0603  
       2022-09-13 21:45:00 +08:00 via Android
    去年 11 月的 970EP 1t ,新版主控,写入 4t 多,写保护,03 值已经是 0 了,0E 正好没截到不知道是多少,固件 3B2QEXM7 ,后来申请售后换了块,现在不太敢用,希望别出问题了
    totoro625
        12
    totoro625  
       2022-09-13 21:54:02 +08:00
    @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  
       2022-09-13 21:56:39 +08:00
    @gundam0603 #11 安利一个小软件 StableBit DrivePool
    Windows 胆子大的可以用存储空间 /存储池功能软 RAID 一下
    wangyuyang3
        14
    wangyuyang3  
    OP
       2022-09-13 21:59:32 +08:00 via Android
    @totoro625 因为 V2EX 不让分享破解软件。实际上这个破解版网上很好找哦
    wangyuyang3
        15
    wangyuyang3  
    OP
       2022-09-13 22:09:37 +08:00 via Android
    @totoro625 之后可以继续长期随诊一下 hhh 因为这种数据静态损失的出现可能周期非常长。不过如果有效的话可以帮上很多没保修的朋友也算是好消息了。不过还是想吐槽,真是升级固件可以搞定的话,那三星现在动作也太慢了
    mingl0280
        16
    mingl0280  
       2022-09-14 06:35:45 +08:00 via Android
    不是固件升级能搞定的,我这五块盘里面坏了三块,都是最新固件。
    eightsheep
        17
    eightsheep  
       2022-09-14 11:00:27 +08:00
    害怕,PM9A1 1TB 00B00 ,最新固件,也会中招吗……
    fuxkcsdn
        18
    fuxkcsdn  
       2022-09-14 15:09:31 +08:00
    MacOS 有对应工具吗?
    eightsheep
        19
    eightsheep  
       2022-09-14 16:57:15 +08:00
    话说我的 PM9A1 出场固件是 7301Q ,升级到最新的。
    francis59
        20
    francis59  
       2022-09-18 12:43:34 +08:00
    更新一下,京东给换新了,拿回来扫了一遍没问题,京东自营售后还是可以的
    1194129822
        21
    1194129822  
       2022-09-20 22:53:32 +08:00
    有用,我一个备用盘,测一下 20 个坏块。
    1194129822
        22
    1194129822  
       2022-09-20 22:55:49 +08:00
    @eightsheep 没必要升级,我 7301Q 的时候固态写了快 100T 都没什么问题,升到 7401 ,7601 后 G 了。
    kevin335200
        23
    kevin335200  
       2022-10-02 18:31:31 +08:00
    中招序列号我收集了一下,见 https://www.chiphell.com/thread-2443478-1-1.html
    序列号第八位第九位为出厂年月
    KagurazakaKotori
        24
    KagurazakaKotori  
       2022-10-05 10:00:08 +08:00
    22 年 6 月出厂的 PM9A1 2T MZVL22T0HBLB-00B00 ,S677NX0T ,出厂 7601Q 固件,测出来没问题
    查了一圈好像 22 年出厂的盘出问题的很少
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2709 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 15:18 · PVG 23:18 · LAX 07:18 · JFK 10:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.