解决黑群晖故障“ 抱歉,您所指定的页面不存在”的方案
(1)问题描述:
没有进行任何异常操作,正常关机,重新开机后,Synology Assistant无法搜索到群晖主机。而手动输入群晖IP地址访问,网页就出现“抱歉,您所指定的页面不存在 ”。
(2)问题环境:
产品型号: DS3617xs
DSM版本:DSM 6.1.7-15284
引导版本:DS3617xs 6.1 Jun’s Mod V1.02b
(3)问题原因:
libsynopkg.so.1和libsynoshare.so.6文件损坏
(4)解决方案:
1、把你群晖固件如“DSM 6.1.7-15284.pat”后缀名改成“zip”,使用7zip等解压缩软件解压出来,找到根目录下hda1.tgz文件,再次解压,在路径\hda1\usr\lib 目录下找到两个文件:libsynopkg.so.1 和 libsynoshare.so.6,然后复制出来。
2、windows下的使用winscp通过 sftp 或者 scp 连上群晖,将上述两个文件复制到 tmp 文件夹里。
注:如果你群晖没有开 telnet 或者 ssh,那就用系统救援 U 盘引导,类似 WePE U 盘大师这种,然后进入主机后,直接将这两个文件复制替换。
重启后就搜索到群晖了。遇到这个问题的人很多,很多人都说要重装,硬盘数据这么多,很麻烦啊。还有的说是群晖封的,还好通过以上方式问题解决。
注:如果还有问题,请把这两个文件的权限,更改为 644
chmod 644 /lib/libsynopkg.so.1
chmod 644 /lib/libsynoshare.so.6
两个解决办法, 一个重装,一个传文件,怎么可能重装呢, 这么多东西再弄一遍要我老命了, 更何况不在家里, 远程怎么重装
绝大部分文字图片来源于 百家号汇聚魔杖 可以点上方来源查看, 本文章略作修改
这个问题表现症状为:通过网页进入群晖控制面板(5000端口),会提示:“抱歉,您所指定的页面不存在”。但通过群晖的Synology Assistant套件能够发现群晖服务器,通过ping群晖服务器的IP地址能够正常ping通,并且通过SSH或者SMB能够正常的访问。
上传文件修复
因为引导文件的bug,导致DSM系统文件损毁,只需替换损毁的/lib/libsynopkg.so.1和/lib/libsynoshare.so.6两个系统文件即可。
找到之前下载的.pat的镜像文件,也可以到群晖官方网站下载,注意版本一定要对应。不只是大版本 小版本也要对应
能连上SSH的话 uname -a 查看你装的版本, 如果没开SSH,你也不知道具体的版本,那就找个版本赌一把,我一开始不知道我的版本, 传了文件并没有用
uname -aLinux YOUR_NAS_NAME 3.10.102 #15284 SMP Sat May 19 04:44:02 CST 2018 x86_64 GNU/Linux synology_broadwell_3617xs这就要找 DSM_DS3617xs_15284.pat 这个包才行
将.pat的文件后缀改为压缩包的格式,如:.zip或.rar,然后进行解压,解压后会有一个名为“hda1.tgz”的文件,再将这个文件进行解压得到“hda1”文件。
给"hda1"这个文件夹上压缩包的后缀,如“hda1.zip”,再进行解压。解压后依次找到文件夹usr、lib,将lib文件夹中的libsynopkg.so.1和libsynoshare.so.6两个系统文件拷贝至桌面,并通过WinSCP上传至群晖的/tmp文件夹中。
放到tmp文件夹之后并没有完,还要借助putty进行SHH登录,将libsynopkg.so.1和libsynoshare.so.6两个系统文件拷贝至/lib文件夹,并更改这两个文件的权限,避免权限错误导致问题依然存在。
注意!!!!! : 这一步之前最好把要覆盖的文件备份一下, 以防万一不是这俩
通过Putty进行SHH登录之后,还需要输入“sudo -i”将操作权限提升至root权限。然后逐条输入下面的命令,“mv -f”命令是将文件从tmp文件夹移动至lib文件夹并强制覆盖,而“chmod 644”则是更改文件的权限。
mv -f /tmp/libsynopkg.so.1 /libmv -f /tmp/libsynoshare.so.6 /libchmod 644 /lib/libsynopkg.so.1chmod 644 /lib/lbsynoshare.so.6
确定文件覆盖成功后,在Putty里输入“reboot”命令将群晖服务器进行重启,正常来说等待重启完成之后就会发现“抱歉,您所指定的页面不存在”这个提示页面已经消失,显示的是正常的登录页面。
如果还是 “抱歉,您所指定的页面不存在”这个提示页面,确定一下系统版本
登录后可能还会出现其他的错误
比如“系统状况”里没有任何信息显示,并且“存储空间管理员”也发现不了任何硬盘的信息,通过“重置”的方式恢复成“原始出厂设置”更加不可能。
这时我们需要通过Putty进行SHH登录,同样的需要输入“sudo -i”获取root权限,然后输入“ps -ef”命令,找到显示“<defunct>”字样的进程,defunct就是表示损坏或者不存在的意思。
对比文件
这时我们可能并不能确定具体是哪个文件不存在或者出现了损坏的情况,可以将整个“lib”文件夹通过WinSCP上传至“/tmp”文件夹,然后通过“diff”命令进行比对,如下图。
diff -c -a -b -B -r -q /tmp/lib /lib | grep "Files"这要就直接能看错误文件了, 如果版本不对的话全是Files
执行“diff”比对之后,如果有错就会输出结果
示例: Files lib/libstoragemanager.so and lib/libstoragemanager.so differ
这时我们只需要通过命令将“libstoragemanager.so”移动至“/lib”文件夹内
并通过“chmod 644”更改“libstoragemanager.so”的权限。
mv -f /tmp/libstoragemanager.so /libchmod 644 /lib/libstoragemanager.so
确定文件覆盖成功后,在Putty里输入“reboot”命令将群晖服务器进行重启,等待重启完成之后就会发现“系统状况”又恢复正常了,并且在“存储空间管理员”上能够正常的显示磁盘的信息。
总结
上面的方法可以在保留原有数据以及设置的情况下对群晖DSM进行恢复,当然这种方法并不是唯一,如果在没有开启SSH服务的前提下,也可以通过PE启动盘,直接进入磁盘进行文件替换。
开启SSH服务或者Telnet功能,可以更好地对群晖DSM进行维护。比如上面介绍的进程诊断和文件夹对比功能。
起因#
搞了一个usb外接硬盘准备备份数,刚好看到群晖有个工具软件"USB Copy"。
安装后设置拷贝docker文件夹,然后就悲剧了,nas主页抛出提示
一开始也是直接网上搜索标题关键字,发现是lib下库文件损坏
这里感谢博主 https://pulnd.com/2020/06/19/nas-defunct-trouble/ 的文章
解决方案#
这个方法要求nas开启了ssh,可以命令操作,如果没有开启的就只能走pe启动处理了
先查询错误日志 (默认root账户)
Copycat /var/log/upstart/synoscgi.log
主要缺失了三个文件 libsynopkg.so.1、libsynoshare.so.6 和libsynostoragemgmt.so
发现错误如下:
.
libsynostoragemgmt.so这个库文件提供了如:存储空间信息、共享文件夹及系统信息等服务,木有就会导致命令查询失败
问题找到了,就把上述三个文件通过winScp上传到nas,直接上传到lib会报出无权限,所以上传到tmp目录后拷贝到目标lib
Copycp libsynostoragemgmt.so /libcp libsynoshare.so.6 /libcp libsynostoragemgmt.so /lib
reboot重启nas即可
若是发现无法启动,可尝试设置文件权限
Copychmod 644 /lib/libsynopkg.so.1chmod 644 /lib/libsynoshare.so.6chmod 644 /lib/libsynostoragemgmt.so