I recently bought a server which came with Samsung PM1643 SSDs. Trying to install Ubuntu on them didn’t work at first try, because the drives had 520 byte sectors instead of 512 byte.
Luckily, there’s a fix–get the drive(s) to a WORKING Ubuntu system, plug them in, and use the sg_format
utility to convert the sector size!
root@ubuntu:~# sg_format -v --format --size=512 /dev/sdwhatever
Yep, it’s really that easy. Be warned, this is a destructive, touch-every-sector operation–so it will take a while, and your drives might get a bit warm. The 3.84TB drives I needed to convert took around 10 minutes apiece.
On the plus side, this also fixes any drive slowdowns due to a lack of TRIM, since it’s a destructive sector-level format.
I’ve heard stories of drives that refused to sg_format
initially; if you encounter stubborn drives, you might be able to unlock them by dd
ing a gigabyte or so to them–or you might need to first sg_format
them with --size=520
, then immediately and I meanĀ immediately again with --size=512
.
This trick has enabled me to take drives from enterprise arrays and use them on my machines at home. They’re usually writing extra information like block checksums in the additional 8 bytes. I have not found a RAID controller that likes this, however. It either needs to be just an HBA or a RAID controller in initiator-target (IT) mode.