
SSD Check¶
How a drive is doing: its health, power cycles and power-on hours, the drive's specs, and whether the port it is in lets it run at its full speed. SSD Check is an optional utility for a PlayStation 5 running Bazzite. It only reads the drive (the speed test writes a test file and deletes it): nothing on the drive changes, it installs no firmware, and it needs no root.
| Value | What it shows | NVMe | SATA SSD |
|---|---|---|---|
| Health | how much of its rated life the drive has left, in percent | 100 minus "percentage used" | an attribute of the drive's maker, see below |
| Power cycles | how often the drive was switched on | "power cycles" | attribute 12 |
| Power-on hours | how long it has run in all; hover it to see the years | "power-on hours" | the power-on time udisks reports |
Compatibility¶
The app lists udisks NVMe controllers, SMART-capable ATA drives, and USB drives with a medium. It depends on
systemd's busctl, udisks and the interfaces and data they expose. A USB bridge may hide SMART data; other storage,
including devices not exposed as these udisks drive types, is not listed. Encrypted or layered storage and mount
mapping can also prevent the speed test from finding a writable filesystem. PS5 internal storage and attached-drive
visibility have not been verified on hardware: no drive found does not mean there is no storage, and a missing value
is not evidence of a healthy drive. Check important data and backups independently.
Using it¶
- The top row, beside the icon:
| Pill | What it does |
|---|---|
| Health | the drive's health, see above |
| Serial | the drive's serial number, hidden: click the pill to see it in a small window below it, where you can select it to copy. A click anywhere else closes it, and it closes when you choose another drive or Refresh. |
| Measured R / W MB/s | Test: click it to measure the drive's read and write speed in this console, see below |
| Refresh | reads the drives again |
- Drive: with more than one drive, choose it by its number (Drive 1, Drive 2) in the list under the top row. Under the list are the drive's model and size, and a line with its bus and when udisks last read it.
- Screenshot, beside the list: saves the window with the values it shows now as a PNG in your Pictures folder,
in a folder named SSD Check (
~/Pictures/SSD Check/SSD Check <date> <time>.png). The line beside the button names the file; hover it for the folder. The serial stays hidden in the picture, even while its small window is open. - The specs, a pill each:
| Pill | What it shows |
|---|---|
| Power cycles | how often the drive was switched on |
| Power-on hours | how long it has run in all |
| Power-on days | the power-on hours in full days (4,025 hours are 167 days): a day not yet complete does not count |
| Drive | the device name (nvme0n1, sda) |
| Host reads | how much data the computer has read from the drive in all |
| Host writes | how much data the computer has written to the drive in all |
| Firmware | the version of the drive's firmware |
| Update | whether fwupd knows a newer firmware for the drive, see below |
| Interface | NVMe with its version, SATA or USB |
| Speed | the link the drive runs at now: the PCIe generation and lanes of an NVMe drive, the speed of a SATA or USB link. Hover it to see what the drive could do. |
| Board link | the most the port the drive is in offers (a PCIe slot, a SATA port or a USB bus), as sysfs reports it. Orange when that carries less than the drive can do, so the port holds the drive back; green when it is fast enough. Hover it for the numbers. |
| Rated R / W MB/s | the maker's rated read and write speed, from SSD Check's list of drives, see below |
- The state beside the name:
| State | Meaning |
|---|---|
| No problems reported | the drive flags nothing |
| The drive reports a problem | the drive itself flags a problem; hover the state to see which (little spare space left, too hot or too cold, less reliable, read-only, its backup power failed, or SMART says it is failing). Back up what you want to keep. |
| Health not reported | the drive gives its hours and cycles, but no health value SSD Check knows |
| Partly read | the drive's SMART attributes could not be read this time; the boxes show what udisks had. Refresh tries again. |
| No SMART over USB | the drive is on USB and its adapter does not pass its SMART values on; the specs still show |
| No drive found | udisks exposed no NVMe drive, no SATA drive with SMART values and no drive on USB. This does not mean the console has no storage. |
| udisks does not answer | the udisks service is not running; the line under the list says what it answered |
- The Health box is green, orange at 0 % and red when the drive reports a problem. At 0 % the drive has used its rated endurance. Many drives keep working long after that, but make sure your backup is current.
- The small i explains the values.
Where the values come from¶
udisks, the service that mounts drives on the desktop, reads each drive's SMART values now and then and answers
any user over D-Bus; SSD Check asks it with busctl. The line under the list says when udisks last read the
drive. Refresh shows what udisks read last; it does not make the drive read again.
An NVMe drive reports all three values in the same way on every make. A SATA SSD reports its health in an attribute its maker chose. SSD Check reads the first of these it finds, as the life left in percent:
| Attribute | Name | Used by |
|---|---|---|
| 231 | SSD life left | Kingston, SandForce and many others |
| 169 | Remaining lifetime | Western Digital |
| 202 | Percent lifetime remaining | Crucial, Micron |
| 233 | Media wearout indicator | Intel |
| 177 | Wear leveling count | Samsung |
A SATA drive with none of them shows Not reported in the Health box; hover a known value to see which attribute it came from. This attribute is not universal: a maker may use it differently.
A drive on USB (a stick, an external SSD or disk, an M.2 drive in an enclosure) is listed with its specs. udisks
cannot read SMART values through most USB adapters (some pass them only to smartctl, which needs root): then the
health, the power cycles, the hours and the data read and written stay empty and the state says No SMART over
USB. An M.2 enclosure with a known NVMe bridge (Realtek RTL9210, ASMedia ASM2362, JMicron JMS583) shows NVMe
over USB as its interface.
A drive stuck at USB 2.0. A USB 3 port is two ports to Linux, one for USB 2.0 and one for USB 3. When a drive links at USB 2.0 (480 Mb/s) in a port that does USB 3, the Speed pill turns orange, and hovering it says what to try: another cable (many USB-C cables carry only USB 2.0), the drive straight in the console instead of through a hub, or plugging it in again. Board link then shows what the port can do.
Host reads and Host writes of an NVMe drive come from its own counters. A SATA drive keeps them in attributes 242 and 241, which SSD Check counts as 512-byte sectors, as most makers do; a maker that counts in other units shows a number that is off. The Speed comes from the kernel (sysfs).
Speed: the drive, the port and the measurement¶
The last row of specs and the Test pill at the top answer whether the drive can run at its full speed in this console.
- Board link is the most the drive's port carries: a PCIe port's generation and lanes, a SATA port's limit or the USB bus's speed, with about how many MB/s that carries. It is an estimate from sysfs, which may not describe the actual port, not a verified specification of the PS5's hardware.
-
Rated R / W is what the maker says the drive reads and writes, in MB/s. No drive reports it, so SSD Check keeps a list from the makers' data sheets, of the NVMe drives of PCIe 3.0 and later and a few SATA SSDs, each capacity with its own speeds where the maker rates them per capacity. It is a reference, not a measurement:
Maker Drive Capacities Samsung 970 EVO Plus 250GB, 500GB, 1TB, 2TB 980 250GB, 500GB, 1TB 980 PRO 250GB, 500GB, 1TB, 2TB; with heatsink 1TB, 2TB 990 EVO 1TB, 2TB 990 EVO Plus 1TB, 2TB, 4TB 990 PRO 1TB, 2TB, 4TB, also with heatsink 9100 PRO 1TB, 2TB, 4TB, 8TB, also with heatsink 860 EVO, 870 EVO (SATA) every capacity WD_BLACK SN750 250GB, 500GB, 1TB, 2TB, 4TB SN750 SE 250GB, 500GB, 1TB SN770 250GB, 500GB, 1TB, 2TB SN770M 500GB, 1TB, 2TB SN850 500GB, 1TB, 2TB SN850X, SN850P 1TB, 2TB, 4TB, 8TB SN7100 500GB, 1TB, 2TB, 4TB SN8100 1TB, 2TB, 4TB, 8TB Crucial P3, P3 Plus 500GB, 1TB, 2TB, 4TB P5 Plus 500GB, 1TB, 2TB T500 500GB, 1TB, 2TB, 4TB P310 500GB, 1TB, 2TB T700, T705, T710 1TB, 2TB, 4TB P510 1TB MX500 (SATA) every capacity SK hynix Gold P31, Platinum P41 500GB, 1TB, 2TB
A drive that is not in the list shows Unknown; hover it to see what its fastest link carries instead. Two
brands always show Unknown:
- Netac: its NVMe drives tell the system only their capacity ("Netac NVMe SSD 1TB"), never which model
they are, so SSD Check cannot know their rated speed.
- CUSU: it publishes no specifications for its drives.
- Measured R / W is what the drive does in this console. Click the Test pill at the top: SSD Check writes
a test file of up to 1 GiB to the drive, reads it back and deletes it, which takes a few seconds (at most ten
seconds of writing on a slow drive). The file goes in your home folder when that is on the drive
(~/.cache/ps5-ssd-check/), else on the drive's first mount point you can write to, such as a USB stick. Click
the pill again to measure again.
When the port holds the drive back, the measured speeds stay under what the port's link carries, however fast the drive is rated.
What to know about the speed test:
- It needs 2 GiB of free space. It writes random data and tries to bypass the cache (direct I/O), so a file system that compresses cannot make the drive look faster. The result still depends on the file system, the load and the hardware.
- It writes to the drive, which adds a little wear and may slow other work on the drive while it runs.
- A drive that is not mounted cannot be measured. A drive with another system on it has file systems that belong to root: the Test pill then stays empty, and hovering it says why. Encrypted or layered storage can hide the mount from the app in the same way.
- A test file that is there already is not overwritten: the pill then says Failed; hover it for the reason.
If the test is interrupted, its file (
.ps5-ssd-check-speed-test) may remain in that folder; delete it.
Firmware updates¶
The Update pill asks fwupd, Bazzite's firmware updater, whether the LVFS (the Linux Vendor Firmware Service) has a newer firmware for the drive:
| Update | Meaning |
|---|---|
| Available | a newer firmware is on the LVFS; hover the pill for its version. GNOME Software or fwupdmgr update installs it: back up first. |
| Up to date | fwupd knows no newer firmware for the drive |
| Unknown | fwupd does not answer, or has no firmware list yet: fwupdmgr refresh downloads it. Hover the pill to see which. |
| Not supported | fwupd does not know the drive, or cannot update its firmware. That says something about fwupd, not about the drive. |
SSD Check only asks: it never installs firmware.
The serial number shows only when you click its pill, and is never written to a log.
Install¶
Install it from the portal (the Utilities tab), or from a checkout of the repository:
apps/ssd/install.sh # the app, its launcher, a menu entry and a Desktop icon
apps/ssd/install.sh --no-desktop-shortcut # without the Desktop icon
apps/ssd/install.sh --uninstall # remove it; --purge removes its settings too
The launcher is ~/.local/bin/ps5-ssd-check; the app runs on the suite's shared Python environment. It needs
busctl (systemd's) and the udisks service, which every Bazzite has.
License¶
GPL-3.0-or-later, see LICENSE.