SN550 - Why it uses 512B sector instead of 4096?

This question is a site track to this discussion and deserves its own thread.
But to answer your question.

Every NVMe drive brand/model has its own LBA formatting options. You first have to lookup which ones it offers and then select the appropriate one. Here’s how you can do that in Linux:

Find the NVMe drive/namespace name with:

$ lsblk -l

Lookup the formatting scheme’s it offers (assuming the drive/namespace name that is found above is /dev/nvme0n1):

$ sudo nvme id-ns /dev/nvme0n1 --human-readable
<cut>
LBA Format 0 : Metadata Size: 0 bytes - Data Size: 512 bytes - Relative Performance: 0x2 Good (in use)
LBA Format 1 : Metadata Size: 0 bytes - Data Size: 4096 bytes - Relative Performance: 0x1 Better

For this drive we can see that scheme 1 is the 4069B advanced format scheme, which should deliver “0x1 Better” performance according to the drive itself (0x1: the lower the number the better the performance). We can also see here that formatting scheme 0 (Data Size: 512 bytes) is currently in use.

Now use that number (1) to input into the format command in order to re-initialize the drive to the new physical sector size (all data will be lost!!!):
Re-initialization to 4096 physical sector size/interface (advanced format):

$ sudo nvme format /dev/nvme0n1 --lbaf=1 --reset

Explanation of options:
(-r reset after succesful format)
(–lbaf=1 LBA Format 4096 physical sector size / advanced format)

Now you must partition and format the drive in order to use it or just run the installer of your preferred OS instead.
Partition and Format with GUI under Linux:

$ sudo -i gparted /dev/nvme0n1

1 Like