Upgrading Firmware And Changing Sector Size On Seagate HDDs, While Installed In Your Synology NAS

Tutorial Upgrading Firmware And Changing Sector Size On Seagate HDDs, While Installed In Your Synology NAS

Upgrading Firmware And Changing Sector Size On Seagate X16 Exos / IronWolf / IronWolf Pro HDDs, While Installed In Your Synology NAS​


I've recently purchased a new Synology RS1221+ NAS and several Seagate Exos X16 HDDs, and needed to convert them from the factory 512 byte setting, to the native 4096 byte sector size. I notice a lot of guides are using desktop computers / external HDD enclosures / USB adapters (that's bad) to upgrade firmware and convert the sector sizing, however you can actually do this by using the Synology NAS while the drives are installed in the NAS; the easy way.

This guide should also work for all other Seagate drives that support both 512 and 4096 sector sizes. It may also work for other NAS brands, however some of the mounts in the backend OS may be slightly different.

Firstly, my current setup is:
  • 1 x Synology RS1221+ NAS
  • 64GB (2 x 32GB) vColor ECC SO-DIMM DDR4 2666MHz for Microservers (TES432G26D819K-VC)
  • 4 x Seagate Exos X16 SATA STD 16TB Hard Disk Drive (ST16000NM001G)
  • 1 x Synology 10Gb Ethernet and M.2 Adapter Card E10M20-T1
  • 2 x SAMSUNG 980 PRO 1TB PCIe NVMe Gen4 SSD M.2 (MZ-V8P1T0B)
My Seagate Exos X16 drives came factory set with firmware SN03 and the 512 byte sector size, they are able to be converted to 4096 bytes, and Synology supports native 4K drives in DSM.

NOTE: You cannot have a mix of 512 and 4096 sector drives in the same RAID array. All drives in the same RAID / Volume group must be the same sector size... either they are all 512, or they are all 4096; but not mixed. They can be mixed if they are in same RAID / Volume groups... i.e. 512 all in /volume1 and 4096 all in /volume2.

Firstly, we need to use a Synology account which has administrator privilege (in the "administrators" group) to complete these steps.

1. Backup everything off the NAS, converting the sector size from 512 to 4096 is considered a destructive process, consider all data on the drives to be lost - be prepared and back it up.

2. Turn on SSH server for remote access: Go to "Control Panel" --> "Terminal & SNMP" --> "Terminal" - Select "Enable SSH Service" on port 22, and apply settings.

3. Create a shared folder for Seagate SeaChest application and firmware files: Go to "Control Panel" --> "Shared Folder" - Select "Create" --> "Create Shared Folder" - Create a new folder called "Seagate", and apply settings. Ensure Administrators group have read / write permissions.

4. Download latest Seagate SeaChest application: We only need the SeaChest Lite edition.
5. Extract Linux application from SeaChest zip file: Open the "SeaChestLite.zip" file, go to the "Lin64\Non-RAID" folder, and copy "SeaChest_Lite_x86_64-alpine-linux-musl_static" into the "Seagate" folder created in step 3.

6. Create another copy of the "SeaChest_Lite_x86_64-alpine-linux-musl_static" file in the Seagate folder, and call it "SeaChest_Lite". This will make it easier to run commands in the SSH session later. Making a copy (instead of renaming it) will help you remember what the original version of the file was called if you need to reference it later (or you can use -V option).

NOTE: In the event the shortened "SeaChest_Lite" command does not work in SSH in the commands below, then you should use the full "SeaChest_Lite_x86_64-alpine-linux-musl_static" application name.

7. Download latest firmware for Seagate HDDs: Go to the following URL, and enter the serial number off your Seagate HDD to search for the latest firmware for your drive model. For me, the latest firmware version is SN04 (Evans).
8. Extract firmware files: Open the firmware zip file you downloaded, and go to the "Firmware" folder. Copy the firmware files into the "Seagate" folder created in step 3. For me, I copied over firmware files:
  • EN-SN04.CFS
  • EvansExosX16SATA-STD-512E-SN04.LOD
NOTE: There may be copies of SeaChest in the firmware file you downloaded, however they will be the versions which were available when this firmware was released, and will most likely not be the latest version. Preference is to use the latest SeaChest version downloaded in step 4.

9. Check files on NAS: At this stage you should have SeaChest_Lite and the firmware files in the "Seagate" shared folder. For me, I have the following files:
  • EN-SN04.CFS
  • EvansExosX16SATA-STD-512E-SN04.LOD
  • SeaChest_Lite
  • SeaChest_Lite_x86_64-alpine-linux-musl_static
NOTE: Filenames I have may differ to your system environment, as processes and firmware details may change over time.

On a Windows network, I can also see these files by going to the SMB network share: \\Diskstation\Seagate

10.
For Windows users, download PuTTY: Download and install Putty, which as a Windows compatible SSH client, allowing you to remotely log into your NAS using SSH protocol.
11. BACK UP EVERYTHING ON THE NAS - THIS IS YOUR LAST WARNING.... :P

NOTE: I upgraded all of my Seagate drives at the same time using the following commands, knowing I would have have to undertake a full rebuild. However it may by possible to upgrade the firmware and convert the sector size of one Seagate drive at a time, transfer data, and upgrade the following drives, transferring data as you progress, but there is still a risk of data loss by losing your partitions / volume groups.

12. Connect to your Synology NAS using SSH / PuTTY on port 22 (default), using your Synology username and password.

NOTE 1: You can only log in using SSH if you're using an account in the Synology administrators group.

NOTE 2: Even though you are in the Synology administrators group, your account has basic privileges in the NAS operating system, and you will need to use "sudo" command to undertake several of the steps below, otherwise they will not complete successfully.

13. In your SSH session, head to the shared Seagate folder where you saved the SeaChest apps and HDD firmware:

NOTE: The following commands are case sensitive.
  • cd /volume1/Seagate
  • ls -la
14. Scan / list the drives installed in your Synology NAS:
  • sudo ./SeaChest_Lite -s
NOTE: You will be asked for your password again as you use the "sudo" command.

Code:
==========================================================================================
 SeaChest_Lite - Seagate drive utilities - NVMe Enabled
 Copyright (c) 2014-2022 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
 SeaChest_Lite Version: 1.6.0-3_2_1 X86_64
 Build Date: Jul 26 2022
 Today: Wed Aug 10 17:19:37 2022        User: root
==========================================================================================
Vendor   Handle       Model Number            Serial Number          FwRev
ATA      /dev/sg0     ST16000NM001G-2KK103    ZL2N0001               SN03
ATA      /dev/sg1     ST16000NM001G-2KK103    ZL2N0002               SN03
ATA      /dev/sg2     ST16000NM001G-2KK103    ZL2N0003               SN03
ATA      /dev/sg3     ST16000NM001G-2KK103    ZL2N0004               SN03
Synology /dev/sg4     DiskStation             76FD00000000           DL17
NVMe     /dev/nvme0n1 Samsung SSD 980 PRO 1TB S5GXNS000000001        4B2QGXA7
NVMe     /dev/nvme1n1 Samsung SSD 980 PRO 1TB S5GXNS000000002        4B2QGXA7

NOTE: If you've just inserted a new HDD into your NAS, it may be recognised as a different device ID.. i.e. /dev/sg7 - It may also be recognised as a different device ID after upgrading the firmware / sector size and doing a rebooting. You can keep track of your new HDD by taking note of it's serial number.

15. Upgrade firmware on installed Seagate HDDs:
  • sudo ./SeaChest_Lite -d /dev/sg0 --downloadFW EvansExosX16SATA-STD-512E-SN04.LOD
  • sudo ./SeaChest_Lite -d /dev/sg1 --downloadFW EvansExosX16SATA-STD-512E-SN04.LOD
  • sudo ./SeaChest_Lite -d /dev/sg2 --downloadFW EvansExosX16SATA-STD-512E-SN04.LOD
  • sudo ./SeaChest_Lite -d /dev/sg3 --downloadFW EvansExosX16SATA-STD-512E-SN04.LOD
Code:
==========================================================================================
 SeaChest_Lite - Seagate drive utilities - NVMe Enabled
 Copyright (c) 2014-2022 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
 SeaChest_Lite Version: 1.6.0-3_2_1 X86_64
 Build Date: Jul 26 2022
 Today: Wed Aug 10 17:26:03 2022        User: root
==========================================================================================

/dev/sg0 - ST16000NM001G-2KK103 - ZL2N0001 - SN04 - ATA
......
Firmware Download successful
New firmware version is SN04

16. Check the Seagate HDDs are displaying firmware installed:
  • sudo ./SeaChest_Lite -s
Code:
==========================================================================================
SeaChest_Lite - Seagate drive utilities - NVMe Enabled
Copyright (c) 2014-2022 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
SeaChest_Lite Version: 1.6.0-3_2_1 X86_64
Build Date: Jul 26 2022
Today: Wed Aug 10 17:28:29 2022        User: root
==========================================================================================
Vendor   Handle       Model Number            Serial Number          FwRev
ATA      /dev/sg0     ST16000NM001G-2KK103    ZL2N0001               SN04
ATA      /dev/sg1     ST16000NM001G-2KK103    ZL2N0002               SN04
ATA      /dev/sg2     ST16000NM001G-2KK103    ZL2N0003               SN04
ATA      /dev/sg3     ST16000NM001G-2KK103    ZL2N0004               SN04
Synology /dev/sg4     DiskStation             76FD00000000           DL17
NVMe     /dev/nvme0n1 Samsung SSD 980 PRO 1TB S5GXNS000000001        4B2QGXA7
NVMe     /dev/nvme1n1 Samsung SSD 980 PRO 1TB S5GXNS000000002        4B2QGXA7

17. SHUTDOWN / POWEROFF the NAS using the Web Portal menu. While you can shutdown the NAS using SSH, the web portal shutdown sequence will be more graceful while working with firmware.

WARNING: COMPLETELY SHUTDOWN AND REMOVE POWER FROM NAS FOR A SHORT PERIOD - DO NOT CHANGE SECTOR SIZE UNTIL YOU POWER UP USING THE NEW FIRMWARE VERSION

18. Power up your NAS and log back into the DSM portal to check the Seagate drives are reporting the firmware correctly: "Main Menu" --> "Storage Manager" --> "HDD/SSD". They should now report the updated firmware version, while "4K native drive" will still say "No".

19. Reconnect to your Synology NAS using SSH / PuTTY, using your administrator privileged account.

20. Check the Sector Size on your Seagate HDDs - This is also located in the DSM Storage Manager.
  • cd /volume1/Seagate
  • sudo ./SeaChest_Lite -d /dev/sg0 -i | grep Size
  • sudo ./SeaChest_Lite -d /dev/sg1 -i | grep Size
  • sudo ./SeaChest_Lite -d /dev/sg2 -i | grep Size
  • sudo ./SeaChest_Lite -d /dev/sg3 -i | grep Size
Code:
Logical Sector Size (B): 512
Physical Sector Size (B): 512
Cache Size (MiB): 256.00

21. Do a quick check to ensure your Seagate drives support both 512 and 4096 sector sizes:
  • sudo ./SeaChest_Lite -d /dev/sg0 --showSupportedFormats
  • sudo ./SeaChest_Lite -d /dev/sg1 --showSupportedFormats
  • sudo ./SeaChest_Lite -d /dev/sg2 --showSupportedFormats
  • sudo ./SeaChest_Lite -d /dev/sg3 --showSupportedFormats
Code:
==========================================================================================
SeaChest_Lite - Seagate drive utilities - NVMe Enabled
Copyright (c) 2014-2022 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
SeaChest_Lite Version: 1.6.0-3_2_1 X86_64
Build Date: Jul 26 2022
Today: Wed Aug 10 18:40:18 2022        User: root
==========================================================================================

/dev/sg1 - ST16000NM001G-2KK103 - ZL2N0001 - SN04 - ATA

Supported Logical Block Sizes and Protection Types:
---------------------------------------------------
  * - current device format
PI Key:
  Y - protection type supported at specified block size
  N - protection type not supported at specified block size
  ? - unable to determine support for protection type at specified block size
Relative performance key:
  N/A - relative performance not available.
  Best
  Better
  Good
  Degraded
--------------------------------------------------------------------------------
 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
--------------------------------------------------------------------------------

22. BEFORE converting sector size, do a quick health check on each of the Seagate drives:
  • sudo ./SeaChest_Lite -d /dev/sg0 --shortDST --poll
  • sudo ./SeaChest_Lite -d /dev/sg1 --shortDST --poll
  • sudo ./SeaChest_Lite -d /dev/sg2 --shortDST --poll
  • sudo ./SeaChest_Lite -d /dev/sg3 --shortDST --poll
Code:
==========================================================================================
SeaChest_Lite - Seagate drive utilities - NVMe Enabled
Copyright (c) 2014-2022 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
SeaChest_Lite Version: 1.6.0-3_2_1 X86_64
Build Date: Jul 26 2022
Today: Wed Aug 10 18:27:31 2022        User: root
==========================================================================================

/dev/sg0 - ST16000NM001G-2KK103 - ZL2N0001 - SN04 - ATA
Short DST
    Test progress: 100% complete
The self-test routine completed without error.
Short DST Passed!

23. Convert the 512 byte sector size to 4096 bytes:
  • sudo ./SeaChest_Lite -d /dev/sg0 --setSectorSize 4096 --confirm this-will-erase-data
  • sudo ./SeaChest_Lite -d /dev/sg1 --setSectorSize 4096 --confirm this-will-erase-data
  • sudo ./SeaChest_Lite -d /dev/sg2 --setSectorSize 4096 --confirm this-will-erase-data
  • sudo ./SeaChest_Lite -d /dev/sg3 --setSectorSize 4096 --confirm this-will-erase-data
Code:
==========================================================================================
SeaChest_Lite - Seagate drive utilities - NVMe Enabled
Copyright (c) 2014-2022 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
SeaChest_Lite Version: 1.6.0-3_2_1 X86_64
Build Date: Jul 26 2022
Today: Wed Aug 10 18:32:43 2022        User: root
==========================================================================================

/dev/sg0 - ST16000NM001G-2KK103 - ZL2N0001 - SN04 - ATA
Set Sector Size to 4096

WARNING: It is not recommended to do this on USB enclosures as not
         all USB adapters can handle a 4k sector size.
WARNING (SATA): Do not interrupt this operation once it has started or
         it may cause the drive to become unusable. Stop all possible background
         activity that would attempt to communicate with the device while this
         operation is in progress
Press CTRL-C to cancel this operation before the timer runs out.

WARNING: The process will wait 30 seconds in case you want to cancel the operation - it is destructive.

Code:
Setting the drive sector size quickly.
Please wait a few minutes for this command to complete.
It should complete in under 5 minutes, but interrupting it may make
the drive unusable or require performing this command again!!
WARNING: Unable to erase MBR. If unable to write a partition after this operation, erase the first sector of the device
         and the last sector (max LBA) then try creating new partitions again.
Successfully set sector size to 4096

24. SHUTDOWN / POWEROFF the NAS using the Web Portal menu again.

WARNING: COMPLETELY SHUTDOWN AND REMOVE POWER FROM NAS FOR A SHORT PERIOD, THEN POWER IT BACK ON

25. If you were converting one Seagate HDD at a time, you may still be able to log into your current Synology configuration and manage your drives / data. However, if you upgraded all Seagate HDDs at the same time, you will need to follow the new Synology set up wizard to rebuild your configuration and restore data.
26. It is recommended to do another health check on your drives before copying your data back and moving NAS into production mode. Repeat the steps above until you get the files back on the Synology share drive and can access SSH / PuTTY.
  • sudo ./SeaChest_Lite -d /dev/sg0 --shortDST --poll
  • sudo ./SeaChest_Lite -d /dev/sg1 --shortDST --poll
  • sudo ./SeaChest_Lite -d /dev/sg2 --shortDST --poll
  • sudo ./SeaChest_Lite -d /dev/sg3 --shortDST --poll
27. If everything is OK, rebuild your NAS volumes, copy your data back, and set regular "Disk Scrubbing" and "S.M.A.R.T." test schedules in "Storage Manager".

NOTE: People have been having problems and bricking their Seagate HDDs when using USB enclosures / adaptors to upgrade the firmware / sector size (Linux and Windows).. This should not happen on your Synology NAS, but if it occurs on a client workstation and you cannot rebuild standard partitions, you can clear the first few sectors of the HDD and wipe the MBR clean, allowing you to rebuild partition table.

(reference: broken HDD drive after changing to 4kn · Issue #16 · Seagate/ToolBin)
  • sudo ./SeaChest_Lite -d /dev/sg2 --overwrite 0 --overwriteRange 4096 --confirm this-will-erase-data
Code:
==========================================================================================
SeaChest_Erase - Seagate drive utilities - NVMe Enabled
Copyright (c) 2014-2022 Seagate Technology LLC and/or its Affiliates, All Rights Reserved
SeaChest_Erase Version: 3.2.0-3_2_1 X86_64
Build Date: Jul 26 2022
Today: Tue Aug  9 21:22:06 2022        User: root
==========================================================================================

/dev/sg2 - ST16000NM001G-2KK103 - ZL2N0001 - SN04 - ATA

Writing LBA: 4095
Successfully overwrote LBAs 0 to 4095

You can now use a Linux / Windows disk partitioning tool re-partition and format the drive using a client workstation (not needed for Synology NAS).

28. Now create a shortcut of this post into the shared Seagate folder, so you can easily come back to it when you need to add additional Seagate drives into your storage pools, as they will need to be upgraded and converted to match the current HDD environment.



Top