First post, by retardware
- Rank
- Oldbie
Overprovisioning means to set the SSD/HDD size smaller than it actually is.
This is done for various reasons:
-Some OSes/BIOSes have limits. In this case the limit is the 28-bit-LBA limit of Windows 98.
-Overprovisioning results in free extra internal management space that the SSD firmware can use for garbage management etc., reducing the negative impact of write amplification.
However, in practice this is not as easy as it seems, because of an annoying "security feature".
Windows 10 seems to love setting the "security lock" of SSD drives, so the common method of just unplugging the SATA power cable for a moment to unlock it did not work for me, in contrary to what the Intel documentation and their IntelMAS software suggested. So IntelMAS turned out to be useless, at least in practice.
For this reason to me it seems the easiest way to do that generically using Linux.
I'll show how I did that, configuring a 160GB SSD to exactly 128/137GB for usage with Windows 98.
Personally I recommend doing this using a Knoppix Live DVD, as Knoppix has a lot of useful system hardware management tools.
First I look which drives are present. The Disks program is very nifty for this, (Start->Accessories->Disks) as you can do some other things like enabling SMART and examine its data as well with just a few clicks.
First step should be erasing the SSD, telling its internal management to discard any previous data, so it does not need to preserve/rearrange it, preventing write amplification from the old contents.
In a terminal, su to root and then follow the instructions in this good write-up.
The next step then would be the actual overprovisioning. A neat small article about this is here.
The only thing you need to do different is to use hdparm -Np268435455 to set to the maximum (2^28 minus 1) sectors for old LBA.
After doing that reboot to load the new values.
Finally, the last step would be to create a FAT32LBA partition and set it active.
su to root in from command line/terminal window and then call fdisk: fdisk /dev/sdX where X is the id of the SSD you want to set up.
Then enter "o" to set up a MBR partition table.
After that enter "n" to set up a partition. Then enter "p" to set up a primary partition. After that you only need to press Enter a few times now, as the defaults are what you probably will want.
Now, press "t" and then enter "c" to change the partition type to FAT32LBA.
Then, press "a" to toggle the bootable flag, resp. set that partition as "active".
Finally, press "w" to write the partition table.
Probably it wasn't strictly necessary, but I rebooted.
And then I lazily used the "Disks" utility mentioned above to format the partition.
Finally, I booted from a DOS hard disk, did the obligatory SYS <drive>: and ATTRIB -R -H -S <drive>:*.* commands (with "D" as <drive> in this case), and copied to the SSD all the stuff I need for proceeding (Windows 98 CD files, utilities and drivers).
The very last step was putting the boot code to the SSD (D:) using the fdisk /cmbr 2 command. (If you set up using a floppy, you might be able to use fdisk /mbr instead)
Now the SSD was configured as big as DOS7.1/Windows 98 allows, bootable and can be put into use.
My "instructions" are just an example how one can do this.
Probably there are easier, less retarded ways to do this.
Thus, other descriptions how to overprovision SSDs for retro systems are welcome 😀