美文网首页
Linux 故障处理-误将/目录移动到其他目录如何处理

Linux 故障处理-误将/目录移动到其他目录如何处理

作者: 月饮沙 | 来源:发表于2021-05-14 11:07 被阅读0次

故障原因

环境: CentOS Linux release 7.6.1810 (Core)
手残在移动文件时忘了加.,直接执行了mv /* /data/

故障现象

在执行命令的时候就发现移动错了

[root@localhost ~]# mv /* /data
mv: cannot move ‘/boot’ to ‘/data/boot’: Device or resource busy
mv: cannot move ‘/data’ to a subdirectory of itself, ‘/data/data’
mv: cannot move ‘/dev’ to ‘/data/dev’: Device or resource busy
mv: cannot move ‘/proc’ to ‘/data/proc’: Device or resource busy
mv: cannot move ‘/run’ to ‘/data/run’: Device or resource busy
mv: cannot move ‘/sys’ to ‘/data/sys’: Device or resource busy

然后大部分命令都没法使用了

#  ls mv cp等命令报错
[root@localhost data]# ls
-bash: /usr/bin/ls: No such file or directory
[root@localhost data]# df -h
bash: df: command not found

# 命令后按TAB键补全也会报错
[root@localhost data]# ls -bash: cannot create temp file for here-document: No such file or directory
-bash: cannot create temp file for here-document: No such file or directory

可以使用./ + TAB键查看当前目录文件

[root@localhost data]# ./
bin/       lib/       mnt/       mysql3306/ opt/       srv/       usr/       
etc/       lib64/     mysql/     mysql_80/  root/      tmp/       var/       
home/      media/     mysql2/    nfs/       sbin/      undolog/

其他可以使用的命令:cd/pwd/export

故障处理

最重要的一点是会话不要断开!如果断开没法重新连接了,机器就彻底挂掉了。

首先尝试恢复mv/cp/ls等命令

# 确认文件移动后的位置,通过绝对路径使用命令
[root@localhost data]# /data/bin/ls
-bash: /data/bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

这时又会出现一个报错,因为/lib64目录也被移动走了,并且暂时没法将目录移动回去,需要手动指定lib目录的位置

手动指定lib目录位置执行命令

# 恢复/lib目录
# 我这个环境是/lib64/ld-linux-x86-64.so.2
# 如果是其他版本的环境,也可能是在/lib/ld-linux.so.2
/data/lib64/ld-linux-x86-64.so.2 --library-path /data/lib64 /data/bin/cp -rfp /data/lib64 /lib64
/data/lib64/ld-linux-x86-64.so.2 --library-path /data/lib64 /data/bin/cp -rfp /data/lib /lib

# 由于在CentOS7中 lib实际是usr/lib的链接,还需要恢复/usr目录
# 这里空间不足了,使用了mv命令移动目录
# 注意移动的话目标位置是/,不要写成/usr
/data/lib64/ld-linux-x86-64.so.2 --library-path /data/lib64 /data/bin/mv /data/usr /

将其他目录移动回/目录

# 这里写的可能不全,实际目录可以使用ls查看
# 不确定具体内容的话可以到同版本的其他服务器上查看一下
cd /data
for i in bin boot etc lib media misc mnt opt tmp; do mv ./$i/ /; done

这样就恢复完成了,服务器可以登录,命令也可以正常使用了。

相关文章

  • Linux 故障处理-误将/目录移动到其他目录如何处理

    故障原因 环境: CentOS Linux release 7.6.1810 (Core)手残在移动文件时忘了加....

  • Linux 目录处理

    创建目录 mkdir 创建单个目录$ mkdir New_Dir$ ls -ld New_Dirdrwxrwxrw...

  • linux目录处理

    mkdir make directory创建目录命令如果需要同时创建多个目录,则使用-p选项 rm 删除命令 -r...

  • 线上故障处理书目录

    线上故障处理之故障信息获取源 线上故障处理之处理流程 线上故障处理之故障后处理

  • Linux目录处理命令

    目录处理命令:mkdir 英文原意:make directories命令所在路径:/bin/mkdir执行权限:所...

  • Linux目录处理命令

    以下内容摘自慕课网课程《Linux达人养成计划》,点击这里进入慕课网学习该课程 建立目录 假如你要在当前目录下建立...

  • Linux 文件基本属性

    处理目录的常用命令 接下来我们就来看几个常见的处理目录的命令吧: Linux 文件内容查看 Linux系统中使用以...

  • Linux之常用文件操作命令

    前言 继Linux命令基础 后.记录整理了Linux较为常用的处理文件目录的命令. 文件处理命令 Linux 下一...

  • Linux | 常用命令(一)

    整理了一下linux常用命令,方便大家使用和学习。 一.文件处理命令 1.命令格式与目录处理命令 2.目录处理命令...

  • 处理目录

    创建文件 mkdir New_Dir 同时创建多个目录和子目录 mkdir -p New_Dir/Sub_Dir/...

网友评论

      本文标题:Linux 故障处理-误将/目录移动到其他目录如何处理

      本文链接:https://www.haomeiwen.com/subject/updgdltx.html