文档章节

mv 根目录的恢复

SimonAt
 SimonAt
发布于 2018/04/11 12:11
字数 898
阅读 55
收藏 0

转自:http://blog.itpub.net/30130773/viewspace-2125973/

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

(注:这里有个坑,确保磁盘够,我们执行了一半磁盘不够,ssh 被T出来进不去了,这个坑就是 .jenkins 太大!后来发现不是 .jenkins 太大 是 我mv 到 /opt 目录下,同步的时候得把 opt目录去掉!重启后ssh不上,用显示器直接接上的,ok! dev 目录貌似不用还原,应该是因为我们重启了,不对是mv误操作的时候 dev 因为正在使用,所以没mv)

然后我们再还原dev目录

cd dev

cp -dRp * /dev

 

重新检查ssh登陆,此时已经能登陆系统了,仔细检查/boot /etc ,都已经正确恢复,重起系统,所有恢复完毕

本文转载自:http://blog.itpub.net/30130773/viewspace-2125973/

SimonAt
粉丝 7
博文 75
码字总数 14253
作品 0
苏州
程序员
私信 提问
ln -s 软链接应用-磁盘空间不够用的解决方案

一台云服务器根磁盘空间报警,原因是用户家目录存放了大量文件,导致根目录磁盘空间使用率达81%,收到报警短信一会儿恢复一会儿warning,很烦人。同事让把HOME目录拷贝到DATA目录做个软链接处...

邓美男1989
2017/11/10
0
0
你比别人更加厉害之处在于你了解如何修复Linux系统

本文通过一系列的实验进行linux系统的修复 实验1:将/boot下清空,并且将/etc/fstab文件进行删除;然后重启进行恢复; 实验2:在用grub-install将/boot/grub/中的文件修复后再次进行保留grub....

qq59b54138c2c0b
2018/01/01
0
0
Linux下常用的数据恢复工具

一。数据删除 命令:rm -rf,将任何数据直接从硬盘删除,且没有任何提示 建议做法: 把命令参数放到后面:rm -rfi 将删除的东西通过mv命令移动到系统下的/temp目录下,然后写个脚 本定期执行清...

老胡2015
2018/06/26
0
0
小蚂蚁学习Linux(3)——Linux一级目录说明和常用命令解释

根目录下的一级目录解释说明: /etc 配置文件目录 /home 普通用户家目录 /bin 命令保存目录 /lib 系统库保存目录 /boot 启动目录,启动相关文件 /mnt 系统挂载目录 /dev 设备文件保存目录 /m...

嗜学如命的小蚂蚁
2015/10/29
119
0
Linux基础命令、快捷键、命令操作

Linux基础操作、快捷键、命令 Linux命令的执行过程 命令----shell(命令解释器)-----内核(kernel); 根据命令是否是shell的一部分,将命令分为内部命令和外部命令;内部是shell的一部分,...

爬塔wang
2017/08/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka实战(五) - 核心API及适用场景全面解析

1 四个核心API ● Producer API 允许一个应用程序发布一串流式的数据到一个或者多个Kafka topic。 ● Consumer API 允许一个应用程序订阅一个或多个topic ,并且对发布给他们的流式数据进行处...

JavaEdge
今天
11
0
实现线程的第三种方式——Callable & Future

Callable Runnable 封装一个异步运行的任务, 可以把它想象成为一个没有参数和返回值的异步方 法。Callable 与 Runnable 类似, 但是有返回值。Callable 接口是一个参数化的类型, 只有一 个...

ytuan996
今天
11
0
OSChina 周六乱弹 —— 不要摁F了!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 : 朴树写的词曲都给人一种莫名的失落感,不过这首歌他自己却没有唱,换成赵传这种高音阶嘶喊的确很好,低沉但却有力,老男人的呐喊...

小小编辑
今天
20
0
Android Binder机制 - interface_cast和asBinder讲解

研究Android底层代码时,尤其是Binder跨进程通信时,经常会发现interface_cast和asBinder,很容易被这两个函数绕晕,下面来讲解一下: interface_cast 下面根据下述ICameraClient例子进行分析...

天王盖地虎626
昨天
13
0
计算机实现原理专题--存储器的实现(二)

计算机实现原理专题--存储器的实现(一)中描述了一种可以记住输入端变化的装置。现需要对其功能进行扩充,我们将上面的开关定义为置位,下面的开关定义为复位,然后需要增加一个保持位,当保...

FAT_mt
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部