My Seagate Momentus XT hybrid hard drive is corrupting files on Linux. I would appreciate help from anyone, but I'd particularly like to know if other Momentus XT users are able to reproduce this problem; I have provided step-by-step instructions for reproducing this issue on the Seagate Community Forums.
So far, four users have reproduced this problem on the following laptops and OS/distributions:
- Five laptops: Lenovo Thinkpad T60, T61, T510, MSI MS-1656-ID1, and MacBook Pro (15" late 2009).
- Four OS/distributions: Ubuntu 11.04, Fedora 15, openSUSE, and Mac OS X.
The instructions for reproducing the problem are simple. Here is a brief verbal description:
- Create a large test file, save it to another storage device (not the Momentus XT), and compute the SHA-1 checksum.
- Write the test file to the Momentus XT.
- Read the test file from the Momentus XT, calculate the SHA-1, and compare this checksum with the checksum of the original. We should have a match. We have probably reproduced the problem if they don't match. (Only 'probably', because it is possible for other issues to cause a mismatch. See the Seagate thread about identifying this specific problem by comparing the files with
cmp -l
.) - Repeat from step (2).
The Seagate thread has more details. Here are some notes from my testing (I have been able to reproduce this problem on three consecutive Momentus XT drives; I RMA'd twice and am now on the third one):
- What seems to be happening is that the Momentus XT sometimes neglects to write data to the drive, so that when I read from the drive, I get what was originally on the sector, and not the correct data. This occurs in blocks of different sizes; typical sizes are 1 MiB and 512 KiB.
- Problem occurs on ext2, ext4, Btrfs, NTFS, and FAT32. Strangely, I was not able to reproduce this problem on ext3.
- Writing with the
oflag=direct
output flag indd
avoids this problem. Rapidly commiting data to disk withwhile true; do sync; sleep 0.01; done
also prevents the problem. - I have only been able to reproduce this problem through a SATA and an eSATA interface. A USB connection seems to prevent the problem. (Not sure if this is due to transfer speed.)
- Problems occur more often with large files (>2 GB). I was not able to produce problems with files smaller than about 85 MB.
- I was not able to reproduce the problem on Windows XP with NTFS.
- Gazoi at the Seagate forums was unable to reproduce the problem on FreeBSD 8.2 with UFS2.
- The Momentus XT passes both the extended SMART test and
badblocks -w
with no issues. - My laptop (MS-1656-ID1) has successfully passed through 24 hours each of Memtest86+, Memtest86, memtester, and MPrime.
- I have tested two other storage devices (a Seagate Momentus 7200.4 and an Intel 320 series SSD) with the same procedure, and they both pass with no issues.
If you have a Momentus XT, please try reproducing this problem and let me know what happens.
What else can I do to diagnose the problem?
iflag=direct
input flag with dd. When I am not using dd, I flush the cache withsudo sh -c "sync && echo 1 > /proc/sys/vm/drop_caches"