歡迎您光臨本站 註冊首頁

一次錯誤mv /* /path/to 操作的恢復

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

一次錯誤mv /* /path/to 操作的恢復

 
 mv 和rm命令一樣危險,比如mv /* /path/to ,如果你執行了這個命令,那一定不要關閉ssh的登陸窗口,我們還有補救機會.
 
 描述:執行mv命令的時候沒有注意路徑,結果把根目錄下的大部分目錄都挪到了一個新路徑中,然後立即
 出錯命令不能繼續,因為 /lib已經被挪走了,/lib下保存有最基本的系統運行庫,現代的linux系統大多
 數命令已經動態連接了,當/lib路徑改變的時候,那你能用來創建目錄,或用來copy文件的任何命令,都
 不好用了,都會報下面錯誤:
 /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
 這表示已經找不到ld-linux.so.2這個文件了
 
 
 由於文件都已經被挪走了,我們平時依賴的工具都不好用了。即使你敲入絕對路徑,也會提示:
 /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory這個錯誤
 嘗試了下面的命令
 /www/users/abcdefg.net/{ls,ln,mkdir,mktemp,ftp,rsync,mv,cp,rm,ldconfig,scp,sftp,perl,ash,zsh,csh} 報的都是上面的錯誤,
 常規的創建文件,創建目錄和目錄文件轉移操作,及遠程或本地複製文件操作都無法進行了。
 再嘗試找下好用的命令:
 cd export declare echo > 這些內置命令都是好用的。
 
 我們看下現場,由於ls已經不好用了。那隻好用bash的自動補齊功能(TAB鍵)來看看有哪些目錄和文件
 首先檢查哪些目錄被挪走了,執行下面命令:
 /www/users/abcdefg.net [按TAB]
 輸出如下:
 backup  bin  boot  dev  ecshop etc  home  lib  lost+found  media  misc  mnt  opt  proc www_logs ucenter
 可以看出 bin和lib都已經被挪過來了,那我們既不能直接執行bin下的程序,也不能執行任何依賴/lib下的程序,而且etc也被mv到這裡來
 所以我們連修改ld.so.conf並生成新的ld.so.cache的機會也沒有,因為我們無法執行創建/etc目錄的命令。
 
 
 開始恢復吧
 過程不複雜,我們還有ld-linux.so.2 可用,雖然它已經變了位置。
 ld-linux.so.2是linux系統的動態連接器,我們可以用他來執行命令,我們使用它的--library-path參數來重新指定LD_LIBRARY_PATH的位置
 
 再看看根目錄還有啥
 /www/users/abcdefg.net/lib/ld-linux.so.2 --library-path /www/users/abcdefg.net/lib /www/users/abcdefg.net/bin/ls / -F
 輸出正常,
 
 恢復/lib
 /www/users/abcdefg.net/lib/ld-linux.so.2 --library-path /www/users/abcdefg.net/lib /www/users/abcdefg.net/bin/cp -rfp /www/users/abcdefg.net/lib /lib
 
 恢復/bin
 /www/users/abcdefg.net/lib/ld-linux.so.2 --library-path /www/users/abcdefg.net/lib /www/users/abcdefg.net/bin/cp -rfp /www/users/abcdefg.net/bin /bin
 
 恢復其他目錄
 cd /www/users/abcdefg.net
 for i in bin boot etc lib media misc mnt opt ; do rsync -av --progress ./$i/ /$i/; done
 
 然後我們再還原dev目錄
 cd dev
 cp -dRp * /dev
 
 重新檢查ssh登陸,此時已經能登陸系統了,仔細檢查/boot /etc ,都已經正確恢復,重起系統,所有恢復完畢


[火星人 ] 一次錯誤mv /* /path/to 操作的恢復已經有206次圍觀

http://coctec.com/docs/service/show-post-28029.html