Changing Seagate EXOS sector size on Linux

Credit goes to https://www.synoforum.com/resources/upgrading-firmware-and-changing-sector-size-on-seagate-hdds-while-installed-in-your-synology-nas.182/External link

NOTE: Do not use USB enclosures - they mostly do not support 4k sector sizes.

Updating the firmware is optional (if it's up-to-date for example), in which case skip steps 3-8.

  1. Download latest Seagate SeaChest application: We only need the SeaChest Lite edition.

  2. 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".

  3. 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.

  4. Extract firmware files: Open the firmware zip file you downloaded, and go to the "Firmware" folder. Copy the firmware files to the same folder:

    EN-SN04.CFS
    EvansExosX16SATA-STD-512E-SN04.LOD
  5. Scan / list the drives:

    sudo ./SeaChest_Lite -s
  6. 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
    ...
  7. Check the Seagate HDDs are displaying firmware installed:

    sudo ./SeaChest_Lite -s
  8. Shutdown, power-off then start again.

  9. Check the Sector Size on your Seagate HDDs.

    sudo ./SeaChest_Lite -d /dev/sg0 -i | grep Size
    sudo ./SeaChest_Lite -d /dev/sg1 -i | grep Size
    ...
  10. 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
    ...
  11. 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
    ...
  12. 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
    ...

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

  13. Shutdown, power-off then start again.

  14. It is recommended to do another health check on your drives before copying your data back and moving into production mode.

    sudo ./SeaChest_Lite -d /dev/sg0 --shortDST --poll
    sudo ./SeaChest_Lite -d /dev/sg1 --shortDST --poll
    ...

January-05-2024
linux, seagate

Leave a comment

Comments (if any)

Don't know what will come here, let's wait and see... But in the first instance it will be a login box (for myself):

Login