Synology_HDD_db Documentation

Add your HDD, SSD and NVMe drives to your Synology's compatible drive database and a lot more

RAW Doc

1. Project Overview & Quickstart (007revad/Synology_HDD_db)

Synology HDD db


Description

Add your SATA or SAS HDDs and SSDs plus SATA and NVMe M.2 drives to your Synology's compatible drive databases, including your Synology M.2 PCIe card and Expansion Unit databases.

The script works in DSM 7, including DSM 7.1, 7.2, 7.3 and 7.4, and DSM 6.

It also has a restore option to undo all the changes made by the script.

Also works for 2025 series or later Plus models. See 2025_plus_models.md

What the script does:

  • Gets the Synology NAS model and DSM version (so it knows which db files to edit).
  • Gets a list of the HDD, SSD, SAS and NVMe drives installed in your Synology NAS.
  • Gets each drive's model number and firmware version.
  • Backs up the database files if there is no backup already.
  • Checks if each drive is already in the Synology's compatible-drive database.
  • Adds any missing drives to the Synology's compatible-drive database.
  • Optionally prevents DSM auto updating the drive database.
  • Optionally disable DSM's "support_disk_compatibility".
  • Optionally disable DSM's "support_memory_compatibility" to prevent non-Synology memory notifications.
  • Optionally edits max supported memory to match the amount of memory installed, if installed memory is greater than the current max memory setting.
    • DSM only uses the max memory setting when calculating the reserved RAM area size for SSD caches.
  • Optionally set write_mostly for your internal HDDs so DSM will normally read from your faster internal SSD(s).
    • It can automatically set DSM to read from your internal SSDs.
    • Or you can tell the script which internal drive(s) DSM should read from.
  • Optionally disables Western Digital Device Analytics (aka WDDA) to prevent DSM showing a warning for WD drives that are 3 years old.
    • DSM 7.2.1 already has WDDA disabled.
  • Makes DSM allow you to enable SSD TRIM on 3rd party SSDs and NVMes. Don't use the -f or --force` option if you want to enable SSD TRIM.
    • Do NOT use TRIM on SSDs in RAID 5, RAID 6 or SHR with 3 or more SSDs unless you are certain your SSDs use TRIM Method 1 mentioned here.
    • Enabling TRIM on SSDs that use TRIM Method 2 can result in data loss in RAID 5, RAID 6 and SHR with 3 or more drives.
  • Enables M2D20, M2D18, M2D17 and E10M20-T1 if present on Synology NAS that don't officially support them.
  • Checks that M.2 volume support is enabled (on models that have M.2 slots or PCIe slots).
  • Enables creating M.2 storage pools and volumes from within Storage Manager in DSM 7.2 and later (newer models only?).
    • Including M.2 drives in PCIe adaptor cards like M2D20, M2D18, M2D17 and E10M20-T1 for DSM 7.2 and above (schedule the script to run boot).
  • Optionally update IronWolf Health Monitor to v2.5.1 to support recent model IronWolf and IronWolf Pro drives. (NAS with x86_64 CPUs only).
    • Also installs IronWolf Health Management on '22 series and newer models that don't have IronWolf Health Management (untested).
  • Makes DSM recheck disk compatibility so rebooting is not needed if you don't have M.2 drives (DSM 7 only).
    • If you have M.2 drives you may need to reboot.
    • Reminds you that you may need to reboot the Synology after running the script.
  • Checks if there is a newer version of this script and offers to download it for you.
    • The new version available messages time out so they don't prevent the script running if it is scheduled to run unattended.

2025 plus series and later models

The table below summarizes drive compatibility by product series and drive type for models released in 2025 and later:

All series (DSM 7.3 or later) with Synology HDD DB:

Drive Types On Compatibility List Not Listed On Incompatibility List
HDD ✓ Supported for:• New installation and storage pool creation• Migration from existing Synology systems ✓ Supported for:• Migration from existing Synology systems✓ Supported for:• New installation and storage pool creation• Cache creation ✓ Supported for:• New installation and storage pool creation• Cache creation• Migration from existing Synology systems
2.5" SATA/SAS SSD ✓ Supported for:• New installation and storage pool creation• Cache creation• Migration from existing Synology systems ✓ Supported for:• Migration from existing Synology systems✓ Supported for:• New installation and storage pool creation• Cache creation ✓ Supported for:• New installation and storage pool creation• Cache creation• Migration from existing Synology systems
M.2 NVMe SSD ✓ Supported for:• Storage pool creation• Cache creation• Migration from existing Synology systems ✓ Supported for:• Migration from existing Synology systems✓ Supported for:• Storage pool creation• Cache creation ✓ Supported for:• Storage pool creation• Cache creation• Migration from existing Synology systems

Download the script

  1. Download the latest version Source code (zip) from https://github.com/007revad/Synology_HDD_db/releases
  2. Save the download zip file to a folder on the Synology.
    • Do NOT save the script to a M.2 volume. After a DSM or Storage Manager update the M.2 volume won't be available until after the script has run.
  3. Unzip the zip file.

Or via SSH as your regular user:

text
cd $HOME
wget https://github.com/007revad/Synology_HDD_db/archive/refs/heads/main.zip -O syno_hdd_db.zip
7z x syno_hdd_db.zip
cd Synology_HDD_db-main && ls -ali

Required files

The following files from the downloaded zip file must be in the same folder:

  1. syno_hdd_db.sh
  2. syno_hdd_vendor_ids.txt
  3. dtc or the bin folder containing dtc (only required if you have a E10M20-T1, M2D20 or M2D18 in a NAS that does not support them).

When to run the script

You would need to re-run the script after a DSM update. If you have DSM set to auto update the best option is to run the script every time the Synology boots, and the best way to do that is to setup a scheduled task to run the the script at boot-up.

Note: After you first run the script you may need to reboot the Synology to see the effect of the changes.

Options when running the script

There are optional flags you can use when running the script:

text
/* Detailed source-code truncated for AI context efficiency. */

Notes:

  • The -f or --force option is only needed if for some reason your drives still show as unsupported in storage manager.
    • Only use this option as last resort.
    • Using this option will prevent data deduplication from being available, and prevent firmware updates on Synology brand drives.
  • If you have some Synology drives and want to update their firmware run the script without --noupdate or -n then do the drive database update from Storage Manager and finally run the script again with your preferred options.

Scheduling the script in Synology's Task Scheduler

See How to schedule a script in Synology Task Scheduler

Running the script via SSH

How to enable SSH and login to DSM via SSH

You run the script in a shell with sudo -s or as root.

yaml
sudo -s /path-to-script/syno_hdd_db.sh -nr

Note: Replace /path-to-script/ with the actual path to the script on your Synology.

If you run the script with the --showedits flag it will show you the changes it made to the Synology's compatible-drive database. Obviously this is only useful if you run the script in a shell.

yaml
sudo -s /path-to-script/syno_hdd_db.sh -nr --showedits

Note: Replace /path-to-script/ with the actual path to the script on your Synology.

Troubleshooting

Issue Cause Solution
/usr/bin/env: ‘bash\r’: No such file or directory File has Mac line endings! Download latest zip file
Cursor sits there doing nothing File has Windows line endings! Download latest zip file
syntax error near unexpected token You downloaded the webpage! Download latest zip file

If you get a "No such file or directory" error check the following:

  1. Make sure you downloaded the zip or rar file to a folder on your Synology (not on your computer).
  2. Make sure you unpacked the zip or rar file that you downloaded and are trying to run the syno_hdd_db.sh file.
  3. If the path to the script contains any spaces you need to enclose the path/scriptname in double quotes:
    yaml
    sudo -s "/volume1/my scripts/syno_hdd_db.sh -n"
  4. Set the script file as executable:
    yaml
    sudo chmod +x "/volume1/scripts/syno_hdd_db.sh"

vendor_ids.txt

You only need to edit syno_hdd_vendor_ids.txt if the script warns you about a missing vendor id.

If DSM doesn't know the brand of your NVMe drives they will show up in Storage Manager as Unknown brand, and Unrecognised firmware version.

In this case the script will show you the vendor ID and advise you to add it to the syno_hdd_vendor_ids.txt file.

Ironwolf Health

Ironwolf Health working with the latest version of Ironwolf Health Monitor.

Credits

  • The idea for this script came from a comment made by Empyrealist on the Synology subreddit.
  • Thanks for the assistance from Alex_of_Chaos on the Synology subreddit.
  • Thanks to dwabraxus and aferende for help detecting connected expansion units.
  • Thanks to bartoque on the Synology subreddit for the tip on making the script download the latest release from GitHub.
  • Thanks to nicolerenee for pointing out the easiest way to enable creating M.2 storage pools and volumes in Storage Manager.
  • Thanks to Xeroxxx for the writemostly suggestion and their writeup here: https://www.techspark.de/speed-up-synology-dsm-with-hdd-ssd/

Donators

Thank you to the PayPal and Buy Me a Coffee donators, GitHub sponsors and hardware donators

David Koch
EVOX S.R.L.S Adam Danny Schoonderwoert Andrew Ward
nickcolea Bruno eColombel LordGardenGnome
Dennis Struck matthewslack Adrien Florian Hinhamer
Patrick Witon Sonwoa1 apbirch67 Tim
Robert Moritz Bloser Jason Huang James Welsh
robinhood1995 Paul Fiorento Gwystyl Matt Hann
Robert Šega Marco Brenke Martinus Humblet Dirk Köhler
KryoFlux GmbH Frederic Gobry bizIT Hirschberg Alexander Ziemann
Chris Black Media Brent Bertram Carsten Schmidt Christopher Nichols
Roland Thätig Sebastian Brandt HFB2022 jtrouzes
stove Simon Küest Oliver Weber Kevin Randino
Alex Tripp Peter Kleissner Dominic Lee Daniel Boecker
Pat A Phillips Craikeybaby Jason DeCorte Salovaara Antti Sakari
Jérôme MORIN Sven Bauer Fabien Vallet Fabio Petgola
lonestar6262 Netchoice Fabio Cecchinato Jacek
Dugan Audio LLC MikeSx Toregev M. Verhoef
Philipp Ehmeier Adrian Playle Daniel Meda Richard Wilhelm
Mika255 Ralf Edelwein Martin Alexander Habisreitinger
jrn Marcus Wojtusik Will (war59312) Christopher Maglio
Flow Jake Morrison tsnyder zhangchi198
leadadri Gary Plumbridge frogger1805 ctrlaltdelete
CannotTouch Kevin Staude Alistair Hathaway 8347
BrattishPlaque Chris Bunnell dansimau Bsih
Tim Trace Michel VIEUX-PERNON R De Jong Rick
Klaus-Dieter Fahlbusch Amarand Agasi someone61986 Alexander Machatschek
Yeong​Nuno Joe Torben Schreiter Anthony McMurray
Abhishek Steven Haskell Malte Müller Aaron Thomas
DENNIS BRAZIL kunvanimals Arnaud Costermans dealchecker
Michael Carras Alan speedyyyyyy Jordi Chavarria Fibla
Qwerty.xyz Max Mark Rohde Someone
vaadmin Sebastiaan Mulder Nico Stark Oleksandr Antonishak
Marcel Siemienowski Dave Smart dweagle79 lingyinsam
Vojtech Filkorn Craig Sadler Po-Chia Chen Jean-François Fruhauf
Sven 'ctraltdelete' Thomas Horn Christian Simon Azzouni
Lee Booy Bünyamin Olgun Hartmut Heinbach Alexander Gundermann
Björn Schöninger Nico Scherer Patrick Hoekstra Alex Joyce
Marcus Ackermann Lorenz Schmid enil-kil Xaver Zöllner
Jan Bublitz Darren O'Connor Charles Young J Davis
Jürg Baiker Joshua Gillispie bizIT Hirschberg Jordan Crawford
Tyler Teal Voluntary Commerce LLC Ez Hosting Alec Wilhere
Reece Lyne Enric Escudé Santana Yunhao Zhang Matthias Gerhardt
Darryl Harper Mikescher Matthias Pfaff cpharada
Neil Tapp zen1605 Kleissner Investments Angel Scandinavia
B Collins Peter jackson Mir Hekmat Andrew Tapp
Peter Weißflog Joseph Skup Dirk Kurfuerst Gareth Locke
Rory de Ruijter Nathan O'Farrell Harry Bos Mark-Philipp Wolfger
Filip Kraus John Pham Alejandro Bribian Rix Daniel Hofer
Bogdan-Stefan Rotariu Kevin Boatswain anschluss-org Yemeth
Patrick Thomas Manuel Marquez Corral Evrard Franck Chad Palmer
侯​永政 CHEN​HAN-YING Eric Wells Massimiliano Pesce
JasonEMartin Gerrit Klussmann Alain Aube Robert Kraut
Charles-Edouard Poisnel Oliver Busch anonymous donors private sponsors

2. Official Technical Reference & Guides (007revad/007revad.github.io)

All my scripts, packages, tools and guides

Contents


Synology Package Source

  • Synology Package Source
    • Synology Package Source adds DSM packages that are available from GitHub to Package Center so users can easily install packages from various GitHub developers and Package Center can update the packages when newer versions are released.

Speed Testing

  • Synology Ookla Speedtest

    • Synology DSM 7 package to install Ookla Speedtest and run it in a GUI to test your Internet speed.
  • Synology Open Speedtest

    • Synology DSM 7 package to install OpenSpeedtest and run it in a GUI to test your LAN speed.
  • Synology Libre Speedtest

    • Synology DSM 7 package to install Libre Speedtest and run it in a GUI to test your LAN speed.
  • Asustor Ookla Speedtest

    • Asustor ADM 5 package to install Ookla Speedtest and run it in a GUI to test your internet speed.
  • Asustor Open Speedtest

    • Asustor ADM 5 package to install OpenSpeedtest and run it in a GUI to test your LAN speed.
  • Asustor LibreSpeed Speedtest

    • Asustor ADM 5 package to install LibreSpeed Speedtest and run it in a GUI to test your LAN speed.

              Back to Contents

Plex

  • Synology Plex Backup

    • A script to backup Plex to a tgz file foror DSM 7 and DSM 6.
    • Works for Plex Synology package and Plex in docker.
  • Asustor Plex Backup

    • Backup your Asustor's Plex Media Server settings and database.
  • Linux Plex Backup

    • Backup your Linux Plex Media Server's settings and database.
  • Plex Server Sync

    • Sync your main Plex server database & metadata to a backup Plex server.
    • Works for Synology, Asustor, Linux and supports Plex package or Plex in docker.
  • Transcode for x25

    • Installs the modules needed for Plex or Jellyfin hardware transcoding on Synology DS425+ and DS225+.
    • Available as a package and a script.

              Back to Contents

Asustor

  • Asustor Ookla Speedtest

    • Asustor ADM 5 package to install Ookla Speedtest and run it in a GUI to test your internet speed.
  • Asustor Open Speedtest

    • Asustor ADM 5 package to install OpenSpeedtest and run it in a GUI to test your LAN speed.
  • Asustor LibreSpeed Speedtest

    • Asustor ADM 5 package to install LibreSpeed Speedtest and run it in a GUI to test your LAN speed.
  • Asustor SMART info

    • Show Asustor smart health and attributes. Can also email you when important values change.
  • Asustor Plex Backup

    • Backup your Asustor's Plex Media Server settings and database.

              Back to Contents

Synology docker

              Back to Contents

Synology recovery

              Back to Contents

Other Synology scripts and packages

  • Synology Dive Info

    • Synology package to show drive device id, DSM drive number, location, model, serial number, health and S.M.A.R.T. values for all drives in all your Synology NAS.
  • Syno Package Source Manager

    • Synology package that allows you to disable and enable community package sources you have added to Package Center. It also allows adding known, working, package sources without having to type and paste anything in Package Center's settings.
  • Syno CPU Temperature

    • Synology package to log CPU temperature to help troubleshooting Synology randomly shutting down due to overheating.
  • Synology fix size units

    • Make DSM show the correct TiB, GiB, MiB and KiB IEC labels instead of TB, GB, MB and KB binary labels.
  • Check UPS Connected

    • Script to email you the USP status. Also works for Synology NAS that are UPS clients.
  • DSM Notify

    • Synology package to allow my scheduled scripts to send notifications to DSM 7.
  • DSM Update

    • Script to automatically download the correct pat file and update DSM using the downloaded pat file.
  • Synology Ookla Speedtest

    • Synology DSM 7 package to install Ookla Speedtest and run it in a GUI to test your internet speed.
  • Synology Open Speedtest

    • Synology DSM 7 package to install OpenSpeedtest and run it in a GUI to test your LAN speed.
  • Synology Libre Speedtest

    • Synology DSM 7 package to install Libre Speedtest and run it in a GUI to test your LAN speed.
  • Synology app mover

    • Easily move Synology packages from one volume to another volume.
  • Video Station for DSM 722

    • Script to install Video Station in DSM 7.2.2
  • SS Motion Detection

    • Installs previous Surveillance Station and Advanced Media Extensions versions so motion detection and HEVC are supported.
  • Synology Config Backup

    • Backup and export your Synology DSM configuration.
  • Synology CPU temperature

    • Get and log Synology NAS CPU temperature via SSH.
  • Synology SMART info

    • Show Synology smart test progress or smart health and attributes. Can also email you when important values change.
  • Synology Cleanup Coredumps

    • Cleanup memory core dumps from crashed processes.
  • Synology toggle reset button

    • Script to disable or enable the reset button and show current setting.
  • Synology Download Station Chrome Extension

    • Download Station Chrome Extension.
  • Seagate low Current Spinup

    • This script avoids the need to buy and install a higher wattage power supply when using multiple large Seagate SATA HDDs.
  • Synology created date

    • Script to show you the created year and month of your Synology NAS or expansion unit.
  • Restore RS3621 Fan Speed

    • Script to restore RS3621xs+ and RS3621RPxs Quiet mode and Cool mode fan speeds back to how it was before DSM 7.3.2.

              Back to Contents

Synology hardware restrictions

  • Synology HDD db

    • Add your SATA or SAS HDDs and SSDs plus SATA and NVMe M.2 drives to your Synology's compatible drive databases, including your Synology M.2 PCIe card and Expansion Unit databases.
  • Synology enable M2 volume

    • Enable creating volumes with non-Synology M.2 drives.
    • Enable Health Info for non-Synology NVMe drives (not in DSM 7.2.1 or later).
  • Synology M2 volume

    • Easily create an M.2 volume on Synology NAS.
  • Synology enable M2 card

    • Enable Synology M.2 PCIe cards in Synology NAS that don't officially support them.
  • Synology enable eunit

    • Enable an unsupported Synology eSATA Expansion Unit models.
  • Synology AQC Unlock

    • DSM 7 package that allows you to use non-Synology 10GbE, 5GbE and 2.5GbE PCIe network cards that have a Marvell (Aquantia) AQC100, AQC107, AQC108, AQC111, AQC112, AQC113/AQC113C and AQC115 chip.
  • Synology enable Deduplication

    • Enable deduplication with non-Synology SSDs and unsupported NAS models.
  • Synology SHR switch

    • Easily switch between SHR and RAID Groups, or enable RAID F1.
  • Synology enable sequential IO

    • Enables sequential I/O for your SSD caches, like DSM 6 had.
  • Synology Information Wiki

    • Information about Synology hardware.

              Back to Contents

Synology 2025 plus models

              Back to Contents

How To Guides

              Back to Contents

Synology dev

              Back to Contents