[已解决]飞牛系统关机时,硬盘会异响
本帖最后由 StevenG 于 2025-6-8 11:59 编辑如题,用的浪潮m4硬盘笼组的nas,装的飞牛系统,关机时会有比较尖锐的异响,最开始以为某个硬盘有坏道了,把所有硬盘挨个排查了一遍,发现都有此现象,去飞牛论坛看了一下,发现也有遇到类似问题的人,并且他还反馈不安全关机次数会增加。想知道这是系统的问题,还是用硬盘笼的原因。有没有解决办法?
PS:正在安装win10 用来对比
分割线---------------------
这是自组的NAS用来替换ds1821+
用的x570d4i和5600,64g ecc,闲鱼上定制的机箱
淘宝上找的浪潮服务器代理商,特挑的硬盘托架,成色非常好
昨晚遇到这个问题后,查了B站和坛子里相关的帖子,发现除了一个修改配置的脚本,没有进一步的操作,而且飞牛官方论坛也没人发解决方法。
本人便仔细研究了一下,首先找到了一个当前飞牛版本可用的命令:
for i in /sys/class/scsi_disk/*/manage_runtime_start_stop; do echo 1 > $i; done
for i in /sys/class/scsi_disk/*/manage_shutdown; do echo 1 > $i; done
参考来源:https://www.wunote.cn/article/20240122130837/
这个老哥用的是TrueNas,有启动任务脚本可设置,用TrusNas的用户可百度
那么问题就好办了,找个能配置启动任务脚本的地方,这个问题就解决了。
但是遗憾的是,飞牛系统没有这个功能。。。虽然理论上ssh接进去,也能在启动项上做点什么,不过一来比较麻烦,二来需要root权限(我倒是没实际操作,看B站的结论是飞牛似乎没给root权限)
既然底层改希望渺茫,且不适合普通用户(用飞牛的,大多不是专业选手)那就上层改改试试
飞牛自己的功能虽然有待完善,但是,有第三方强大的1Panel。。。干运维的朋友应该非常熟悉。
1Panel中的计划任务或许可以解决问题[偷笑]
接下来进入正题:
1. 安装1Panel,打开应用中心->开发工具,就能看到:
安装非常简单,选个存储空间,下一步就行,期间会让你配置账号密码和入口,这个入口记一下,接下来会用
2. 访问1Panel,安装好以后,飞牛桌面上就会出现1Panel的图标,点击执行,就会弹出个页面,提示无权访问
这时,只需要把上一步记下来的入口名字,在浏览器的地址栏中,补充上去就行,端口和入口地址间要有/分隔
3. 登录到1Panel后,打开计划任务
4. 将上面的脚本,添加到新建的计划任务中,因为只能设置执行周期,这里建议那些需要开关机的朋友,按照小时设置,
我开机械硬盘NAS就是查一查备份的资料,所以周期设置为1小时,更高频的还有分钟和秒级
5. 配置完成后,可以手动执行一次,直接执行
到这里,其实就设置好了,不过上面的脚本过于简单,没有日志输出,只能查看一下1Panel的执行记录,稍后我会更新一版带日志输出的脚本
6. 接下来就是验证,首先看一下c0也就是192的值,当前是6次(心疼ing。。这还是最近新买的,之前用的硬盘,这个数值有十来次的,好在只要不是读写时断电,基本不会坏道)
7. 关机,可以在设备旁仔细听一下声音,这个时候会发现,声音不再是突然的尖锐异响,而是能感觉到磁头复位后,磁盘再停转(虽然也比较尖锐,但是明显能感觉是有个停转摆臂的过程在,而不是突然弹回)
8. 开机再看一下磁盘信息,c0(192)断电返回计数依旧是6次,由于重新开关机,所以下面的磁头加载循环计数也加1了
---------脚本更新--------
更新后的脚本,支持打印执行记录:
# 启用所有硬盘的关机停转管理(带详细输出和验证)
echo "正在修改硬盘关机管理属性..."
echo "----------------------------------------"
for d in /sys/class/scsi_disk/*; do
# 获取磁盘标识符(如0:0:0:0)
disk_id=$(basename "$d")
# 记录原始值
orig_shutdown=$(cat "$d/manage_shutdown")
orig_runtime=$(cat "$d/manage_runtime_start_stop")
# 修改属性值
echo 1 > "$d/manage_shutdown" 2>/dev/null
echo 1 > "$d/manage_runtime_start_stop" 2>/dev/null
# 获取修改后的值
new_shutdown=$(cat "$d/manage_shutdown")
new_runtime=$(cat "$d/manage_runtime_start_stop")
# 输出修改结果
echo "磁盘: $disk_id"
echo "manage_shutdown: $orig_shutdown → $new_shutdown"
echo "manage_runtime_start_stop: $orig_runtime → $new_runtime"
# 验证是否修改成功
if [[ $new_shutdown -eq 1 && $new_runtime -eq 1 ]]; then
echo "状态: 成功"
else
echo "状态: 失败! (可能需要root权限)"
fi
echo "----------------------------------------"
done
echo "所有磁盘处理完成。"
这是重新开机后,尚未触发刚才简单脚本时,手动执行的新脚本记录:
可以看到,配置从0改成了1
再运行一次脚本:
配置1->1,再次覆盖配置修改
装了win10系统,还会遇到这个问题,用crystaldiskinfo看了一下硬盘信息,发现这个问题会增加c0断电磁头缩回计数。。。 搜了一下,似乎直通卡通病。。。目前找到的方案,只有一个linux开机时用root执行命令,内核版本6.5.0-17以下修改manage_start_stop文件,6.5.0-15以上修改manage_shutdown文件[生病]
页:
[1]