Sources
TRIM Check reads the output of commands you run and explains it. It has no simulated numbers. This file says where each
claim on the page comes from: what each command prints, what each setting means, and where TRIM can be lost. The test
fixtures, real output that other people posted and output from one Windows 11 PC, are listed with their sources in
test/fixtures/SOURCES.md. Items the sources do not settle are listed under “Open items”. Checked on 2026-10-15 against
the saved copies named below.
The result the page shows before anything is pasted is not an invented case. It is the output of fsutil behavior query DisableDeleteNotify and Get-PhysicalDisk captured on one Windows 11 PC with four NVMe SSDs
(windows-fsutil-this-pc.txt and windows-physicaldisk-this-pc.txt in the fixtures), run through the same parser as a paste.
Windows
- Microsoft Learn, “fsutil behavior” (saved 2026-10-15). Used for:
disabledeletenotifydisables (1) or enables (0) delete notifications, “also known as trim or unmap”, which tell the storage device which clusters a file delete freed; NTFS has trim enabled by default unless an administrator disables it; ReFS v1 has it enabled by default and ReFS v2 disabled by default; a hard disk or SAN that reports no trim support gets no notifications; no restart is needed. The page’s example output is “NTFS DisableDeleteNotify = 1” and “ReFS DisableDeleteNotify is not currently set”, and the override commands arefsutil behavior set disabledeletenotify ReFS 0andfsutil behavior set disabledeletenotify 1. Microsoft also notes that some devices slow down with delete notifications on, which is why some guides turn them off. TRIM Check’s fix command,fsutil behavior set DisableDeleteNotify {NTFS|ReFS} 0, follows that syntax. - Windows 7 engineering blog, “Support and Q&A for Solid-State Drives” (Microsoft Learn archive, saved). A secondary source for the same points: TRIM is on by default and a query result of 0 means it is enabled.
- Microsoft Learn, Optimize-Volume (saved for Defrag Lab). Used for:
-ReTrimgenerates TRIM and Unmap hints for all currently unused sectors. Microsoft Learn, defrag (saved for Defrag Lab): the scheduled optimization task runs a retrim for SSDs, which is the “same job Windows runs on a schedule”. The “Total space trimmed” line the tool reads is from real output saved in the fixtures. Get-PhysicalDiskmedia and bus types: read from real output saved in the fixtures. The Microsoft page for the cmdlet is not saved.
Linux
- util-linux,
lsblk.cat v2.40 (saved for Secure Erase Lab). Used for: the--discardcolumns DISC-ALN, DISC-GRAN (“discard granularity”), DISC-MAX (“discard max bytes”) and DISC-ZERO, read from each device’s sysfs queue values. - Linux kernel ABI documentation,
Documentation/ABI/stable/sysfs-block(saved 2026-10-15). Used for: “A discard_granularity of 0 means that the device does not support discard functionality”, anddiscard_max_hw_bytesis the most the device can discard in one operation. This is why a zero in DISC-GRAN or DISC-MAX reads as no TRIM for that layer, and why a zero layer above a working disk (LUKS, RAID) is flagged. - fstrim(8), util-linux manual page (man7.org, saved). Used for:
-atrims all mounted filesystems on devices that support discard;-vprints the number of bytes the filesystem passed down the block stack “for potential discard”, which the manual calls a maximum from the device’s point of view and which can be the same on every run; for most desktop and server systems “a sufficient trimming frequency is once a week”; running fstrim often, or mounting with-o discard, may shorten the life of poor-quality SSDs. That is why the page calls a missingdiscardmount option normal when the weekly timer is on. - util-linux,
sys-utils/fstrim.timer(saved 2026-10-15). Used for: the timer util-linux ships runsOnCalendar=weeklywithPersistent=true, the “weekly trim job”. - Arch Wiki, “Solid state drive” (saved). A secondary source: the fstrim.timer activates fstrim.service weekly; some USB bridge chips can pass TRIM through the UAS driver and others need configuration. It supports the page’s line that a USB adapter may not pass TRIM on.
- systemctl(1), systemd manual page (man7.org copy, saved 2026-10-15). Used for: the unit states the tool reads (enabled,
disabled, static, indirect, masked, and a unit that is not found),
enable --now, andunmask. The freedesktop.org copy was not reachable on 2026-10-15. findmnt -no OPTIONS /: the tool looks for thediscardmount option in what it prints. The findmnt page is not saved; fstrim(8) above is the source for what the option does.
macOS
system_profiler SPNVMeDataType SPSerialATADataTypeand itsTRIM Support: YesorNoline: read from real output posted publicly, listed intest/fixtures/SOURCES.md. The author has not run it on a Mac, and the README says so.- AKiTiO FAQ, “How to enable TRIM on macOS” (saved). A secondary source: Apple added
trimforcein Mac OS X 10.10.4 so owners of third-party SSDs can enable TRIM.
The drive
- NVM Express Base Specification, revision 2.4 (2026-07-31), Figure 338, Identify Controller: bytes 521:520 are ONCS, a 16-bit field, and bit 2 says the controller supports the NVM Command Set Dataset Management command, which is how NVMe carries TRIM. This is why a value outside 0 to 65535 is refused.
- ATA/ATAPI Command Set 3 (ACS-3), T13/2161-D working draft revision 5 (saved for Secure Erase Lab), section 7.5 DATA SET MANAGEMENT (06h) and its TRIM bit: the SATA command behind TRIM.
- hdparm 9.65 source,
identify.c(saved for Secure Erase Lab):hdparm -Iprints “Data Set Management TRIM supported” when the drive reports it. smartctl’sTRIM Command:line has no real sample and no saved documentation; its test is markedsynthetic-from-documentation.
What TRIM is and is not
- Flash Foundations Part 7: TRIM does not free space instantly or erase anything on its own, and the controller decides when to erase. That is the page’s last path stop, “The drive acts on it in its own time”, and its line that this cannot be seen from outside.
- Wei et al., “Reliably Erasing Data from Flash-Based Solid State Drives”, USENIX FAST 2011 (saved): the TRIM command tells the drive a range of LBAs is no longer in use, “but this does not have any reliable effect on data security”. That is the source of “TRIM does not erase data securely”; the Secure Erase Lab says the same.
Limits that are not claims
- The caps of 200,000 characters, 20,000 lines and 40 reported parts are implementation limits.
- The fix commands are limited to four, and a test asserts nothing else can appear: a design choice.
Open items for Sean
- The page calls a trim run that reports more than 0 bytes the honest test and says TRIM “was accepted”. fstrim(8)
says the
-vfigure is what the filesystem passed down for potential discard, not what the device discarded, and that it can be the same on every run. A run without a “not supported” error does show that no layer refused the request. “No layer refused it” would match the source more closely than “accepted”. Optimize-Volume’s “Total space trimmed” has no saved definition either way. - The “not currently set” explanation says Microsoft documents the default as sending TRIM to SSDs. Microsoft says that for NTFS and ReFS v1, but says ReFS v2 has trim disabled by default, and its own example shows ReFS as “not currently set”. A ReFS line that is not set may mean TRIM is off.
- The “DisableDeleteNotify is 0” explanation says “Windows only does this for SSDs”. Microsoft says delete notifications go to any device that reports trim support, and a SAN that supports unmap is one. “Windows only sends it to drives that say they support it” would match the source.
- The virtual disk advice (the hypervisor has to expose discard, such as a “discard” or “unmap” option) has no saved source.
- Apple’s own warning text for
trimforce(that it can cause data loss on drives that mishandle TRIM) has no saved primary. The trimforce manual page or Apple’s support text would cover it. - The
Get-PhysicalDiskandfindmntdocumentation pages are not saved; the real outputs in the fixtures stand in.