**最近做了一个2074+1153E的硬盘柜,发现和N系列主机有兼容性问题。后来发现这个问题不只是是ASM有问题,只要是非倍增方案的硬盘柜都有可能出问题。**经过好几天的尝试,通过AI找到了问题和解决方案。给大家参考。
相关的文件我先分享:
链接: https://pan.baidu.com/s/1DCP9IXQW_5kXjtbEYKr3jA 提取码: kmai
原理在下面,给大家参考。
为什么会掉盘?
- 根本原因:Intel N 系列主机默认开启激进的 ASPM 节能策略。当硬盘柜进入低功耗状态,再次唤醒时的响应延迟超过了 UAS 协议 的容忍极限,导致握手失败,系统判定设备掉线。
- 高发平台:Intel N100, N5105, N5095, N6005, N200, N95 等低功耗小主机。
- 故障现象:高负载读写时突然中断、I/O 错误、文件系统变只读。
🛠️ 解决方案
为了获得 100% 的稳定性,必须同时执行以下两步:
- BIOS 层 (硬件根治):关闭 ASPM,禁止 PCIe 链路休眠。
- 系统层 (软件兜底):禁用 UAS 协议 + 禁止 USB 自动挂起。
1. a、禁用 UAS 协议 (Kernel Quirks)**
* **原理**:告诉 Linux 内核,针对 VendorID `174c` (ASMedia) 和 ProductID `2074` 的设备,强制禁用 UAS,回退到 BOT 模式。
* **操作**:创建文件 `/etc/modprobe.d/ignore_uas.conf`,写入内容:
```bash
options usb-storage quirks=174c:2074:u
```
b、禁用 USB 自动挂起 (Udev Rule)**
* **原理**:当检测到该硬盘柜插入时,通过 Udev 规则强制将其电源管理设置为 `on` (始终开启),禁止进入低功耗挂起状态。
* **操作**:创建文件 `/etc/udev/rules.d/99-d4-storage-stability.rules`,写入内容:
``udev ACTION=="add|change", SUBSYSTEM=="usb", ATTR{idVendor}=="174c", ATTR{idProduct}=="2074", ATTR{power/control}="on" ``
c、**更新内核引导镜像 (Initramfs)**
* **原理**:确保上述 `usb-storage` 的参数在系统启动的最早期阶段就能生效。
* **操作**:执行命令 `update-initramfs -u`。
修改 BIOS 设置 (硬件层) 🌟
这是最根本的解决方式。 无论您使用什么系统,都强烈建议进入 BIOS 进行修改。
- 目标:找到并 关闭 (Disable) 所有与 ASPM (Active State Power Management) 相关的选项。
- 常见路径参考 (不同主板菜单可能略有不同,请灵活查找):
Advanced -> PCI Subsystem Settings -> ASPM Support -> Disabled
Chipset -> PCH-IO Configuration -> PCI Express Configuration -> ASPM -> Disabled
Advanced -> Power Management -> PCI Express Native Power Management -> Disabled
Advanced -> RC ACPI Settings -> Native PCIE Enable -> Disabled
- 如果看到 DMI ASPM Support 或 xDCI Support,也一并 Disabled。
系统层修复 (软件层) 🛡️
根据您的使用场景,选择对应的操作方法。
场景 A:硬盘柜连接到 Windows 电脑 (作为本地硬盘)
请直接在 Windows 中修改电源策略:
- 控制面板 -> 电源选项 -> 更改计划设置 -> 更改高级电源设置 -> USB 设置 -> USB 选择性暂停设置 -> 已禁用。
- 设备管理器 -> 通用串行总线控制器 -> 找到 USB 大容量存储设备 -> 右键 属性 -> 电源管理 -> 取消勾选 “允许计算机关闭此设备以节约电源”。
场景 B:硬盘柜连接到 NAS (FnOS/Debian/Linux)
我们需要在 NAS 系统中打上驱动补丁。请根据您当前使用的电脑选择工具:
🍎 Mac 用户 (一键修复)
- 下载本补丁包到您的 Mac。
- 双击运行
Login_NAS.command。
- 根据提示输入 NAS IP 和 用户名/密码。
- 脚本会自动上传并运行补丁,完成后重启 NAS 即可。
💻 Windows 用户 (一键修复)
- 下载本补丁包到您的 Windows 电脑。
- 双击运行
Login_NAS.bat。
- 根据提示输入 NAS IP 和 用户名,并按回车。
- 脚本会自动打开终端,输入以下命令并回车:
sudo bash fix_uas_stability.sh
- 完成后重启 NAS。
🐧 Linux / 终端老手 (手动修复)
- 上传
fix_uas_stability.sh 到 NAS。
- SSH 登录 NAS,执行:
sudo bash fix_uas_stability.sh
- 重启 NAS。
✅ 验证修复是否成功
重启 NAS 后,SSH 连接并输入以下命令:
lsusb -t