Yahoo
Skip to main content
Advertisement
Advertisement
Advertisement
Advertisement

I ran the same SSD health check on Linux and Windows—only one gave me the full picture

TerraMaster's F4 SSD NAS with four different NVMe SSDs installed.
Patrick Campanale / How-To Geek

As of writing, my NVMe SSD is about four years old—old enough to make me think about replacing it. That said, with sky-high storage prices right now, part of me wants to hold off until the market settles down. The sensible move in that situation is to check whether your drive really needs replacing—but I didn't expect I'd have to switch operating systems just to find the answers I was looking for.

Windows said my SSD was healthy

But it felt—as the kids are calling it these days—sus

CrystalDiskInfo showing Crucial P3 500GB NVMe at 77 percent health with full SMART data table.

Windows offers very basic tools for monitoring SSD health . Typically, you'd open the terminal and run the following command:

However, it only tells you whether your storage device is healthy or not. That's useful, but it felt a bit too binary for my liking. I wanted to know how healthy it was. It was less of a qualitative question and more of a quantitative one.

Advertisement
Advertisement

Unfortunately, none of Windows' built-in tools had that answer, so I installed CrystalDiskInfo—which, frankly, I should have been running years ago. The difference in information density was significant. Beyond the basic "Healthy" label, it showed the drive's full S.M.A.R.T. data: total data written, total data read, power-on hours, available spare capacity, and—most importantly for my purposes—a "Percentage Used" figure that reflects endurance consumption based on the manufacturer's TBW (terabytes written) rating.

Why the data felt worrisome

My Crucial P3 500GB NVMe drive—the one holding my Windows installation—currently shows a health rating of 77%. Given that I've been using it for roughly four years, the rough math suggests I've still got another year or year and a half before it drops below 70%—a point where you should actually start thinking about a replacement.

But that assumes SSD wear follows a linear pattern. What if it doesn't? What if degradation accelerates?

A drive doesn't always fail predictably. It can report 100% health one day and die the next . That's why raw health percentages only tell part of the story. You also need to look at the errors accumulating underneath.

Advertisement
Advertisement

And while my drive showed zero critical warnings, CrystalDiskInfo surfaced one number that kept bothering me: the "Number of Error Information Log Entries" was sitting at 6,605. However, it didn't tell me what those errors actually were. At that point, I had practically hit the ceiling of what Windows-based tools could tell me.

CrystalDiskInfo SMART table with Number of Error Information Log Entries at 6610 highlighted.

The image above shows the count at 6,610. This is because I took the image after I restarted Windows, which apparently raised the error count.

Linux showed me what those SSD errors actually were

Where CrystalDiskInfo's trail went cold

Terminal showing sudo nvme smart-log output with percentage used at 23, available spare at 100, and 6605 error log entries.

I run a Linux-Windows dual-boot setup , so after hitting a dead end on Windows, I booted into Linux to see if I could find some answers there.

On Linux, there's a command-line utility called nvme-cli built specifically for inspecting NVMe drives. It talks to the NVMe protocol directly, which means it can pull diagnostic data that generic S.M.A.R.T. tools either can't access or don't expose clearly.

Advertisement
Advertisement

I started with:

This pulled the full S.M.A.R.T. log straight from the drive controller and confirmed what CrystalDiskInfo had shown—but with more detail. Available spare was at 100%, media errors were 0, the percentage used was 23%, and the error log entry count was 6,605—the same number Windows showed.

But this time, I could actually inspect what those errors were with:

Terminal showing sudo nvme error-log with Entry 0 having error count 6605 and status 0x2002 Invalid Field in Command.

The log returned 16 entries. Entry 0—the one accounting for all 6,605 flagged errors—had a status field of 0x2002, which decodes to Invalid Field in Command : a reserved code value or an unsupported value in a defined field.

Entries 1 through 15, meanwhile, all showed an error count of 0 and "Successful Completion."

Advertisement
Advertisement

Translated into plain English, my SSD was fine. There were no media errors, no data integrity issues, and no signs of physical NAND failure. The "errors" weren't signs of wear—they were just invalid commands logged at some point during normal operation.

You can also test your NVMe SSDs for errors

The self-test Windows never offered me

Terminal showing sudo nvme device-self-test command confirming Short Device self-test started on nvme0.

The nvme-cli utility can do more than just read health data—it can also run built-in diagnostic tests on the drive itself. So I ran a short self-test using:

Then I checked the results with:

The test came back clean: Operation Result: 0, which means the drive passed without detecting any internal issues.


You don't necessarily need to install Linux to run this tool

If you're on Windows and don't run a dual-boot setup like I do, you can still use nvme-cli without installing Linux.

Advertisement
Advertisement

The easiest method is to create a bootable USB with Ubuntu—or any Linux distro you prefer—plug it into your PC, and boot into the live environment. That gives you a full Linux session running directly from the USB, without touching your existing Windows installation. From there, you can install and use nvme-cli to inspect your SSD's health, run self-tests, and check error logs. Once you're done, just reboot back into Windows as usual.

Advertisement
Advertisement
Mobilize your Website
View Site in Mobile | Classic
Share by: