希捷Momentus XT损坏文件(Linux和Mac)


10

我的Seagate Momentus XT混合硬盘驱动器损坏了Linux上的文件。我希望得到任何人的帮助,但是我特别想知道其他Momentus XT用户是否能够重现此问题。我在Seagate社区论坛上提供了重现此问题的分步说明。

到目前为止,已有四个用户在以下便携式计算机和操作系统/发行版上重现了此问题:

  • 五台笔记本电脑:联想Thinkpad T60,T61,T510,MSI MS-1656-ID1和MacBook Pro(15英寸,2009年末)。
  • 四种操作系统/发行版:Ubuntu 11.04,Fedora 15,openSUSE和Mac OSX。

重现该问题说明很简单。以下是简短的口头描述:

  1. 创建一个大型测试文件,将其保存到另一个存储设备(不是 Momentus XT),然后计算SHA-1校验和。
  2. 将测试文件写入Momentus XT。
  3. 从Momentus XT读取测试文件,计算SHA-1,并将此校验和与原始校验和进行比较。我们应该有一场比赛。如果它们不匹配,我们可能会重现该问题。(仅“可能”,因为其他问题可能会导致不匹配。请参阅Seagate线程,以通过将文件与进行比较来识别此特定问题cmp -l。)
  4. 从步骤(2)重复。

希捷线程有更多的细节。这是我测试中的一些注意事项(我已经能够在三个连续的Momentus XT驱动器上重现此问题;我RMA进行了两次,现在是第三次):

  • 似乎正在发生的事情是,Momentus XT有时会忽略将数据写入驱动器,因此,当我从驱动器中读取数据时,会得到该扇区中原来的内容,而不是正确的数据。这发生在不同大小的块中。典型大小为1 MiB和512 KiB。
  • ext2,ext4,Btrfs,NTFS和FAT32出现问题。奇怪的是,我无法在ext3上重现此问题。
  • 使用oflag=direct输出标志写入dd可以避免此问题。快速将数据提交到磁盘while true; do sync; sleep 0.01; done也可以防止该问题。
  • 我只能通过SATA和eSATA接口重现此问题。USB连接似乎可以防止此问题。(不确定这是否是由于传输速度引起的。)
  • 大文件(> 2 GB)时,问题经常发生。文件小于85 MB时,我无法产生问题。
  • 我无法在带有NTFS的Windows XP上重现该问题。
  • 希捷论坛上的Gazoi 无法在带有UFS2的FreeBSD 8.2上重现该问题
  • Momentus XT通过了扩展的SMART测试badblocks -w,没有任何问题。
  • 我的笔记本电脑(MS-1656-ID1)已成功通过24小时的Memtest86 +,Memtest86,memtester和MPrime。
  • 我已经用相同的步骤测试了另外两个存储设备(Seagate Momentus 7200.4和Intel 320系列SSD),它们都通过了测试。

如果您有Momentus XT,请尝试重现此问题,并让我知道会发生什么。

我还能做些什么来诊断问题?


1
您要在写入和读取之间重新启动吗?您是否要刷新缓存以确保实际上是从磁盘而不是从缓存读回的?如果不是,那可能就是为什么您不能使用较小的文件来复制它的原因,因为它们更可能仍在缓存中
psusi 2011年

我通过读取iflag=direct带有dd 的输入标志来绕过页面缓存。当我不使用dd时,我使用sudo sh -c "sync && echo 1 > /proc/sys/vm/drop_caches"

我刚刚意识到,您可能正在谈论的是Momentus XT上的物理磁盘缓冲区,而不是Linux页面缓存。在这种情况下,您有一点要注意-我几乎没有采取任何预防措施来防止读取磁盘缓冲区,而且在写入文件后,我也会立即读取该文件。也许我应该将写入提交到多个文件,然后在FIFO基础上读取它们。话虽如此,Momentus XT磁盘缓存只有32 MB,并且我在过去也进行了一些测试,在这些测试中,我编写了大于10 GB的小文件(〜64 MB),之后再读取它们而没有发现损坏。

驱动器的固件中可能存在一个错误(整数溢出?),导致其在高速写入下无法跟踪未写入的块。或者闪存中有一些坏块,固件未能检测到。NTFS验证写入(并且ntfs-3g非常慢),因此问题不太可能出现。如果找不到修补程序,则可能要使用ZFS并启用校验和。
billc.cn 2011年

@ billc.cn,我转载了NTFS的问题。具有数据校验和的Btrfs和ZFS显然将无法读取损坏的文件,但是损坏的数据将无法恢复。恢复这些文件将需要更多的冗余(例如,FS级镜像或RAID镜像)。无论如何,我当然不使用Momentus XT,除非我弄清楚发生了什么。
文森特·于

Answers:


6

将固件更新到SD26可解决Linux上文件损坏的问题。不幸的是,SD26尚未公开发布。

获取SD26固件的最佳方法是询问Seagate索取可引导更新CD或Windows更新实用程序的副本。

在发现SD26解决了我的文件损坏问题后,我于8月20日通过电子邮件向Seagate技术支持发送了询问。以下是我于8月23日收到的希捷全球客户支持的两份答复:

感谢您今天与希捷联系。给我一些时间与开发人员联系,以便我可以了解SD26固件的状况。由于您的发现,我们需要进行一些调查。我们很少使用Linux进行测试。让我看看我能找到什么,以及是否需要进一步测试和固件的公开发行。我正在附加ISO文件。收到回复后,我会尽快与您联系。希捷非常以客户为导向,非常感谢您引起我们的注意。


我们通常不公开发布固件。如果使用不当,它可能造成的伤害更大。我们从不正确的更新中收到了很多硬盘驱动器,我们希望消费者与我们联系,以便我们可以验证是否需要固件升级并且是有益的。Alan M.是我们论坛的主持人,他将在您的主题中发布公告。再次感谢您引起我们的注意。我们的客户是最好的,也是很好的信息来源,通常是第一个让我们知道事情什么时候无法正常运行的人。让我们有机会解决问题。

正如我已经说过的,我认为最好直接从Seagate获取SD26。但是,也存在可启动的ISO和Windows实用程序的泄露副本,可通过在Google上搜索轻松找到它们。我从Seagate收到的SD26可引导更新CD(* .iso)的SHA-1校验和是b7b0c7e1b9529925b0364b2cf19a62d608b58082。

我已经在Seagate线程中发布了此答案中的信息以及其他详细信息。



4

关于此问题的所有提及均已从Seagate论坛中删除。他们可能认为现在无需讨论,因为可以通过更新到SD28来解决问题。

唯一的问题是,人们不再拥有获取描述问题和/或如何解决问题的权威信息的方法,因为所有与问题及其解决方案之间的相关性的引用均已从Seagate站点中删除。固件更新下载仍然可用,但是没有提到固件的作用,因此受影响的用户可能很难找到解决方案。

因此,对Google员工有帮助:可从http://knowledge.seagate.com/articles/zh_CN/FAQ/215451en?language=zh_CN下载SD28固件 ,它是针对这些Seagate Momentus XT驱动器型号出现的数据损坏错误的解决方案:

  • ST92505610AS

  • ST93205620AS

  • ST95005620AS


2

我刚刚验证了OS X中也正在发生这种情况。:o(

我怀疑数据损坏有两个原因:

1)momentus XT旨在将常用文件缓存在4GB的Flash RAM中,这些文件通常是在启动过程中加载程序(设置文件等)所需的小文件。随着频率的增加,配置为登录时加载的程序会突然出现默认设置,或者给我“欢迎使用教程”,而没有编程设置。其中包括mail.app(未存储任何帐户信息),小告密(无规则的端口监视器),quicksilver(欢迎)等。这使我相信缓存中的小文件已损坏。

2)驱动器遭受了“旋转风车”的困扰,驱动器似乎已经旋转下来,当操作系统需要访问它时,我不得不等待驱动器再次旋转。等待变得更加频繁,持续时间更长。在某些情况下,我会简单地擦除驱动器,然后使用复本复制克隆程序复制以前备份的所有内容。但是,将文件复制到xt瞬间后,许多较大的文件(电影,ISO映像,zip文件)已损坏,并且无法加载或打开。我认为当我从Snow Leopard升级到Lion时,沙滩球和旋转降落的问题将得到解决,正如一些用户最近发布的那样,但是我将USB硬盘上的3.46Gb Dev预览ISO文件复制到momentus XT已损坏,所以我什至无法安装Lion。

我刚在Seagate论坛上偶然发现了您的话题,然后来这里发布:

我在os x下使用了一个名为“智能实用程序”的程序,该程序表示驱动器出现故障。我认为该错误是针对代码184的,这是“端到端”错误。我被警告该驱动器“出现故障”,但我读到其他人在升级固件时会收到此错误(就像我从SD23升级到SD25一样),并且Seagate仅将驱动器视为故障,如果该驱动器在其SeaTools下失败了。

我将我的mouseus xt放在一个usb机箱中,并通过另一台计算机上的窗口在驱动器上运行了SeaTools。不允许进行SMART Check测试。运行“短驱动器测试”和“长通用测试”,未报告任何错误?现在,我尝试在OS X下复制您的方法,我也发现文件已损坏。我使用的是2009年末推出的Macbook Pro 15”,并且在SD25上有500GB Momentus XT。

弗雷德


感谢您举报!您可以运行以下命令来比较未损坏的文件及其损坏的副本吗?cmp -l <uncorrupted file> <corrupted copy> | head如果我们遇到相同的问题,则应该看到三列数字,最左边的列应该包含十个连续数字。(详细信息:最左列显示不同字节的字节数,其他两列显示不同字节的实际值。)
Vincent Yu
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.