三星 SSD 驱动器在 Linux 操作系统上的数据丢失错误几年前就出现了。早在2019年,就有用户反映在Linux系统上使用三星860 Evo SATA SSD会出现问题,但由于报道较少,这个问题并没有引起关注。随后推出的三星870 Evo SATA SSD也存在同样的问题。此问题主要与驱动器的性能有关,在使用过程中可能会出现各种异常锁定和错误信息。

经过两年的调查,Linux工程师确认上述固态硬盘存在一些故障。作为对策,最新版Linux Kernel的维护团队通过补丁禁止了上述固态硬盘的TRIM和NCQ功能,这两种功能都用于优化驱动。

三星 870 EVO 固态硬盘

根据调查结果,已经确定三星860 Evo和870 Evo SATA版本使用的Queued Trim命令会导致Intel、ASmedia和Marvell SATA ACHI控制器出现故障,此类故障更容易发生在ATI AMD ACHI 平台。

TRIM 命令允许操作系统通知固态驱动器哪些数据不再使用并且可以擦除。通过Trim命令对数据进行排序后,可以提高固态硬盘的写入速度。目前几乎所有新推出的固态硬盘都支持TRIM命令并自动开机。

NCQ 是 SATA 上的一项技术,它允许系统根据负载优化数据的排队和移动,以获得最佳性能。NCQ 和TRIM 都用于提高驱动器的性能。默认开启时,兼容性失败可能会导致Linux用户遇到问题,比如在启动阶段系统卡顿20到30秒。

作为对策,Linux Kernel 禁用了 860 和 870 Evo SATA 版本的所有 TRIM 和 NCQ 功能。当然,这可能会影响性能,但遗憾的是,暂时没有其他解决方案。

值得注意的是,三星在这个问题上有些含糊其辞。三星似乎已经禁用了所有800系列SSD的Queued Trim功能,但三星告诉Linux Kernel维护团队,除了840和850之外的型号没有问题,但这次修复的是860和870。鉴于这样问题,建议Linux用户不要使用三星800系列的所有硬盘,以免出现影响使用或导致性能下降的故障。

发表评论