xpalm

修复"抱歉,您所指定的页面不存在"

Recommended Posts

修复"抱歉,您所指定的页面不存在",超级简单,不用重装系统,百试不爽。刚在国外网站用英语发了贴子,英语比较差。方法很简单,就是找一台工作正常的群晖把里面的这两个文件/lib/libsynoshare.so.6  /lib/libsynoshare.so.6复制出来覆盖不能网页登陆的群晖。重启系统就可以了。如果你没有开telnet或者ssh,那你就用系统救援u盘引盘进导,把文件拷进去就可以了。

以下是英文原版,介绍排查查找问题的过程。大神请轻拍。有效在帖子里回复。

 

how to fix "Sorry, that page doesn't exist"


Today ,My synology Can't login in DSM!!!  Fisrt , I named it as synology_A。there is another synology is work well,named it as synology_B。
synology_A info:
Product:DS3617xs
Version:DSM 6.1.5-15254 Update 1
bootloader:DS3617xs 6.1 Jun's Mod V1.02b

Then I telnet in synology
telnet  x.x.x.x 
>sudo -i   #login in as root,password is same as admin.


Then I compare synology_A and synology_B's Process.I find  synology_A has many [defunct] process.

root@synology_A:~# ps -ef | grep cgi
root      2948 10340  0 Mar20 ?        00:00:00 [synoscgi_______] <defunct>
root     10280     1  0 Mar19 ?        00:00:08 /usr/syno/sbin/synocgid -D
root     10340     1  0 Mar19 ?        00:00:26 synoscgi
system   10470 10340  0 Mar19 ?        00:00:00 synoscgi
system   29109 10340  0 17:28 ?        00:00:00 synoscgi
root     29180 29148  0 17:30 pts/5    00:00:00 grep --color=auto cgi
system   31659 10340  0 Mar20 ?        00:00:00 synoscgi
system   31834 10340  0 Mar20 ?        00:00:00 synoscgi
system   31924 10340  0 Mar20 ?        00:00:00 synoscgi
root@synology_A:~# kill -9 10340    (kill the parent process)
root@synology_A:~# ps -ef | grep cgi
root     10280     1  0 Mar19 ?        00:00:08 /usr/syno/sbin/synocgid -D
root     29205 29148  0 17:30 pts/5    00:00:00 grep --color=auto cgi

Then I start up the process 'synoscgi'
root@synology_A:~# synoscgi
synoscgi: error while loading shared libraries: /lib/libsynoshare.so.6: invalid ELF header

Hahahaha,the 'libsynoshare.so.6' is a invalid ELF header.

I use shell compare synology_A and synology_B's Directory '/lib' I find there is two file is different!.

synology_A:
fc6a81a0cef83cc98e7af02e068646ec  ./libsynoshare.so.6
657ad98f8a46e0961804b3ad69ff257e  ./libsynopkg.so.1
synology_B:
8efad47899b4eeaaccebb6efb5cf8ddc  ./libsynoshare.so.6
5bb625ce2b7193e3a2cc3637cd33c7ec  ./libsynopkg.so.1


Ok,Try to copy synology_B's file to synology_A.

root@synology_A:~# scp root@x.x.x.x:/lib/libsynoshare.so.6 /lib/libsynoshare.so.6
root@synology_A:~# scp root@x.x.x.x:/lib/libsynopkg.so.1 /lib/libsynopkg.so.1

Start the process,it works!:

root@synology_A:~# synoscgi
Copyright (c) 2003-2018 Synology Inc. All rights reserved.

Usage: synoscgi (Version 15254)
        --help: this help
        --mode: scgi|apid (required) run as synoscgi or synoapid

        scgi related params:
        --idle-child={childNumber} (optional, default: 10) max idle child number
        --max-child={childNumber} (optional, default: 65535) max child number

        apid related params:
        --conf (required) apid config realpath

Then Reboot it!        
root@synology_A:~# init 6


finnaly  synology_A is come back! it can be login in.

Note:
1、The above tow files you can ask some one to send you.
2、You can test let /lib/libsynopkg.so.1 /lib/libsynoshare.so.6 have no write authority like this:
    chmod u-w /lib/libsynopkg.so.1
    chmod u-w /lib/libsynoshare.so.6
   I have not test above.
3、You can use scp \ wget \curl to download files into synology.  Or use usb storage mount Or use Samba(Samba is also working) 

4、If you have not enabled the telnet or ssh server,you can't login in. You can Use 'Linux SystemRescue' iso write to usb storage to bootloader into  SystemRescue ,then copy tow files into synology's filesystems;
 

Share this post


Link to post
Share on other sites

那边回完了才发现原来是同胞。。。

 

有效,而且替换完文件后即使不重启,过会儿也会恢复登陆(我用top看了一会儿,发现替换完文件后,过一会儿synoscgi会100%占用CPU,kill掉,然后就能正常登陆了,没init6)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now