0

My SSD forgets data and falls back to a previous version,

I've raised this issue on the Arch forum here.

Let's say I install an application and all is well. Then after a reboot it is gone, completely gone including all configs, related data, etc. Also happens when I config fstab for example. I go back to the previous version after reboot.

Another reboot brings me back into the 'new' config again. And the third reboot into the 'old' version. So my system has 2 versions of the truth and switches between them at each reboot.

I will test this configuration by copying onto a new SSD in the coming week.


Linux ThijsPC 3.17.1-1-ARCH #1 SMP PREEMPT Wed Oct 15 15:04:35 CEST 2014 x86_64 GNU/Linux

Only 30% of the disk is partitioned. TRIM is enabled. It's using cfq i/o scheduler. Drive is a 3-years old Crucial-M4.

UUID=2bddf92c-de9e-4bbc-bec9-5ba848dea11c / ext4 rw,defaults,noatime,discard 0 1
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

I followed this wiki for trouble-shooting.

root@thijspc .:08:38:. {thijs}>hdparm -I /dev/sdc | grep TRIM
*   Data Set Management TRIM supported (limit 8 blocks)
*   Deterministic read data after TRIM

And:

[root@thijspc ~]# cat /sys/block/sdc/queue/scheduler
noop deadline [cfq] 

fdisk

Disk /dev/sdc: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 04171B1D-F083-4569-AFD9-5AC6B38C6063

Device         Start       End   Sectors  Size Type
/dev/sdc1       2048 204802047 204800000 97.7G Linux filesystem
/dev/sdc2  204802048 204804095      2048    1M BIOS boot

grep 'ata' from dmesg (it's on ata4)

[    0.000000] ACPI: SSDT 0x00000000DDE30378 00036D (v01 SataRe SataTabl 00001000 INTL 20120711)
[    0.000000] Memory: 16374176K/16718360K available (5381K kernel code, 909K rwdata, 1712K rodata, 1140K init, 1176K bss, 344184K reserved)
[    0.799859] Write protecting the kernel read-only data: 8192k
[    0.847719] libata version 3.00 loaded.
[    0.902244] ata1: SATA max UDMA/133 abar m2048@0xf7f16000 port 0xf7f16100 irq 27
[    0.902245] ata2: DUMMY
[    0.902246] ata3: SATA max UDMA/133 abar m2048@0xf7f16000 port 0xf7f16200 irq 27
[    0.902248] ata4: SATA max UDMA/133 abar m2048@0xf7f16000 port 0xf7f16280 irq 27
[    0.902251] ata5: SATA max UDMA/133 abar m2048@0xf7f16000 port 0xf7f16300 irq 27
[    0.902254] ata6: SATA max UDMA/133 abar m2048@0xf7f16000 port 0xf7f16380 irq 27
[    0.902845] ata7: SATA max UDMA/133 abar m512@0xf7b00000 port 0xf7b00100 irq 28
[    0.902848] ata8: SATA max UDMA/133 abar m512@0xf7b00000 port 0xf7b00180 irq 28
[    1.220536] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    1.220545] ata7: SATA link down (SStatus 0 SControl 300)
[    1.220557] ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    1.220573] ata3: SATA link up 6.0 Gbps (SStatus 133 SControl 300)

fsck

fsck from util-linux 2.25.1
e2fsck 1.42.12 (29-Aug-2014)
Warning!  /dev/sdc1 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
Pass 1: Checking inodes, blocks, and sizes
Deleted inode 31002 has zero dtime.  Fix? no

Inodes that were part of a corrupted orphan linked list found.  Fix? no

Inode 31010 was part of the orphaned inode list.  IGNORED.
Inode 31060 was part of the orphaned inode list.  IGNORED.
Inode 31199 was part of the orphaned inode list.  IGNORED.
Inode 4075151 was part of the orphaned inode list.  IGNORED.
Inode 4075224 was part of the orphaned inode list.  IGNORED.
Inode 4075385 was part of the orphaned inode list.  IGNORED.
Inode 4075637 was part of the orphaned inode list.  IGNORED.
Inode 4075641 was part of the orphaned inode list.  IGNORED.
Inode 4075873 was part of the orphaned inode list.  IGNORED.
Inode 4075874 was part of the orphaned inode list.  IGNORED.
Inode 4075944 was part of the orphaned inode list.  IGNORED.
Inode 4075968 was part of the orphaned inode list.  IGNORED.
Inode 4075973 was part of the orphaned inode list.  IGNORED.
Pass 2: Checking directory structure
Entry 'E575FA3D8C4DFC93DCE2C4BD0E4E6B4B928AE50E' in /home/thijs/.cache/mozilla/firefox/ltoaq0gi.default/cache2/entries (5269454) has deleted/unused inode 5284764.  Clear? no

Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences:  -(1684521--1684524) -(1685190--1685198) -(2181790--2181798) -(7614052--7614054) -(7615072--7615074) -(7620243--7620250) -(11070148--11070151) -16529433 -(16529439--16529447) -(21100591--21100598) -(21100641--21100648)
Fix? no

Free blocks count wrong (12652279, counted=12643997).
Fix? no

Inode bitmap differences:  -31002 -31010 -31060 -31199 -4075151 -4075224 -4075385 -4075637 -4075641 -(4075873--4075874) -4075944 -4075968 -4075973 -5284764
Fix? no

Free inodes count wrong for group #645 (572, counted=571).
Fix? no

Free inodes count wrong (5515652, counted=5511054).
Fix? no


/dev/sdc1: ********** WARNING: Filesystem still has errors **********


      890492 inodes used (13.90%, out of 6406144)
        2070 non-contiguous files (0.2%)
         365 non-contiguous directories (0.0%)
             # of inodes with ind/dind/tind blocks: 0/0/0
             Extent depth histogram: 869562/388/1
    12947720 blocks used (50.58%, out of 25599999)
           0 bad blocks
           2 large files

      514993 regular files
      339635 directories
           0 character device files
           0 block device files
           2 fifos
        2340 links
       40434 symbolic links (25112 fast symbolic links)
           2 sockets
------------
      897407 files

And smartctl -a

smartctl 6.3 2014-07-26 r3976 [x86_64-linux-3.17.1-1-ARCH] (local build)
Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Crucial/Micron RealSSD m4/C400/P400
Device Model:     M4-CT256M4SSD2
Serial Number:    0000000012530922F762
LU WWN Device Id: 5 00a075 10922f762
Firmware Version: 040H
User Capacity:    256,060,514,304 bytes [256 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      2.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 6
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Mon Nov 17 15:36:20 2014 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x84) Offline data collection activity
                    was suspended by an interrupting command from host.
                    Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (  300) seconds.
Offline data collection
capabilities:            (0x7b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   2) minutes.
Extended self-test routine
recommended polling time:    (  19) minutes.
Conveyance self-test routine
recommended polling time:    (   3) minutes.
SCT capabilities:          (0x003d) SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   100   100   050    Pre-fail  Always       -       0
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   100   100   001    Old_age   Always       -       4240
 12 Power_Cycle_Count       0x0032   100   100   001    Old_age   Always       -       1010
170 Grown_Failing_Block_Ct  0x0033   100   100   010    Pre-fail  Always       -       0
171 Program_Fail_Count      0x0032   100   100   001    Old_age   Always       -       0
172 Erase_Fail_Count        0x0032   100   100   001    Old_age   Always       -       0
173 Wear_Leveling_Count     0x0033   099   099   010    Pre-fail  Always       -       38
174 Unexpect_Power_Loss_Ct  0x0032   100   100   001    Old_age   Always       -       68
181 Non4k_Aligned_Access    0x0022   100   100   001    Old_age   Always       -       520 386 134
183 SATA_Iface_Downshift    0x0032   100   100   001    Old_age   Always       -       0
184 End-to-End_Error        0x0033   100   100   050    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0032   100   100   001    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   001    Old_age   Always       -       0
189 Factory_Bad_Block_Ct    0x000e   100   100   001    Old_age   Always       -       80
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       0
195 Hardware_ECC_Recovered  0x003a   100   100   001    Old_age   Always       -       0
196 Reallocated_Event_Count 0x0032   100   100   001    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   001    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   001    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   100   100   001    Old_age   Always       -       0
202 Perc_Rated_Life_Used    0x0018   099   099   001    Old_age   Offline      -       1
206 Write_Error_Rate        0x000e   100   100   001    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Vendor (0xff)       Completed without error       00%      4232         -
# 2  Vendor (0xff)       Completed without error       00%      4219         -
# 3  Vendor (0xff)       Completed without error       00%      1702         -
# 4  Vendor (0xff)       Completed without error       00%      1277         -
# 5  Short offline       Completed without error       00%      1218         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Grub

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2bddf92c-de9e-4bbc-bec9-5ba848dea11c' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod ext2
        set root='hd2,gpt1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd2,gpt1 --hint-efi=hd2,gpt1 --hint-baremetal=ahci2,gpt1  2bddf92c-de9e-4bbc-bec9-5ba848dea11c
        else
          search --no-floppy --fs-uuid --set=root 2bddf92c-de9e-4bbc-bec9-5ba848dea11c
        fi
        echo    'Loading Linux linux ...'
        linux   /boot/vmlinuz-linux root=UUID=2bddf92c-de9e-4bbc-bec9-5ba848dea11c rw  quiet
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initramfs-linux.img
}
1

It might be a bad SSD. Can you reproduce this behaviour from a LiveCD? (fsck, mount, write some data, umount, reboot LiveCD, mount, check data...) If that shows the same issues, it's either the SSD or a filesystem so broke that fsck does not actually fix it.

If it does not happen with the Live CD, the culprit may be something else, like your kernel or your installed system does not umount / flush properly on reboot for some reason...

Your SMART data does not look odd to me, apart from the nonaligned 4k access, where you seem to have larger values than my own Crucial M4. Are your partitions all aligned? Although even if they weren't, it should not cause such errors.

  • Live CD gave no problem. But I noticed that two disks have the same UUID.. No clue how that could have gone wrong, never set those manually.. Will remove a disk and do some tests. – Thijs Nov 24 '14 at 20:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.