操作场景

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

如何修复Linux实例中缺失的关键系统目录或文件?(图1)

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

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

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

    /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引导失败中方案三:重置系统盘进行修复。

来源:阿里云