【Linux】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 ,都已经正确恢复,重起系统,所有恢复完毕

转自 http://blog.51cto.com/sharkyan/771966

原文地址:https://www.cnblogs.com/promise-x/p/8761781.html

时间: 2024-10-15 19:11:24

【Linux】mv根目录的恢复(转)的相关文章

linux—【linux系统根目录各个子目录作用】 (2)

[linux系统根目录各个子目录作用] /   根目录 /bin  系统执行命令的对应文件都在这个目录 /sbin  系统超级管理员执行命令的文件都在这个目录 /dev   device设备  cpu.memory内存.disk硬盘, linux系统里边一切东西都使用文件来表示 /dev/cdrom  光驱 /dev/disk    硬盘 /dev/sda     主分区 /dev/mem   内存 /home  用户“家目录”,我们给系统创建的每个普通用户, 这个普通用户都会有一个家目录可供操

LINUX扩展根目录磁盘空间(LINUX LVM )

linux扩展根目录磁盘空间(linux lvm ) 扩展目标分区前提: 扩展的分区必须要是linux lvm卷如下截图(分区/dev/sda1不可以扩展,分区/dev/sda2可以扩展) 提示:决定linux lvm的因素是磁盘第一次分区时候选择的分区格式决定的.如下图列出了linux下支持的分区格式 SSH Secure Shell 3.2.9 (Build 283) Copyright (c) 2000-2003 SSH Communications Security Corp - htt

Linux -- 服务器数据备份恢复策略

一.Linux 备份恢复基础 1.什么是备份 最简单的讲,备份数据的过程就是拷贝重要的数据到其他的介质之上(通常是可移动的),以保证在原始数据丢失的情况下可以恢复数据.一次备份可能是简单的 cp命令,将一个文件复制到其他目录下,也可能是使用特定的程序将数据流写进一个特定的设备中的复杂过程.很多情况下是将要备份的数据写入到磁带机中,但有些情况也不是这样的.在Linux环境下,或其他Unix系统,备份可以是将文件拷贝到已存在的文件系统,可替换的文件系统,磁带机,远程文件系统,甚至是远程系统的上的磁带

在linux下使用debugfs恢复rm删除的文件

在linux下使用debugfs恢复rm删除的文件?? 以下方法在ext3的文件系统上测试通过, 以下是通过root来实现的?主要借助debugfs fdisk /dev/vdamkdir /mnt/testmount /dev/vda3 /mnt/test1 运行debugfs,进入调度模式[[email protected] test]# debugfs -w /dev/vda3/////////////////////////[[email protected] test]#sudo de

linux删除/根目录的恢复

原因今天公司里服务器硬盘报警,df查看了下,发现根目录已经>90%.像往常一样,我切换到/var/log目录下,对maillog文件进行打包备份,迁移备份数据删除老数据.在删除/tmp目录下垃圾文件时,操作失误:rm -rf ../*,我瞬间反应过来,赶紧ctrl + c!但还是晚一步,导致/目录下文件丢失. ##下面是我的操作 df -h cd /var/log tar zcf maillog.180409.tgz maillog echo > maillog mv maillog.1804

linux 系统备份和恢复

转自:http://blog.csdn.net/sunnylgz/article/details/8055315 在 使用Ubuntu之前,相信很多人都有过使用Windows系统的经历.如果你备份过Windows系统,那么你一定记忆犹新:首先需要找到一个备份工 具(通常都是私有软件),然后重启电脑进入备份工具提供的软件环境,在这里备份或者恢复Windows系统.Norton Ghost是备份Windows系统时经常使用的备份工具. 在备份Windows系统的时候你可能想过,我能不能把整个C盘都放

linux 意外删除与恢复

vi rm.sh #! /bin/bash   ##linux删除 huishou=~/.temp   (($#==0)) && { echo "No paraments!";exit 1; }     if [ ! -d $huishou ]; then       mkdir $huishou   fi    for i in $*   do       if test -e $i           then               cd $(dirname 

linux extundelete 删除文件恢复

extundelete是基于Linux的一个数据恢复工具,它通过分析文件系统的日志,解析出所有文件的inode信息,从而可以恢复Linux下主流的ext3,ext4文件系统下被误删除的文件. [问题案例]最近看到群里提到如何恢复LINUX下ext4误删的文件,之前听说过ext3分区恢复工具ext3grep,但是恢复ext4一直没有概念,而且目前线上的系统分区格式都是ext4,SO网上找到了一款叫extundelete的文件恢复工具,该工具最给力的一点就是支持ext3/ext4双格式分区恢复,对我

Linux中利用extundelete恢复误删除的数据

利用extundelete工具恢复磁盘误删除的数据 原理: 简单介绍下关于inode的知识.在Linux下可以通过"ls -id"命令来查看某个文件或者目录的inode值,例如查看根目录的inode值,可以输入: [[email protected] Server-100 shell]# ls -id / 2 / 在利用extundelete恢复文件时并不依赖特定文件格式,首先extundelete会通过文件系统的inode信息(根目录的inode一般为2) 来获得当前文件系统下所有文