Synology HDD db

repository·main·Indexed 26 days ago

https://github.com/007revad/synology_hdd_db

A script designed to add non-official SATA, SAS, SSD, and NVMe drives to a Synology NAS's compatible drive databases. It provides advanced features such as managing memory compatibility, enabling SSD TRIM on 3rd party drives, configuring 'write_mostly' settings for SSD caching, and bypassing installation restrictions on 2025 or later Plus models in DSM 7.2.2.

Tokens
3K
Snippets
5
Records
17
Agent score
91%

What's inside synology_hdd_db

  1. DSM 7.3 Compatibility for 2025 Plus Models

    main

    DSM 7.3 has removed many restrictions present in DSM 7.2.2 for 2025 Plus models. However, the following restrictions still apply:

    1. NVMe Drives: You cannot create a cache or volume on 3rd party NVMe drives.
    2. Warnings: You will still see warnings in Storage Manager when using unverified 3rd party drives.

    Both issues can be resolved using Synology HDD db.

  2. Recover Synology Data and Systems

    main

    Recovery tools for Synology hardware:

    • DSM Reinstall: Use Synology DSM reinstall to reinstall the same DSM version without losing data or settings.
    • Data Recovery: Use Synology Recover Data to recover data from Synology drives using a computer.
    • Drive Errors: Use Synology clear drive error to clear critical drive errors to make a drive usable in DSM.
    • DSM Extraction: Use Syno DSM Extractor GUI (Windows) to extract .pat files and .spk package files.
    • Boot Backup: Use Synoboot backup to back up synoboot after DSM updates to recover from a corrupt USBDOM.
  3. Backup Plex Media Server

    main

    Various scripts are available to backup Plex settings and databases depending on your platform:

    • Synology (DSM 6 or 7): Use Synology Plex Backup (supports both Synology package and Docker versions).
    • Asustor: Use Asustor Plex Backup.
    • Linux: Use Linux Plex Backup.
    • Syncing Servers: Use Plex Server Sync to sync a main Plex server's database and metadata to a backup server (supports Synology, Asustor, Linux, and Docker).
  4. Run Speed Tests on Synology or Asustor

    main

    There are several GUI-based packages available for testing internet and LAN speeds on Synology (DSM 7) and Asustor (ADM 5) hardware:

    • Internet Speed (Ookla): Use Synology Ookla Speedtest or Asustor Ookla Speedtest.
    • LAN Speed (OpenSpeedtest): Use Synology Open Speedtest or Asustor Open Speedtest.
    • LAN Speed (LibreSpeed): Use Synology Libre Speedtest or Asustor LibreSpeed Speedtest.
  5. Manage Synology Docker Containers

    main

    Tools for managing Docker/Container Manager on Synology:

    • Export Settings: Use Synology Docker export to export all container settings as JSON files to your docker shared folder.
    • IPv6 Support: Use Synology Container Manager IPv6 to enable IPv6 for the Container Manager bridge network.
    • Install on Unsupported Models: Use ContainerManager_for_all_armv8 to install Container Manager on specific models like RS819, DS119j, DS418, DS418j, DS218, DS218play, or DS118.
    • Generate Compose Files: Use Docker Auto compose to create .yml files from existing containers.
    • Cleanup: Use Synology docker cleanup to remove orphan Docker Btrfs subvolumes and images on DSM 6 and 7.
  6. Setup a new 2025 or later Plus model with only unverified HDDs in DSM 7.2.2

    main

    DSM 7.2.2 prevents installation on 2025 or later series Plus models if only unverified HDDs are present. You can bypass this restriction by creating a temporary installation check pass file via Telnet.

    1. Find your NAS IP via Synology Assistant.
    2. Enable Telnet by visiting http://<NAS-IP>:5000/webman/start_telnet.cgi in a browser.
    3. Connect via a Telnet client (e.g., PowerShell, PuTTY, or Terminal).
    4. Log in with root and password 101-0101 (characters will not appear as you type).
    5. Run the bypass command:
      • For physical hardware: touch /tmp/installable_check_pass
      • For Virtual Machines: while true; do touch /tmp/installable_check_pass; sleep 1; done
    6. Refresh the DSM installation page to proceed.
    7. After installation, disable disk compatibility checks via SSH or Telnet using: /usr/syno/bin/synosetkeyvalue /etc.defaults/synoinfo.conf support_disk_compatibility no
    8. Restart Storage Manager or the NAS to see changes.
    touch /tmp/installable_check_pass
    # Or for VMs:
    while true; do touch /tmp/installable_check_pass; sleep 1; done
    
    # Post-install command:
    /usr/syno/bin/synosetkeyvalue /etc.defaults/synoinfo.conf support_disk_compatibility no
  7. Run syno_hdd_db.sh via SSH

    main

    To run the script via SSH, you must use sudo -s or be logged in as root. Replace /path-to-script/ with the actual absolute path to the script on your Synology.

    Example running with common flags:

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

    If your path contains spaces, enclose the entire command in double quotes:

    sudo -s "/volume1/my scripts/syno_hdd_db.sh -n"
    sudo -s /path-to-script/syno_hdd_db.sh -nr
  8. Delete and recreate storage pool on unverified HDDs in DSM 7.2.2 via SSH

    main

    If you have deleted your storage pool, you cannot download the Synology HDD db to a volume. You must download and run it from a system folder like /opt using SSH.

    1. Create and enter the /opt directory: sudo mkdir /opt && sudo chmod 775 /opt && cd /opt
    2. Download the required files: sudo curl -O "https://raw.githubusercontent.com/007revad/Synology_HDD_db/refs/heads/main/syno_hdd_db.sh" sudo curl -O "https://raw.githubusercontent.com/007revad/Synology_HDD_db/refs/heads/main/syno_hdd_vendor_ids.txt"
    3. Set permissions: sudo chmod 750 /opt/syno_hdd_db.sh
    4. Execute the script: sudo -s /opt/syno_hdd_db.sh
    5. Refresh Storage Manager or restart the NAS to create your storage pool.
    sudo mkdir /opt && sudo chmod 775 /opt
    cd /opt || (echo "Failed to CD to /opt"; exit 1)
    sudo curl -O "https://raw.githubusercontent.com/007revad/Synology_HDD_db/refs/heads/main/syno_hdd_db.sh"
    sudo curl -O "https://raw.githubusercontent.com/007revad/Synology_HDD_db/refs/heads/main/syno_hdd_vendor_ids.txt"
    sudo chmod 750 /opt/syno_hdd_db.sh
    sudo -s /opt/syno_hdd_db.sh
  9. Bypass Synology Hardware Restrictions

    main

    Tools to enable features or hardware that are officially unsupported by Synology:

    • Drive Compatibility: Use Synology HDD db to add 3rd party SATA/SAS HDDs, SSDs, and NVMe M.2 drives to compatible drive databases.
    • M.2 Volumes: Use Synology enable M2 volume to create volumes with non-Synology M.2 drives and Synology M2 volume to create M.2 volumes easily.
    • M.2 PCIe Cards: Use Synology enable M2 card to enable Synology M.2 PCIe cards on unsupported models.
    • Expansion Units: Use Synology enable eunit to enable unsupported eSATA Expansion Unit models.
    • Deduplication: Use Synology enable Deduplication to enable deduplication with non-Synology SSDs.
    • RAID/SHR: Use Synology SHR switch to switch between SHR and RAID Groups or enable RAID F1.
  10. Delete and recreate storage pool on unverified HDDs in DSM 7.2.2 via Task Scheduler

    main

    If you cannot use SSH, you can use a User-defined script in DSM Task Scheduler to install the Synology HDD db.

    1. Ensure Email Notifications are configured in Control Panel > Notification > Email.
    2. Go to Control Panel > Task Scheduler > Create > Scheduled Task > User-defined script.
    3. Set the user to root.
    4. Under Task Settings, check Send run details by email.
    5. Paste the following script into the User-defined script box:
      mkdir -m775 /opt
      cd /opt || (echo "Failed to CD to /opt"; exit 1)
      curl -O "https://raw.githubusercontent.com/007revad/Synology_HDD_db/refs/heads/main/syno_hdd_db.sh"
      curl -O "https://raw.githubusercontent.com/007revad/Synology_HDD_db/refs/heads/main/syno_hdd_vendor_ids.txt"
      chmod 750 /opt/syno_hdd_db.sh
      /opt/syno_hdd_db.sh -e
    6. Save the task, select it, and click Run > OK.
    7. Verify success via the emailed report. Refresh Storage Manager to create your pool.
    mkdir -m775 /opt
    cd /opt || (echo "Failed to CD to /opt"; exit 1)
    curl -O "https://raw.githubusercontent.com/007revad/Synology_HDD_db/refs/heads/main/syno_hdd_db.sh"
    curl -O "https://raw.githubusercontent.com/007revad/Synology_HDD_db/refs/heads/main/syno_hdd_vendor_ids.txt"
    chmod 750 /opt/syno_hdd_db.sh
    /opt/syno_hdd_db.sh -e
  11. Required files for syno_hdd_db.sh

    main

    The following files must be present in the same directory as the script for it to function correctly:

    1. syno_hdd_db.sh (the main script)
    2. syno_hdd_vendor_ids.txt (vendor ID database)
    3. dtc or a bin folder containing dtc (only required if using E10M20-T1, M2D20, or M2D18 in a NAS that does not natively support them).