mv根下目录的恢复

简介:

mv根下目录的恢复

转自网友在群里的共享,不记得哪位兄弟了。抱歉。

原文如下


一次错误mv /* /path/to 操作的恢复


描述:执行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 ,都已经正确恢复,重起系统,所有恢复完毕










本文转自 sharkyan 51CTO博客,原文链接:http://blog.51cto.com/sharkyan/771966,如需转载请自行联系原作者
目录
相关文章
|
6月前
cp 复制文件或目录
cp 复制文件或目录。
47 5
|
6月前
|
弹性计算 运维 Shell
备份文件和目录
【4月更文挑战第29天】
32 1
|
6月前
|
弹性计算 运维 Shell
|
6月前
|
弹性计算 运维 Shell
|
6月前
|
弹性计算 运维 Shell
删除某个目录下大小为0 的文件
【4月更文挑战第29天】
38 0
|
Linux 数据安全/隐私保护 知识图谱
6.2.2 复制、删除与移动: cp, rm, mv
6.2.2 复制、删除与移动: cp, rm, mv
114 0
|
Linux
3.17 Linux移动或重命名文件和目录(mv命令)
mv 命令(move 的缩写),既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。该命令的基本格式如下:
609 0
3.17 Linux移动或重命名文件和目录(mv命令)