教你解决黑群晖 “抱歉,您所指定的页面不存在” 问题
起因就是黑群今天突然抽风了~
操作环境如下:
黑群晖 DSM 6.1.7-15284 Update 3
需要已开启 SSH
问题原因
基本上出现该问题是由于依赖文件的损坏或丢失造成的,具体就是/lib 目录下缺少 Web UI 运行所需要的 .so 系统文件(缺失文件可能每个人都不同,但解决的方法是相同的)
解决方法
下载镜像
一定要下载与自己对应型号和版本的镜像
查看有问题的依赖文件
SSH进入 /var/log/upstart 目录,查看 synoscgi 运行日志
sudo -i # root权限
cd /var/log/upstart
cat synoscgi.log
比如我这里显示libsynopkg.so.1
、libsynoshare.so.6
和 libsynostoragemgmt.so
有问题(这个需要根据时间自己找哦,每个人的问题可能都不一样的,我这边是列出来方便给大家看)
|
|
提取原镜像中对应的依赖文件
用 7z 等压缩软件打开 .pat 镜像文件,再打开里面的 hda1.tgz
压缩包,继续打开里面的 hda1
文件,进入 /usr/lib
,找到对应的依赖文件,解压出来备用。(或者也可以一步步解压将文件全部解压出来再找,方便搜索,但是部分文件整体解压缩好像会出现问题)
覆盖依赖文件
需要使用root用户登录,所以要先开启群晖DSM的root权限
先SSH连接到DSM
|
|
再使用 WinSCP 用root用户登录到群晖,将上面解压出来的依赖文件上传覆盖到 /lib
目录下,再到SSH这边修改文件权限,避免出现权限错误导致依旧无法启动。
(注意:这边文件名要跟你有问题的依赖文件对应,不是直接复制我的
)
|
|
使用diff命令对比文件
这个步骤不懂可以跳过,如果后面没解决再回头来操作这个也可以
由于/lib
目录下还有大量的其他动态链接库,且之间相互关联,如果只是拿正常的文件替换该文件,问题可能还是无法得到根本解决。在覆盖后如果不放心,可以拿镜像包内的整个目录与DSM上的目录做一个比对。
比对文件差异的软件很多,这里我们以Linux/MacOS下默认提供的diff为例进行讲解。
在这里,我将解压出来的hda1
目录拷贝到了DSM上的/mnt/image,然后执行以下命令:
|
|
执行后,该命令输出了以下结果(显示仅供参考):
|
|
说明/lib/libsynoshare.so.6
还有/lib/libsynopkg.so.1
文件出现了损坏。
验证是否成功
SSH里执行sudo reboot
进行重启,再尝试访问web界面,如果还是不行可以再次查看synoscgi.log
日志文件,根据时间看有什么新的记录。
其他问题
执行指令synoscgi
|
|
可以显示 synoscgi 及子进程运行情况和问题进程,根据显示的具体情况再去查找解决方案。