VOGONS


Reply 20 of 29, by MattRocks

User metadata
Rank Oldbie
Rank
Oldbie
Dimos wrote on 2025-03-24, 12:43:
Greetings to all! A couple of days ago i finally installed an Ssd drive on my Windows XP build. Knowing of course that from Wind […]
Show full quote

Greetings to all! A couple of days ago i finally installed an Ssd drive on my Windows XP build. Knowing of course that from Windows Vista and before no Microsoft OS natively supports the Trim command for Ssd drives i have spent quite some time searching for some kind of software that could manually Trim an Sdd drive. Of course modern Ssds work so well that even without Trim you could use one on an old Os and don't have to worry about performance reduction or premature wear (Garbage Collection works at the firmware level, independently from the OS, Trim just makes this procedure easier, more efficient). After several hours searching various forums, including Vogons, i have found a couple of software utilities that had a manual Trim option. I installed and tested three of them (Anvil's Storage Utilities, Iobit Smart Defrag and Elpamsoft Ssd Tweaker) but none of them provided any kind of documentation concerning the Trim option (if it works only for OSes that natively support Trim and the only thing they do is manually sending the command or they somehow work on older OSes and in which way do they do that exactly) and i was uncertain if they did anything really for Windows XP. Until yesterday i came across some info that suggested that Acronis True Image 2014 also has an option that enables Trim and the person mentioning that also verified that it was indeed working on XP after using Trimcheck. So intrigued by this i searched a little further and came across this document: https://dl.acronis.com/u/pdf/ATIH2014_userguide_en-US.pdf
In this it is mentioned that:

Note: The utility uses the standard TRIM command to inform an SSD about blocks of data that are no longer in
use and can be erased. Please make sure that your SSD has necessary firmware to support it.

and also:

Trimming an SSD by means of Acronis True Image 2014 is reasonable only if you use Windows Vista or earlier. Windows 7 supports […]
Show full quote

Trimming an SSD by means of Acronis True Image 2014 is reasonable only if you use Windows Vista
or earlier. Windows 7 supports the standard TRIM command right out of the box and erases cells as
soon as data is deleted.
To trim an SSD:
1. On the sidebar or on the toolbar, click Tools & Utilities and select Trim SSD.
This opens the wizard.
2. From the list of available drives, select the SSD(s) that you want to trim and click Next.
3. Review the summary page and click Proceed.
4. If you have run the wizard under Windows, click Reboot when prompted.
After the reboot, the operation will automatically proceed in the standalone Linux-based
environment. When the operation is complete, the wizard will boot up Windows again.

So it explicitly says that what it does is to send the standard Trim command and that this function actually is provided in order to be used with older OSes that don't natively support Trim. So as you can imagine i installed the specific version (2014) of the software (newer versions seem to lack the Trim option, haven't verified that myself), found the Trim option, selected my drive and everything went as expected, the pc restarted, it entered into the linux based boot environment, Trim completed and computer restarted again. To be absolutely certain that it worked i run Trimcheck (very useful tool btw): https://files.thecybershadow.net/trimcheck/ before and after the procedure and verified that Trim actually works! So that's it, there is at least one completely verified third party tool that actually does this job and thought that it would be useful to share this with anybody that might be interested!

You need Garbage Collection, not TRIM. New SSDs have excellent GC algorithms, but they are very reluctant to activate their GC. They wait for TRIM signals that never come - that is the problem you face.

Early SSDs predate TRIM. What they did differently is continuous GC. But, it trying to do its GC while you are trying read and write data hurts performance. To mask the performance problem they demanded massive over provisioning.

Desktop timeline [ MOS 7501 → 68030 → x86(P5/MMX) → x86(K6-2) → x86(K7*) → PPC(G3*) → x86-64(K8) → x86-64(Xeon) → x86-64(i5) → x86-64(i7) ] * lost

Reply 21 of 29, by Matth79

User metadata
Rank Oldbie
Rank
Oldbie

On a SSD, overwriting logical addresses creates garbage that can be GC'd, while deleting files without trim creates deadweight, blocks that the SSD counts as valid and have to be preserved and moved during GC, they will be garbaged if other files write to the same logical addresses.
A key limitation of NAND flash in SSD is that it is erased (in erase blocks) to set the data one way, and then written the other way, and then those bits cannot be reversed other than by erase.
Under partitioning does mitigate the issue, space within a partition that NEVER gets touched also helps, but file system allocation rules prefer fresh space unless already uncomfortably full

Reply 22 of 29, by MattRocks

User metadata
Rank Oldbie
Rank
Oldbie

The reason TRIM matters at all is because it enables the OS to tell the SSD that a delete is not an overwrite. Without TRIM, the SSD doesn't know the difference between an overwrite and a delete.

The always changing metadata (e.g. time a file was last accessed) means the NTFS index file is constantly rewritten - this is the source of delete garbage that grows faster than the GC can clean up. EDIT: You can disable NTFS access-time updates, but conceptually NTFS concentrates the description of your disk in one small area of the disk so each time you touch any file on the disk there is a delete of old records creating a high concentration of garbage in one small disk area.

FAT32 distributes the metadata as lots of little files throughout the disk - that is a big source of seek delays on HDDs, but SSDs don't seek - and it creates only tiny amounts of delete garbage in random locations that old style GC can keep clean.

But a new SSD is still going to assume TRIM exists, and won't start its GC aggressively enough to keep on top of FAT32 garbage. This where mixing old and new doesn't work.

With old signals, the best way forward is to use old SSD and old FAT32 file system. That is three things to align. Mixing them up creates problems. EDIT: Win2K/WinXP can boot from FAT32 partitions and Vista+ requires NTFS partition.

Last edited by MattRocks on 2026-01-10, 20:18. Edited 2 times in total.

Desktop timeline [ MOS 7501 → 68030 → x86(P5/MMX) → x86(K6-2) → x86(K7*) → PPC(G3*) → x86-64(K8) → x86-64(Xeon) → x86-64(i5) → x86-64(i7) ] * lost

Reply 23 of 29, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie
Logic wrote on 2026-01-09, 17:02:
IIRC the SD Card Association's Formatter does use FAT32 IF the card is 32GB or smaller. (Also USB flash drives. I dont kno […]
Show full quote
wierd_w wrote on 2025-03-24, 20:46:

Yes. For a real SSD, that would do.

Again, SDcard is not a real SSD, and has no such function. It's designed to be as cheap to manufacture as possible, meaning the nand controller inside is hyper simplistic.

That's why they die so easily from abuse, and need to be treated special. (And why the SDCard Assn demands they be formatted with exfat, which enforces that treatment.)

IIRC the SD Card Association's Formatter does use FAT32
IF
the card is 32GB or smaller.
(Also USB flash drives. I dont know/doubt about SATA connected drives?)

The long format (whatever they call it) is about as close as one can get to a Secure Erase for SD Cards and flash drives:
A cheap USB flash drive went from 1MB/s writes to 6MB/s here,
until filled once that is..!

It also has an uncanny ability to fix troublesome drives.
IIRC; Marks 'bad sectors' as such. etc?

(If the SD card is going into a half decent card slot for a OS type long stay;
Some non conductive thermal compound helps surprisingly well to avoid Heat Death and ctlr slowdowns!
It takes some applying to the slot (with a sized bit of cardboard) And to the SD Card itself. (That's so it does not all just get wiped away/off upon insertion...)
Then a wipe off of the excess around the inserted card/holder.
(A small heatsink also helps, As does a bit of airflow)

A messy business to clean when you do remove the card, to be sure, but worth it IMHO.
I recommend 1st cleaning/wiping off the excess, before removing the card, to Avoid filling the slot with dusty old TC.
Then more cleaning.)

The Samsung Evo+ (not Evo Plus) cards have a good rep for fast R4K (writes) in Raspberry Pi circles.

For the 32gb and smaller devices, the page and erase block sizes are within the capabilities of the FAT32 filesystem, and the factory format uses that size. It's 'the same thing*'.

* For these smaller cards, the FAT32 cluster size is set to the eraseblock size. Usually someplace between 4k and 32k. For the larger cards, that are SDHC or SDXC, the SDCard Assn wants you to use eXFAT, and the cluster size is *STILL* factory formatted to be equal to the erase block size. (usually someplace in the neighborhood of 4mb) In both cases, it is "The Same Thing"-- The computer only writes in atomic sizes that match the erase block, and this is done to prevent the card from getting nuked by amplified writes. It *ALSO* gives faster read accesses, because the card can return that many logical 512 byte sectors on a single read operation. If the card is formatted with a crappy cluster size, then the computer will dispatch multiple read operations for several clusters, and will want acknowledgements for these transactions. This increases the overhead, and slows the card down with traffic it does not actually need to be doing.

Reply 24 of 29, by freaked

User metadata
Rank Newbie
Rank
Newbie

Sorry for bumping this thread, but I felt like it. ATA SSDToolbox is not suitable for XP/Vista.

Today - with my last few brain cells clearly switched off - I apparently managed to "TRIM" a hard drive with ADATA SSDToolbox. I use to have SSDs in anything that runs XP or newer. Or anything that came with a terribly slow and faulty 1.8" ZIF-HDD. The process took barely any less time than when I had run it on an SSD about an hour earlier on a different machine. That made me question whether the program was actually doing what it claimed, at least when used with third-party drives. So I took a look at it in WinDbg, and it was devastating to see what it does. As far as I can tell, all it does is repeatedly load fsutil.exe:

ModLoad: 00a90000 00aa0000 fsutil.exe

Every time a new line like that appears in the debugger, the progress bar in SSDToolbox advances. This continues until it reports that the TRIM operation has completed successfully. To me, it looks as though the program isn't issuing any TRIM commands itself, but is relying entirely on fsutil - and therefore the operating system - to do the actual work.

0:003> da poi(esp+4) 
0341f298 "fsutil file createnew C:\tmpxxxa"
0341f2b8 "data\xxxtmpxxxadataxxxwtf42.tmp "
0341f2d8 "2147483648"

So it creates a large number of temporary files that fill up the file system, and then deletes them all again:

Breakpoint 1 hit
eax=03aae254 ebx=759e3db3 ecx=024a0000 edx=00000000 esi=03aaf4c8 edi=0034b8f8
eip=759e8312 esp=03aad7dc ebp=751d65bd iopl=0 nv up ei pl nz na po nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000202
kernel32!DeleteFileW:
759e8312 8bff mov edi,edi
0:003> du poi(esp+4)
03aae254 "C:\tmpxxxadata\xxxtmpxxxadataxxx"
03aae294 "wtf1.tmp"

It is obvious: the app fully relies on the operating system it is running on, developed in the cheapest possible way. It creates large temporary files that occupy free space and then deletes them again. If the operating system supports TRIM, this deletion can cause NTFS to report the freed clusters to the driver, which eventually sends the TRIM command to the SSD. As we know, XP and Vista cannot do this.

The SSDToolbox process itself only repeatedly called IOCTL=002d1080 (IOCTL_DISK_IS_WRITABLE) before launching fsutil. This IOCTL belongs to the file system layer, is not an ATA command, and appears to merely check whether the file system is writable or read-only. Due to how frequently it is called, it is probably also being used to determine how much free space is available. I would have expected to see something more along the lines of IOCTL_ATA_PASS_THROUGH, but that never happens.

So, do not use SSDToolbox under XP or Vista as it does not actually do anything useful there. It only works properly from Windows 7 onwards. https://files.thecybershadow.net/trimcheck/ - if anyone wants to test this themselves before and after. (First place Trimcheck on the SSD and run it, then run the SSDToolbox TRIM function, and finally run Trimcheck again.). It may also be worth occasionally looking after the SSD from a Linux live CD, where fstrim is available. For FAT32/FAT16 and older Windows 9x systems, Loew's TRIM utility is suitable: https://rloewelectronics.com/

ModLoad: 00fe0000 00ff0000   fsutil.exe
Breakpoint 2 hit
eax=0341e5d8 ebx=0341f470 ecx=024a0000 edx=00000000 esi=00000000 edi=0341f388
eip=759e29ee esp=03aaf24c ebp=03aafce0 iopl=0 nv up ei pl zr na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000246
kernel32!CreateFileW:
759e29ee 8bff mov edi,edi
0:003> k
ChildEBP RetAddr
WARNING: Stack unwind information not available. Following frames may be wrong.
03aaf248 011049f8 kernel32!CreateFileW
03aafce0 75a60274 SSDTool+0x249f8
03aafcec 774ae8c5 kernel32!BaseThreadInitThunk+0xe
03aafd2c 774aead7 ntdll!RtlCreateUserProcess+0x8c
03aafd44 00000000 ntdll!RtlCreateProcessParameters+0x4e
0:003> dd esp L5
03aaf24c 011049f8 0341e5d8 80000000 00000000
03aaf25c 00000000
0:003> du poi(esp+4)
0341e5d8 "C:\tmpxxxadata\xxxtmpxxxadataxxx"
0341e618 "wtf44.tmp"
0:003> g
Breakpoint 0 hit
eax=00000000 ebx=0341f4c0 ecx=00000000 edx=00000000 esi=0341f378 edi=0341f470
eip=75a5d21d esp=03aaf260 ebp=03aafce0 iopl=0 nv up ei pl nz na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000206
kernel32!WinExec:
75a5d21d 8bff mov edi,edi
0:003> k
ChildEBP RetAddr
WARNING: Stack unwind information not available. Following frames may be wrong.
03aaf25c 011049d9 kernel32!WinExec
03aafce0 75a60274 SSDTool+0x249d9
03aafcec 774ae8c5 kernel32!BaseThreadInitThunk+0xe
03aafd2c 774aead7 ntdll!RtlCreateUserProcess+0x8c
03aafd44 00000000 ntdll!RtlCreateProcessParameters+0x4e
0:003> dd esp L5
03aaf260 011049d9 0341f378 00000000 c57a7bc8
03aaf270 00000000
0:003> da poi(esp+4)
0341f378 "fsutil file createnew C:\tmpxxxa"
0341f398 "data\xxxtmpxxxadataxxxwtf44.tmp "
0341f3b8 "2147483648"
[...]
Breakpoint 1 hit
eax=03aae254 ebx=759e3db3 ecx=024a0000 edx=00000000 esi=03aaf4c8 edi=0034b8f8
eip=759e8312 esp=03aad7dc ebp=751d65bd iopl=0 nv up ei pl nz na po nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000202
kernel32!DeleteFileW:
759e8312 8bff mov edi,edi
0:003> k
ChildEBP RetAddr
WARNING: Stack unwind information not available. Following frames may be wrong.
03aad7d8 010ee110 kernel32!DeleteFileW
03aad868 7745f956 SSDTool+0xe110
03aad95c 7745f7a0 ntdll!RtlDeactivateActivationContextUnsafeFast+0xc17a
03aad9a8 77473c76 ntdll!RtlDeactivateActivationContextUnsafeFast+0xbfc4
03aad9d8 77498a50 ntdll!RtlQueryAtomInAtomTable+0x45f
03aada20 7746ee46 ntdll!RtlLocaleNameToLcid+0x1749
03aada2c 77493728 ntdll!RtlAllocateHandle+0x9b
Show last 10 lines
03aada54 77473a24 ntdll!RtlFreeHandle+0x3688
03aada98 77473ad4 ntdll!RtlQueryAtomInAtomTable+0x20d
00000000 00000000 ntdll!RtlQueryAtomInAtomTable+0x2bd
0:003> dd esp L5
03aad7dc 010ee110 03aae254 0341f540 03404518
03aad7ec 03aafce0
0:003> du poi(esp+4)
03aae254 "C:\tmpxxxadata\xxxtmpxxxadataxxx"
03aae294 "wtf1.tmp"
[...]

Reply 25 of 29, by TELVM

User metadata
Rank Oldbie
Rank
Oldbie
freaked wrote on 2026-07-19, 18:31:

... do not use ADATA SSDToolbox under XP or Vista as it does not actually do anything useful there ...

^ I had been suspecting that for a long time, thanks for the confirmation.

Let the air flow!

Reply 26 of 29, by Barley

User metadata
Rank Member
Rank
Member

I started a similar thread last week (Verifying that Samsung Magician actually trimmed an SSD in Windows XP) specifically about Samsung Magician 4.97, the last version that works under Windows XP. It only recognizes certain older Samsung SSDs. But I discovered that even with a compatible SSD, and with the Magician tool claiming that TRIM (done during Performance Optimization) was done successfully, trimcheck confirmed that it did not actually trim the SSD. Naraeon SSD Tools 5.4.0 did work, but I'm unclear on what SSDs are compatible with it. The website lists the following SSDs, but the list is very old. I wonder if it works with newer SSDs.

Intel 750 Series,
Samsung 830, 840 (Normal, Pro, EVO), PM951, SM951, 950 Pro,
Liteon S100, E200, S200,
Plextor M3P, M5P, M5S, Ninja,
Mach Xtreme MYLES, FUSION, JET ULTRA
Toshiba Q Series F, H, Pro Model
Sandisk X110, Z80
Crucial M500, M550, MX100, MX200, MX300
Seagate 600
ADATA SP920, SP900
Phison Solution CP7
Transcend 220S, and many more…

I confirmed Samsung 850 PRO is compatible, but it would be great if others could use this tool in Windows XP and report back if their SSD is compatible with the tool, and if trimcheck confirms that TRIM was successful.

Reply 27 of 29, by freaked

User metadata
Rank Newbie
Rank
Newbie

Yep, Naraeon seems to work (I didnt check with Windbg however, too much hassle). Trimcheck reported it working - 2026 bought Intenso TOP, HIGH and Performance models

Reply 28 of 29, by freaked

User metadata
Rank Newbie
Rank
Newbie

Also worked for a Transcend 120GB M.2 SATA SSD (using 1.8 ZIF adapter) in Dell XT.

Reply 29 of 29, by crusher

User metadata
Rank Member
Rank
Member

ADATA SSD Toolbox works for me under XP. Checked it with trimcheck.
Board is a ASUS TUSL2-C and my SSD is a Samsung Evo (850 I think; can check this when at home).