在数据存储领域,Synology NAS 设备凭借其强大的性能和丰富的功能,受到众多用户的青睐。然而,部分用户在使用过程中会遇到硬盘兼容性问题,这不仅影响了存储效率,还可能带来数据安全风险。今天,我们就来深入探讨一款名为 Synology_HDD_db 的脚本,看看它是如何巧妙地解决这些问题的。
一、初识 Synology_HDD_db 脚本
Synology_HDD_db 脚本是一款专为 Synology NAS 设计的实用工具,旨在帮助用户将 SATA 或 SAS 硬盘、SSD 以及 SATA 和 NVMe M.2 驱动器添加到 Synology 的兼容驱动数据库中。这包括了 Synology M.2 PCIe 卡和扩展单元数据库。无论是 DSM 7(涵盖 DSM 7.2)还是 DSM 6 系统,该脚本都能稳定运行,为用户提供一个全方位的硬盘兼容性解决方案。
二、脚本的核心功能详解
(一)智能检测与备份
脚本启动后,首先会获取 Synology NAS 的型号和 DSM 版本信息,从而精准定位需要编辑的数据库文件。接着,对安装在 Synology NAS 中的硬盘、SSD、SAS 和 NVMe 驱动器进行逐一检测,获取每个驱动器的型号和固件版本。在进行任何操作之前,脚本还会贴心地检查是否存在备份文件,若不存在,则自动创建备份,为后续操作提供了坚实的数据保障。
(二)精准添加与兼容性优化
通过与 Synology 官方兼容驱动数据库的比对,脚本能准确识别出未被收录的驱动器型号,并将其添加至数据库中。这不仅解决了硬盘兼容性问题,还为用户提供了更为广泛的存储设备选择空间。此外,脚本还提供了阻止 DSM 自动更新驱动数据库的选项,确保用户自定义的兼容性设置不会被轻易覆盖。
(三)性能提升与个性化配置
-
内存兼容性优化 :脚本可禁用 DSM 的内存兼容性检查,并依据实际安装的内存容量自动调整最大内存设置。这一功能对于安装了非 Synology 品牌内存的用户来说极为实用,有效避免了因内存兼容性问题导致的系统警告和性能瓶颈。 -
写入优化 :针对内部硬盘,脚本提供了设置 write_mostly 参数的功能。启用后,DSM 将优先从内部固态硬盘(SSD)读取数据,这对于混合存储环境下的性能提升尤为显著。用户既可让脚本自动识别并设置内部 SSD 为首选读取盘,也可手动指定特定的驱动器,满足不同用户的个性化需求。 -
西部数据设备分析禁用 :对于使用西部数据(WD)硬盘的用户,脚本能够禁用 DSM 中的西部数据设备分析(WDDA)功能,从而避免因硬盘使用年限问题而产生的虚假警告。在 DSM 7.2.1 及更高版本中,该功能默认已禁用,但对于低版本用户来说,这一选项无疑是个福音。
(四)M.2 设备支持增强
脚本能够激活 M2D20、M2D18、M2D17 和 E10M20-T1 等 M.2 设备在不被官方支持的 Synology NAS 上的使用。对于较新的 NAS 型号,可能还需要搭配 Synology_enable_M2_card 脚本以实现全面支持。同时,脚本会检查 M.2 卷支持状态,并在 DSM 7.2 及更高版本中启用 M.2 存储池和卷的创建功能(适用于具有 M.2 插槽或 PCIe 插槽的型号)。对于通过 PCIe 适配卡(如 M2D20、M2D18、M2D17 和 E10M20-T1)连接的 M.2 驱动器,脚本也可确保其在 DSM 7.2 及以上版本中得到妥善支持。
(五)IronWolf 健康监测更新
对于搭载 x86_64 CPU 的 NAS 设备,脚本可将 IronWolf 健康监测(IHM)更新至 2.5.1 版本,以支持最新的 IronWolf 和 IronWolf Pro 硬盘型号。此外,脚本还尝试在 “22 系列及更新型号上安装 IHM,尽管这一功能尚未经过充分测试。
(六)系统友好性与自动更新
脚本运行后,会促使 DSM 重新检查磁盘兼容性,通常情况下无需重启即可使更改生效(不涉及 M.2 驱动器时)。不过,若 NAS 配备了 M.2 驱动器,用户可能需要重启设备以确保所有更改正确应用。同时,脚本具备自动更新功能,能够检测是否有新版本发布,并根据用户设定的天数阈值(AGE 参数)自动下载更新。这一特性使得脚本能够与时俱进,持续为用户提供了一流的硬盘兼容性解决方案。
三、脚本的下载与安装
(一)下载方式
用户可从https://github.com/007revad/Synology_HDD_db/releases下载脚本的最新版本源代码(zip 格式)。下载后,将 zip 文件保存至 Synology NAS 上的指定文件夹,切记不要将脚本保存在 M.2 卷中,以免因 DSM 或存储管理器更新导致 M.2 卷不可用而影响脚本运行。随后,解压 zip 文件即可获取所需的脚本文件。
(二)通过 SSH 下载
具备一定技术基础的用户,也可通过 SSH 连接至 Synology NAS,以普通用户身份执行以下命令进行脚本下载与解压:
-
进入用户主目录: 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
(三)必备文件说明
下载并解压后,需确保以下文件位于同一文件夹中:
-
syno_hdd_db.sh:脚本主文件,承载了所有核心功能与逻辑。 -
syno_hdd_vendor_ids.txt:包含硬盘厂商识别信息的文件,用于准确识别硬盘品牌。 -
dtc 或包含 dtc 的 bin 文件夹:仅在用户拥有 E10M20-T1、M2D20 或 M2D18 且 NAS 不支持这些设备时才需要,用于设备树编译等操作。
四、脚本的运行时机与选项解析
(一)运行时机
由于 DSM 更新可能会重置硬盘兼容性数据库,因此建议用户在 DSM 更新后重新运行脚本。对于开启了 DSM 自动更新功能的用户,最佳实践是设置一个定时任务,使脚本在每次 Synology NAS 启动时自动运行。详细的定时任务设置方法可参考如何在 Synology 任务计划程序中安排脚本运行(此处应替换为实际链接,示例链接仅供参考)。需注意的是,首次运行脚本后,可能需要重启设备才能使所有更改生效。
(二)运行选项
脚本提供了丰富的可选参数,以满足不同用户的多样化需求。以下是各选项的详细解析:
-
-s、–showedits :展示对〈model〉_host 数据库和 db.new 文件所作的修改。此选项在通过 shell 运行脚本时尤为实用,能够让用户直观地了解脚本对硬盘兼容性数据库的具体更改内容。 -
-n、–noupdate :阻止 DSM 更新兼容硬盘数据库。启用此选项后,可确保用户自定义的硬盘兼容性设置不受 DSM 自动更新的影响,维持存储环境的稳定性。 -
-r、–ram :禁用内存兼容性检查(仅适用于 DSM 7.x),并将最大内存设置为实际安装的内存容量。这对于使用了非 Synology 认证内存的用户来说,可有效消除内存兼容性警告,提升系统性能。 -
-f、–force :强制 DSM 不检查硬盘兼容性。此选项仅在极少数情况下才需使用,例如当用户的硬盘明明支持却未被 DSM 正确认别时。但需谨慎使用,因为启用该选项可能会导致数据去重功能不可用,并且无法对 Synology 品牌硬盘进行固件更新。 -
-i、–incompatible :将不兼容的硬盘更改为支持状态。同样,此选项应仅在万不得已时才使用,不当操作可能会影响系统的稳定性和数据安全性。 -
-w、–wdda :禁用西部数据设备分析(WDDA),以避免 DSM 对使用年限超过 3 年的西部数据硬盘显示警告信息。在 DSM 7.2.1 及更高版本中,WDDA 默认已禁用。 -
-p、–pcie :启用在未知 PCIe 适配器上的 M2 设备上创建卷的功能。 -
-e、–email :在输出调度器电子邮件中禁用彩色文本。 -
-S、–ssd=DRIVE :启用内部硬盘的 write_mostly 模式,使 DSM 优先从内部固态硬盘(SSD)读取数据。用户可选择让脚本自动识别内部 SSD 作为首选读取盘,也可手动指定特定的驱动器(如 –ssd=sata1 或 –ssd=sata1,sata2 或 –ssd=sda 等),甚至可以使用 –ssd=restore 参数将驱动器恢复至默认状态。 -
–restore :撤销脚本所做的一切更改(不包括 -S、–ssd 选项的更改)。若要同时恢复 write_mostly 设置,则需配合 –ssd=restore 参数使用。 -
–autoupdate=AGE :自动更新脚本。AGE 参数表示发布版本必须经过多少天才能自动更新,0 或更大数字皆可。此功能对于设置了定时任务的用户非常有用,可确保脚本始终处于最新状态。 -
-I、–ihm :更新 IronWolf 健康监测至 2.5.1 版本,以支持最新的 IronWolf 和 IronWolf Pro 硬盘型号(仅适用于搭载 x86_64 CPU 的 NAS)。同时,脚本还会尝试在 “22 系列及更新型号上安装 IHM,尽管这一功能尚未经过充分测试。 -
-h、–help :显示帮助信息。 -
-v、–version :显示脚本版本信息。
(三)脚本运行示例
-
通过 SSH 运行脚本 :
-
启用 SSH 并登录到 DSM 通过 SSH(具体方法可参考如何启用 SSH 并通过 SSH 登录到 DSM(此处应替换为实际链接,示例链接仅供参考))。 -
在 shell 中以 root 权限运行脚本: sudo -s /path-to-script/syno_hdd_db.sh -nr
(请将 /path-to-script/ 替换为脚本在 Synology NAS 上的实际路径)。
-
-
查看更改详情 :若想查看脚本对硬盘兼容性数据库的具体修改内容,可在运行脚本时添加 –showedits 参数:
sudo -s /path-to-script/syno_hdd_db.sh -nr --showedits
五、定时任务设置指南
为了实现脚本的自动化运行,提升使用便利性,用户可在 Synology NAS 的任务计划程序中安排脚本在启动时运行。详细的设置步骤可参考如何在 Synology 任务计划程序中安排脚本运行(此处应替换为实际链接,示例链接仅供参考)。通过合理设置定时任务,用户无需手动干预,即可确保每次设备启动后硬盘兼容性设置都处于最佳状态,为数据存储提供持续可靠的保障。
六、故障排查与解决方案
在使用 Synology_HDD_db 脚本的过程中,用户可能会遇到一些常见问题。以下是这些问题及其对应的解决方案:
(一)文件格式问题
-
错误信息 : /usr/bin/env:‘bash\r’:No such file or directory
或光标停滞无响应。 -
原因分析 :文件采用了 Mac 或 Windows 行结尾格式。 -
解决方案 :重新从https://github.com/007revad/Synology_HDD_db/releases下载最新版的 zip 文件,该版本应采用正确的 Unix/Linux 行结尾格式。
(二)路径与权限问题
-
错误信息 :
No such file or directory
-
原因分析 :
-
下载的 zip 或 rar 文件未正确保存至 Synology NAS 文件夹中。 -
未解压下载的 zip 或 rar 文件,直接尝试运行 syno_hdd_db.sh 文件。 -
脚本路径中包含空格且未将路径和脚本名称用双引号括起来。 -
未将脚本文件设置为可执行文件。
-
-
解决方案 :
-
确认文件已正确下载至 Synology NAS 文件夹。 -
解压下载的文件,并确保运行的是 syno_hdd_db.sh 文件。 -
若路径中包含空格,运行脚本时需将路径和脚本名称用双引号括起来,例如: sudo -s "/volume1/my scripts/syno_hdd_db.sh -n"
。 -
设置脚本文件为可执行文件: sudo chmod +x "/volume1/scripts/syno_hdd_db.sh"
。
-
(三)vendor_ids.txt 文件编辑
-
问题描述 :若 DSM 无法识别 NVMe 驱动器的品牌,将在存储管理器中显示为未知品牌和无法识别的固件版本。此时,脚本会提示用户添加相应的供应商 ID 至 syno_hdd_vendor_ids.txt 文件。 -
解决方案 :按照脚本提示,将缺失的供应商 ID 添加到 syno_hdd_vendor_ids.txt 文件中,从而确保 NVMe 驱动器的品牌信息能够被 DSM 正确识别。
七、IronWolf 健康监测的优化
IronWolf 健康监测(IHM)是专为西部数据 IronWolf 系列硬盘设计的健康状态监控工具。通过 Synology_HDD_db 脚本更新至最新版本(2.5.1),用户可确保 IHM 能够全面支持最新的 IronWolf 和 IronWolf Pro 硬盘型号。对于搭载 x86_64 CPU 的 NAS 设备以及 “22 系列及更新型号,脚本还会尝试安装 IHM,尽管这一功能尚未经过充分测试,但对于追求硬盘健康监测准确性的用户来说,仍是一个值得尝试的优化方向。
八、脚本的贡献者与赞助者
Synology_HDD_db 脚本的成功离不开众多贡献者和赞助者的支持。从最初在 Synology 子版块上的一条评论启发,到众多技术专家的协助与建议,每一行代码都凝聚着社区的智慧与力量。同时,众多赞助者的慷慨解囊也为脚本的持续开发与维护提供了坚实的物质基础。在此,向所有为脚本发展做出贡献的个人和组织致以崇高的敬意和衷心的感谢。
九、结语
Synology_HDD_db 脚本作为一款针对 Synology NAS 硬盘兼容性问题的实用工具,凭借其丰富多样的功能和简便易行的操作,为用户提供了全方位的硬盘兼容性解决方案。无论是解决硬盘识别难题、优化系统性能,还是提升数据存储安全性,它都展现出了卓越的实力与价值。对于追求高效、稳定数据存储环境的 Synology NAS 用户而言,深入理解和熟练运用这款脚本,无疑将为您的数据存储之旅带来更加顺畅的体验。然而,正如任何技术工具一样,在使用过程中也需遵循谨慎原则,合理配置各项参数,以确保系统的稳定运行和数据的安全可靠。随着技术的不断进步与更新,我们有理由相信,Synology_HDD_db 脚本将在未来的存储领域中持续发光发热,为用户带来更多惊喜与价值。