【系统救援】mv /* /path-other 导致系统不可用

目录

问题 

解决

方法一

方法二

方法三

问题 

CentOS7、8:
root用户下,不小心执行了mv /* /opt/new-system/,导致系统无法使用/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
# mv /* /opt/new-system/
mv: cannot move ‘/boot’ to ‘/opt/new-system/boot’: Device or resource busy
mv: cannot move ‘/dev’ to ‘/opt/new-system/dev’: Device or resource busy
mv: cannot move ‘/home’ to ‘/opt/new-system/home’: Device or resource busy
mv: cannot move ‘/opt’ to a subdirectory of itself, ‘/opt/new-system/opt’
mv: cannot move ‘/proc’ to ‘/opt/new-system/proc’: Device or resource busy
mv: cannot move ‘/root’ to ‘/opt/new-system/root’: Device or resource busy
mv: cannot move ‘/run’ to ‘/opt/new-system/run’: Device or resource busy
mv: cannot move ‘/sys’ to ‘/opt/new-system/sys’: Device or resource busy
mv: cannot move ‘/usr’ to ‘/opt/new-system/usr’: Device or resource busy
# ./
etc/   media/ mnt/   srv/   tmp/   var/
其实还有/lib /lib64 /bin /sbin 等目录 ,上面粗字体是相对于CentOS6做的保护,6被删除的更多,见下面场景。
# ls
-bash: /usr/bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

CentOS6:
可见被mv的目录比CentOS7+多了好多,这也导致如果出现这种情况,如果已经重启系统,那么只能通过“新盘重装系统,再挂在旧盘”恢复数据。
# mv /* /opt/new-system/
mv: cannot move `/boot' to `/opt/new-system/boot': Device or resource busy
mv: cannot move `/dev' to `/opt/new-system/dev': Device or resource busy
mv: cannot move `/opt' to a subdirectory of itself, `/opt/new-system/opt'
mv: cannot move `/proc' to `/opt/new-system/proc': Device or resource busy
mv: cannot move `/selinux' to `/opt/new-system/selinux': Device or resource busy
mv: cannot move `/sys' to `/opt/new-system/sys': Device or resource busy
# ./
bin/        home/       lib64/      media/      root/       srv/        usr/        
etc/        lib/        lost+found/ mnt/        sbin/       tmp/        var/
# ls
-bash: /bin/ls: No such file or directory
# /opt/new-system/bin/ls
-bash: /opt/new-system/bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

解决

方法一

ld-linux-x86-64.so.2,CentOS7、8在/usr/lib64/ld-linux-x86-64.so.2下;CentOS6在/lib64/ld-linux-x86-64.so.2下
执行下面的命令即可恢复:
CentOS7、8:

/usr/lib64/ld-linux-x86-64.so.2 /usr/bin/mv /opt/new-system/* /

CentOS6:

export LD_LIBRARY_PATH=/opt/new-system/lib64/
/opt/new-system/lib64/ld-linux-x86-64.so.2 /opt/new-system/bin/mv /opt/new-system/* /

否则
# /opt/new-system/lib64/ld-linux-x86-64.so.2 /opt/new-system/bin/mv /opt/new-system/* / 
/opt/new-system/bin/mv: error while loading shared libraries: libselinux.so.1: cannot open shared object file: No such file or directory

方法二

如果出现如上问题后,系统被重启,可以使用本方法:不管物理机还是虚拟机,将旧盘拔出,插入新盘重装系统,然后启动系统,然后挂载旧盘,恢复数据。该方法具有局限性:编译安装的软件很难弄。

方法三

如果出现如上问题后,系统被重启,可以使用本方法:

首先要说明,CentOS6根本无法进入到单用户模式,通过安装光盘进入“救援模式”也找不到任何分区,也就是说/mnt/sysimage/下毛都么有;所以,无法通过挂载光盘进行救援,而CentOS7及以上支持在GRUB下进入“救援模式”(需修改为rw,默认是ro),在该模式下,可以将错误mv的系统目录恢复回去。所以本方法只限于CentOS7+

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值