Skip to content

Micron/Crucial SSDs: Wrong SMART attribute used (0xCA instead of 0xAD) #286

Description

this is the model of my ssd, its micron/crucial vendor

Image

here are my smart attributes

Image

according to this page

Depending on the manufacturer and model of the SSD, there are different attributes which can determine the generic health of the SSD (usually only one of them present on the S.M.A.R.T. page):

#169 Remaining Life Percentage

#173 Media Wearout Indicator

#177 Wear Leveling Count

#202 Percentage Of The Rated Lifetime Used

#231 SSD Life Left

Percentage used endurance indicator (for SAS SSDs)

Available Spare Percent, Percentage Used (for NVMe M.2 SSDs)

as it says only 1 of those smart attribute id's should be present in ssd and mine is a micro ssd with that attribute being 173, non else are present.

case 0xCA:
    if (asi->DiskVendorId == SSD_VENDOR_MICRON 
     || asi->DiskVendorId == SSD_VENDOR_MICRON_MU03 
     || asi->DiskVendorId == SSD_VENDOR_INTEL_DC 
     || asi->DiskVendorId == SSD_VENDOR_SILICONMOTION_CVC)
    {
        asi->Life = asi->Attribute[j].CurrentValue;
        if (asi->Life < 0 || asi->Life > 100) { asi->Life = -1; }
    }
   //src/AtaSmart.cpp line 11665

Micron/Crucial consumer SSDs report health with SMART ID 173 (0xAD Media Wearout Indicator), not 202 (0xCA). The current code incorrectly assigns Micron to 202, which causes Life not to be detected on these drives. Proposed fix: handle 0xAD for Micron consumer SSDs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions