本文针对类似 Alliot 这种强迫症患者对 DSM 进行一些系统级的小优化,主要内容有:屏蔽系统更新、CPU 显示补丁、硬盘休眠、断网自动关机。没有这方面的需求的朋友可以暂且跳过本文。
屏蔽系统更新
众所周知,黑群晖在更新系统的时候由于引导不适配很容易导致翻车,因此,为了防止自己手贱,将群晖的更新域名通过 hosts 指向一个错误的 IP,让其系统无法获取更新来达到屏蔽更新的目的。
修改 hosts
ssh 连接并群晖获取 root 权限,编辑 /etc/hosts
文件,将 update.synology.com
指向任意一个错误的 IP:1
2
3
4
5
6sudo -i
vi /etc/hosts # 按 i 进入插入模式,在底行加入如下:
127.0.0.1 update.synology.com
之后按 ESC,切换为大写,输入 ZZ,即可保存
去掉桌面与控制面板更新提示
法一:
在前面屏蔽系统更新的基础上,ssh 连接并群晖获取 root 权限,删除提醒文件:1
2rm -rf /var/update/check_result/last_notified/*
rm -rf /var/update/check_result/update
即可。
法二:
这是一个曲线救国的方法,通过替换图标文件来达到隐藏更新提示的目的。 ssh 连接并群晖获取 root 权限 逐行执行如下命令:1
2
3
4
5
6
7
8
9
10
11
12
13
14cp /usr/syno/synoman/webman/modules/AdminCenter/images/default/1x/badge_control_panel.png /usr/syno/synoman/webman/modules/AdminCenter/images/default/1x/badge_control_panel.png.bak
cp /usr/syno/synoman/webman/modules/AdminCenter/images/default/2x/badge_control_panel.png /usr/syno/synoman/webman/modules/AdminCenter/images/default/2x/badge_control_panel.png.bak
wget -O /usr/syno/synoman/webman/modules/AdminCenter/images/default/1x/badge_control_panel.png http://static.iots.vip/transparent.png
wget -O /usr/syno/synoman/webman/modules/AdminCenter/images/default/2x/badge_control_panel.png http://static.iots.vip/transparent.png
cp /usr/syno/synoman/synoSDSjslib/images/default/1x/dsm5_notification_num.png /usr/syno/synoman/synoSDSjslib/images/default/1x/dsm5_notification_num.png.bak
cp /usr/syno/synoman/synoSDSjslib/images/default/2x/dsm5_notification_num.png /usr/syno/synoman/synoSDSjslib/images/default/2x/dsm5_notification_num.png.bak
wget -O /usr/syno/synoman/synoSDSjslib/images/default/1x/dsm5_notification_num.png http://static.iots.vip/transparent.png
wget -O /usr/syno/synoman/synoSDSjslib/images/default/2x/dsm5_notification_num.png http://static.iots.vip/transparent.png
cp /usr/syno/synoman/synoSDSjslib/images/default/1x/dsm5_badge_num.png /usr/syno/synoman/synoSDSjslib/images/default/1x/dsm5_badge_num.png.bak
cp /usr/syno/synoman/synoSDSjslib/images/default/2x/dsm5_badge_num.png /usr/syno/synoman/synoSDSjslib/images/default/2x/dsm5_badge_num.png.bak
wget -O /usr/syno/synoman/synoSDSjslib/images/default/1x/dsm5_badge_num.png http://static.iots.vip/transparent.png
wget -O /usr/syno/synoman/synoSDSjslib/images/default/2x/dsm5_badge_num.png http://static.iots.vip/transparent.png
完成后需要注销登录,并清理浏览器缓存才可看到效果。
CPU 显示补丁
群晖控制面板信息中心中显示的 CPU 信息是根据系统型号对应的硬件信息写死的,比如白群晖 918+ 的 CPU 是 J3455,不管你黑群晖使用的什么 CPU,918+ 系统显示的都是 J3455,可以通过 FOXBI 大佬的补丁来让其正确显示:
ssh 连接并群晖获取 root 权限 逐行执行如下命令:1
wget -N --no-check-certificate http://static.iots.vip/sh/ch_cpuinfo.sh && sh ch_cpuinfo.sh
按照提示输入 1 回车 y 回车,之后注销登录,并清理浏览器缓存即可看到效果如图:
硬盘休眠
先说明,群晖的休眠只能实现所有硬盘休眠,所有硬盘唤醒,因此,在 Alliot 看来,群晖硬盘休眠并不好,总有一些文件在读写(比如日志),频繁的休眠、唤醒反而容易导致硬盘寿命下降。
不过,非要休眠也不是没有办法,konglang_616 大佬找出的问题原因在此:黑群硬盘休眠问题的一种解决思路 ,主要就是因为黑裙的硬件等原因,/var/log/scemd.log
这个日志文件一直有输出,所以将该日志文件移到内存即可。
ssh 连接并群晖获取 root 权限 执行如下命令:1
sed -i 's/var\/log/dev\/shm/' /etc.defaults/syslog-ng/patterndb.d/scemd.conf
重启即可。
断网自动关机
由于我的 UPS 不带通讯功能,无法接入群晖停电自动关机,因此,利用 shell 脚本不停的 ping
路由器,当路由器无法 ping
通时,延时一段时间后调用 poweroff
关闭群晖,实现断网自动关机。
ssh 连接并群晖获取 root 权限 执行如下命令:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23cd / # 切换目录到 /
以下内容全部复制,粘贴执行
tee netcheck.sh <<-'EOF'
!/bin/env bash
MonitorIP=192.168.1.1
DelayTime=180s
if `ping $MonitorIP -W 2 -w 2 -c 2 >/dev/null`;then
echo `date +'%Y-%m-%d %H:%M:%S'`
echo "Power on."
else
echo `date +'%Y-%m-%d %H:%M:%S'`
synologset1 sys warn 0x11600036
sleep $DelayTime
if `ping $MonitorIP -W 2 -w 2 -c 2 >/dev/null`;then
synologset1 sys warn 0x11600035
else
synologset1 sys warn 0x11600037
poweroff
fi
fi
exit 0
EOF
回到 DSM 网页,打开“控制面板”,选择“任务计划”,新增“用户定义的脚本”,如下图配置:
在“任务设置”的“用户自定义脚本”中填入:1
bash /netcheck.sh >> /netcheck.log
确定并保存即可。
解决DSM6.2添加第三方套件源无效位置的问题
这是由于群晖内部的 CA 根证书库到期导致的,更新替换一下即可:
ssh 连接并群晖获取 root 权限1
2sudo mv /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt.bak
sudo curl -Lko /etc/ssl/certs/ca-certificates.crt https://curl.se/ca/cacert.pem