206
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
如何修复Linux实例中缺失的关键系统目录或文件?-阿里云服务器ECS使用教程

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>

4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 

5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>>   


点击这里点击这里进入阿里云ECS官方页面,立即免费体验云服务器ECS>>>

操作场景

当实例重启后无法启动,或者部分系统服务异常(比如SSH服务、云助手等),可能是由于关键系统目录或者文件缺失导致的。您可以尝试修复缺失的关键系统目录或文件来解决上述问题。例如,bash文件缺失时,无法运行bash命令。

image

可能缺失的关键系统目录或文件

该问题可能是由于误删除或者恶意操作导致关键系统目录或者关键系统文件缺失。

  • 可能缺失的关键系统目录

     
    /boot
    /dev
    /etc
    /etc/systemd
    /proc
    /root
    /sys
    /usr
    /usr/bin
    /usr/sbin
    /var/lib/systemd/system
    /bin
    /lib
    /lib64
    /sbin
  • 可能缺失的关键系统文件:

     
    /boot/grub/grub.cfg     /boot/grub2/grub.cfg/etc/group
    /etc/passwd
    /etc/shadow
    /usr/bin/bash    /bin/bash
    /usr/sbin/sshd  /sbin/sshd
    /bin/systemctl  /lib/systemd/systemd

修复缺失的关键系统目录或文件

您可以通过实例问题排查,查看具体缺失的关键目录和文件,选择对应的修复方式。

  • 当缺失文件较少,可以确定哪些文件缺失时,建议使用方式一:通过scp命令拷贝关键系统文件进行修复或方式二:通过挂载系统盘方式进行修复。

  • 当缺失文件较多,无法确定哪些文件缺失时,建议使用方式三:通过快照回滚或重置系统盘修复。

方式一:通过scp命令拷贝关键系统文件进行修复

SSH可用时,使用scp命令将正常的ECS实例中关键系统文件拷贝到当前缺失文件的ECS实例。

 
scp <关键系统文件名> root@192.168.XXX.XXX:/<关键系统目录>

例如将ata_id文件拷贝到当前ECS实例的root目录下。

 
scp ata_id root@192.168.XXX.XXX:/root

方式二:通过挂载系统盘方式进行修复

您可以根据业务需要,使用挂载系统盘的方式将关键系统文件拷贝到当前异常实例中。

  1. 卸载异常的ECS实例的系统盘,并将该云盘作为数据盘挂载到正常的ECS实例中。

    具体操作,请参见如何恢复系统盘数据?中步骤一:创建快照~步骤四:进行对应的操作。

  2. 将缺失文件从正常ECS实例中拷贝到异常ECS系统盘中。

  3. 恢复异常的ECS实例的系统盘。

    具体操作,请参见步骤五:恢复A实例的系统盘。

  4. 远程连接异常实例,查看缺失文件是否恢复正常。

方式三:通过快照回滚或重置系统盘修复

  • 已创建快照,可以使用快照回滚云盘,具体操作,请参见使用快照回滚云盘。

  • 未创建快照,请参见1662001143:Linux系统GRUB引导失败中方案三:重置系统盘进行修复。

示例:重启CentOS 7系统的ECS实例后,无法使用SSH远程连接实例,使用VNC远程连接实例提示Login incorrect错误该如何处理?

问题现象

重启CentOS 7系统的ECS实例后,无法使用SSH远程连接实例,使用VNC远程连接ECS实例提示Login incorrect错误,重置密码后再使用VNC远程连接依旧提示Login incorrect错误。

Login incorrect

通过VNC无法远程连接诊断后提示该实例的操作系统缺少Shell运行环境,导致云助手无法继续执行本诊断工具的诊断脚本

问题原因

ECS实例操作系统内部的/bin/bash/bin/sh文件或软链被删除,导致无法远程连接ECS实例。

解决方案

  1. 卸载异常的ECS实例的系统盘,并将该云盘作为数据盘挂载到正常的ECS实例中。

    具体操作,请参见如何恢复系统盘数据?中步骤一:创建快照~步骤四:进行对应的操作。

    重要

    若您已经发起实例操作系统无法启动诊断,并且实例已经处于运行中修复中状态时,说明实例已经被挂载了修复盘,请直接执行步骤四:进行对应的操作

    在执行步骤四:进行对应的操作中,可能会出现以下问题。

    • 执行chroot /mnt命令失败,提示chroot:failed to run command /bin/bash:No such file or directory错误,说明系统盘的Bash环境已经被破坏。

      chroot失败
    • 执行cat /var/log/message可以看到类似failed to execute 'bin/sh'错误信息,说明实例内部可能缺失/bin/sh/bin/bash

      failed to execute/bin/sh
  2. /bin/bash/bin/sh文件从正常ECS实例中拷贝到异常ECS系统盘中。

  3. 恢复异常的ECS实例的系统盘。

    具体操作,请参见步骤五:恢复A实例的系统盘。

  4. 远程连接异常实例,查看缺失文件是否恢复正常。

重要

若通过挂载系统盘的方式仍无法修复,在您的系统盘内没有重要数据的情况下,您可以通过方式三:通过快照回滚或重置系统盘修复进行修复。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!