The Goal
I was adding a new Seagate Exos X20 (ST20000NM007D, 20 TB) to my Synology DS1821+ running DSM 7.2.2. These drives ship from the factory in 512e mode - they physically use 4096-byte sectors but advertise 512-byte sectors for legacy OS compatibility. Since my NAS and DSM support native 4K sectors, I converted the drive to 4Kn (native 4K) before adding it to the storage pool.
Why Native 4K?
512e is a compatibility shim. The drive’s physical sectors are 4096 bytes, but when the OS writes a 512-byte block, the drive must read the entire 4096-byte physical sector that contains it, modify the relevant 512 bytes, and write the full sector back - a read-modify-write cycle on every write. Native 4K eliminates this: every OS write maps directly onto a physical sector.
Modern Linux, btrfs (which Synology DSM uses internally), and DSM itself all handle 4K sectors natively. For large drives like the Exos X20, 512e exists purely for compatibility with old systems that can’t handle 4K. If your NAS supports 4K - and the DS1821+ does - there’s no reason to leave the drive in emulation mode.
This conversion erases all data on the drive. Do it before adding the drive to a volume.
Prerequisites
- A blank (new or freshly wiped) drive - the conversion erases everything
- A USB thumb drive
- SSH access to the NAS
SeaChest_Litestatic binary for x86_64 Linux (musl) - available from Seagate’s SeaChest GitHub repository under the ToolBin releases- Firmware
.LODfile for your specific drive model - available from Seagate’s support downloads for the drive
Copy both files to the root of the USB share (not inside any subdirectory - the path matters for the commands below).
The procedure below follows the guide published on synoforum.com.
Steps
1. Connect and identify the drive
Connect the thumb drive to the NAS (the front USB port works fine), SSH in, and change to the USB share:
cd /volumeUSB1/usbshare
List all devices SeaChest can see:
sudo ./SeaChest_Lite_x86_64-alpine-linux-musl_static -s
Vendor Handle Model Number Serial Number FwRev
ATA /dev/sg0 ST20000NM007D-3DJ103 ZVT86D8D SN03
Synology /dev/sg1 DiskStation 6C5608052080 PMAP
ATA /dev/sg2 ST20000NM007D-3DJ103 ZVT6M8GH SN03
JetFlash /dev/sg3 Transcend 64GB AA00000000000489 1100
The /dev/sg* handles are not stable across reboots - the kernel assigns them in
discovery order. Use dmesg to cross-reference by SCSI address instead:
dmesg | grep 512-byte
[ 44.517821] sd 10:0:0:0: [synoboot] 245760 512-byte logical blocks: (126 MB/120 MiB)
[346252.143974] sd 7:0:0:0: [sata2] 39063650304 512-byte logical blocks: (20.0 TB/18.2 TiB)
[347010.275382] sd 11:0:0:0: [usb1] 118110208 512-byte logical blocks: (60.5 GB/56.3 GiB)
The 20 TB drive is SCSI address 7:0:0:0. Map that address to its sg node via sysfs:
ls -lh /sys/class/scsi_device/7:0:0:0/device/scsi_generic
drwxr-xr-x 3 root root 0 Jun 27 18:50 sg2
The target drive is /dev/sg2.
2. Update firmware
Flash the firmware before changing the sector size. The synoforum guide treats this as a prerequisite - presumably to ensure the drive is on a build known to handle the format change reliably. Whether your existing firmware version is already sufficient is unclear, so just do it:
sudo ./SeaChest_Lite_x86_64-alpine-linux-musl_static \
-d /dev/sg2 \
--downloadFW LongsPeakExosX20SATA-STD-512E-SN03.LOD
/dev/sg2 - ST20000NM007D-3DJ103 - ZVT6M8GH - SN03 - ATA
......
Firmware Download successful
New firmware version is SN03
3. Reboot the NAS
Reboot before continuing. The firmware update doesn’t fully activate until the drive is power-cycled.
After reboot, SSH back in, cd /volumeUSB1/usbshare, and re-identify the device node
using the same dmesg | grep 512-byte and ls /sys/class/scsi_device/... method from
Step 1 - the node often changes after a reboot. On my machine it moved from /dev/sg2
to /dev/sg1.
4. Verify current sector size and 4K support
Check what sector size the drive is currently reporting:
sudo ./SeaChest_Lite_x86_64-alpine-linux-musl_static -d /dev/sg1 -i | grep Size
Logical Sector Size (B): 512
Physical Sector Size (B): 4096
Cache Size (MiB): 256.00
Logical 512, physical 4096 - that’s 512e. Then confirm the drive supports the 4096 logical format:
sudo ./SeaChest_Lite_x86_64-alpine-linux-musl_static -d /dev/sg1 --showSupportedFormats
Logical Block Size PI-0 PI-1 PI-2 PI-3 Relative Performance Metadata Size
--------------------------------------------------------------------------------
* 512 Y N N N N/A N/A
4096 Y N N N N/A N/A
The asterisk marks the current format. Both 512 and 4096 appear in the list, so the drive can be converted. If 4096 were missing, you would stop here.
5. Pre-conversion health check
Run a short DST (Drive Self-Test) before committing to the format change. It takes a couple of minutes and catches obvious hardware problems:
sudo ./SeaChest_Lite_x86_64-alpine-linux-musl_static -d /dev/sg1 --shortDST --poll
--poll tells SeaChest to wait for the test to finish and print progress, rather than
returning immediately and leaving you to check status manually.
Short DST
Test progress: 100% complete
The self-test routine completed without error.
Short DST Passed!
6. Convert to 4K native
This step erases all data on the drive. The --confirm flag is required - SeaChest
refuses to proceed without the full phrase as a deliberate safety gate:
sudo ./SeaChest_Lite_x86_64-alpine-linux-musl_static \
-d /dev/sg1 \
--setSectorSize 4096 \
--confirm this-will-erase-data-and-may-render-the-drive-inoperable
SeaChest prints a series of warnings and a countdown timer before starting. Once it begins, do not interrupt it - a reset mid-format can make the drive unusable. The command takes a few minutes, then:
Successfully set sector size to 4096
You may also see a warning about being unable to erase the MBR. This is cosmetic - the
sector size change itself succeeded. If you later find you can’t write a partition table
to the drive, erase the first and last sectors with dd and try again.
7. Reboot and verify
Reboot the NAS again. The new sector size is not visible to the OS until the drive is power-cycled.
After rebooting, SSH back in, cd /volumeUSB1/usbshare, re-identify the device node
using the same dmesg + sysfs method, and run the short DST again to confirm the drive
is healthy after the format change (same command as Step 5):
sudo ./SeaChest_Lite_x86_64-alpine-linux-musl_static -d /dev/sg1 --shortDST --poll
Short DST Passed!
The drive is now 4Kn. Add it to a Synology volume or RAID group through DSM Storage Manager as you normally would.
What Works
DSM 7.2.2 on the DS1821+ recognized the converted drive without any extra steps. Adding it to a storage pool and creating a volume worked exactly the same as with any other drive.
Caveats
This procedure was done on a Seagate Exos X20 (ST20000NM007D). SeaChest is a
Seagate-specific tool; non-Seagate drives would need a different utility. Before
converting, always run --showSupportedFormats to confirm your specific model supports
4K logical sectors - not all Seagate models do.