Apple SSD 健康状态 >4.2TB,我怎么知道它已经坏了?

Apple SSD 健康状态 >4.2TB,我怎么知道它已经坏了?

我已经安装了SSD 健康(512GB) 在我的 MacBook Pro(2013 年末)上显示以下统计数据:

Apple SSD 健康应用程序、磨损均衡、工作时间

通常情况下健康状况应该显示百分比,但它显示写入的数据超过 4252GB。

我最近遇到了一些数据丢失的情况(例如复制的文件充满了 NULL、安装包时 SHA256 不匹配等),并且急救发现 HD 损坏(退出代码 8)。这是否意味着我的 SSD 已损坏,需要更换(如果是,具体基于什么信息)?另一方面,SSD 驱动器不应该至少使用 10 年吗?


以下是一些可重现的数据丢失示例:

$ wget -q https://homebrew.bintray.com/bottles/glibmm-2.54.1.sierra.bottle.tar.gz
$ ls -la glibmm-2.54.1.sierra.bottle.tar.gz 
-rw-r--r-- 1 kenorb staff 10033965 Sep 18 22:54 glibmm-2.54.1.sierra.bottle.tar.gz
$ gzip -t glibmm-2.54.1.sierra.bottle.tar.gz 
gzip: glibmm-2.54.1.sierra.bottle.tar.gz: unexpected end of file
gzip: glibmm-2.54.1.sierra.bottle.tar.gz: uncompress failed
$ cp -v /Volumes/SSD-256G/file.txt . # Copy file from the external SSD.
'/Volumes/SSD-256G/file.txt' -> './file.txt'
$ diff /Volumes/SSD-256G/file.txt file.txt
Binary files /Volumes/SSD-256G/file.txt and file.txt differ
$ hexdump file.txt
0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
1b86060 00 00 00 00 00 00                              
1b86066

答案1

复制的文件充满 NULL,SHA256 不匹配“确实是 SSD 可能出现故障的指标。除非你一直把它放在架子上,否则我不会指望 SSD 能用 10 年。

如果同一文件md5 path/to/file在任意两次尝试中读取结果不同(例如产生不同的哈希值),则足以表明 SSD 已出现严重问题(当然前提是文件未被修改)。您可以先在任何大文件上进行测试,文件越大越好。

如果该测试通过,您可以继续对整个磁盘执行相同操作。您需要从另一个可启动介质启动,从中可以计算整个 SSD 的哈希值。例如,启动到 Linux live USB/CD 并运行md5sum /dev/sd<your ssd letter>两次 - 结果必须匹配才能判定磁盘健康。

最后,如果上述测试通过,当您仍然启动到 Linux 时,运行提供的短期测试,然后运行长期测试smartctl

smartctl -t short /dev/sd<your ssd letter> # results can be seen after a few minutes
smartctl -t long /dev/sd<your ssd letter> # a few hours to wait

答案2

Apple 的fsck_hfs工具有-S扫描磁盘查找坏块的选项。

例如:

diskutil list # Note the disk path.
fsck_hfs -S /dev/disk22

这将扫描整个磁盘https://en.wikipedia.org/wiki/Bad_sector,并判断它是否已损坏,或者软件修复就足够了。


为了避免安装磁盘,最好从以下任一方式启动系统:单模或者macOS 安装程序(USB 或 DVD)并运行终端应用程序。

以下是修复加密卷的示例命令(作为用户):

diskutil coreStorage list # Note the UUID.
diskutil coreStorage unlockVolume 11111111-2222-3333-4444-555555555555
diskutil umount /dev/disk22 # Unmount after it was mounted with write access.
fsck_hfs -y /dev/disk22 # Check and repair any errors.
fsck_hfs -S /dev/disk22 # Scan entire disk for the bad blocks.

如果错误修复成功,并且没有坏块,则可以确信 SSD 的健康状况仍然良好。但是,如果仍然有一些磁盘错误并且没有坏块,则可以使用第三方修复软件(例如磁盘战士,它可以修复损坏的目录/文件并使用 SMART 诊断程序诊断硬盘)。

相关内容