tencent cloud

文档反馈

Linux 实例使用 VNC 及救援模式排障

最后更新时间:2022-06-14 11:20:23

    通常情况下,多数 Linux 系统类问题可通过 VNC 方式及救援模式进行排查及修复。本文介绍如何使用这两种方式排查 Linux 实例无法 SSH 登录、系统失败问题。您可通过本文了解并在遇到实例问题时,进行排查及修复。

    排查工具

    • VNC 登录是通过 Web 浏览器远程连接云服务器的方式,一般在无法正常 SSH 远程登录实例时使用。使用 VNC 登录方式可直接观察云服务器状态,或进行修改系统内配置文件等操作。
    • 救援模式一般在 Linux 系统无法正常启动,或无法通过 VNC 登录时使用。常见使用场景例如 fstab 配置异常、系统关键文件缺失、lib 动态库文件损坏/缺失等。

    问题定位及处理

    VNC 方式排查 SSH 无法登录问题

    展开&收起

    现象描述

    使用 SSH 登录 Linux 实例时,出现报错信息 “ssh_exchange_identification: Connection closed by remote host”。如下图所示:

    可能原因

    kex_exchange_identification 阶段的 connection reset 报错,一般代表 ssh 相关进程已启动,但是配置可能存在异常,例如 sshd 配置文件权限被修改。

    解决思路

    参考 处理步骤,检查 sshd 进程,定位并解决问题。

    处理步骤

    1. 参考以下步骤,使用 VNC 登录 Linux 实例:
      1. 登录 云服务器控制台,找到需要登录的 Linux 云服务器,单击右侧的登录。如下图所示:
    2. 在打开的“标准登录 | Linux 实例”窗口,单击 VNC登录
    3. 在 “login” 后输入用户名,按 Enter,在 “Password” 后输入密码,按 Enter。如下图所示即为登录成功:
    4. 执行以下命令,查看 sshd 进程是否正常运行。
      ps -ef | grep sshd
      

      返回结果如下图所示,sshd 进程正常。
    5. 执行以下命令,查看报错原因。
      sshd -t
      

      返回类似如下图所示信息 “/var/empty/sshd must be owned by root and not group or world-writable.
      ”,可定位错误原因为 /var/empty/sshd/ 权限问题导致。

      您还可通过查看 /var/log/secure 日志中的报错信息来辅助排查。如下图所示:
    6. 执行以下命令,查看 /var/empty/sshd 目录权限。
      ll -d /var/empty/sshd/
      

      返回结果如下图所示,可知权限被修改为777。
    7. 执行以下命令,修改 /var/empty/sshd/ 文件权限。
      chmod 711 /var/empty/sshd/
      

      参考 使用 SSH 登录 Linux 实例 测试后,可正常远程登录实例。

    VNC 方式排查 Linux 系统启动失败问题

    展开&收起

    现象描述

    无法成功登录云服务器,且使用 VNC 方式登录后,查看系统启动失败且提示信息 “Welcome to emergency mode”。如下图所示:

    可能原因

    可能由于 /etc/fstab 配置不当导致。
    例如,已在 /etc/fstab 中配置使用设备名称自动挂载磁盘,但云服务器重启时设备名称发生改变,导致系统无法正常启动。

    解决思路

    参考 处理步骤 修复 /etc/fstab 配置文件,重启服务器后再进行核验。

    处理步骤

    1. 参考 处理步骤1,使用 VNC 登录 Linux 实例。
    2. 进入 VNC 界面后,查看到如 现象描述 中所示界面,请输入 root 帐户密码并按 Enter 登录服务器。输入的密码默认不显示,如下图所示:
    3. 进入系统后,执行以下命令,查看 fstab 文件中盘符信息是否正确。
      lsblk
      

      返回结果如下图所示,文件中盘符信息有误:
    4. 执行以下命令,备份 fstab 文件。
      cp /etc/fstab /home
      
    5. 执行以下命令,使用 VI 编辑器打开 /etc/fstab 文件。
      vi /etc/fstab
      
    6. i 进入编辑模式,将光标移动至错误配置行首,并输入 # 注释该行配置。如下图所示:
    7. 按 Esc 输入 :wq 后,按 Enter 保存设置并退出编辑器。
    8. 通过控制台重启实例,详情请参见 重启实例
    9. 在启动后验证是否可正常启动及登录

    救援模式排查 Linux 系统启动失败问题

    展开&收起

    现象描述

    Linux 系统重启之后无法正常启动,提示信息有诸多 FAILED 启动失败项。如下图所示:

    可能原因

    可能由于关键系统文件缺失导致启动失败,例如 bin 或 lib 文件缺失。

    解决思路

    参考 处理步骤,通过控制台进入实例救援模式,进行问题排查及修复。

    处理步骤

    1. 进入救援模式前,强烈建议您对实例进行备份,以防止由于出现误操作等造成的影响。云硬盘可通过 创建快照 备份,本地系统盘可通过 创建自定义镜像 镜像备份。
    2. 登录 云服务器控制台,在“实例”页面中,选择实例所在行右侧的更多 > 运维与检测 > 进入救援模式。如下图所示:
    3. 在弹出的“进入救援模式”窗口中,设置救援模式期间登录实例的密码。如下图所示:
    4. 单击进入救援模式,此时实例状态会变为“进入救援模式”。如下图所示,该过程一般会在几分钟内完成:

      正常进入救援模式后实例的状态会变为红色叹号的“救援模式”。如下图所示:
    5. 使用 root 帐户及 步骤3 中设置的密码,通过以下方式登录实例。
    1. 本文以 VNC 方式登录为例,登录成功后,依次执行以下命令挂载系统盘根分区。
      说明

      救援模式下实例系统盘设备名为 vda,根分区为 vda1,默认未挂载。


      mkdir -p /mnt/vm1
      

      mount /dev/vda1 /mnt/vm1
      

      执行完成后,返回结果如下图所示:
    2. 挂载成功后,即可操作原系统根分区中的数据。
      您也可使用 mount -o bind 命令,挂载原文件系统的一部分子目录,并通过 chroot 命令用来在指定的根目录下运行指令,具体操作命令如下:
      mount -o bind /dev /mnt/vm1/dev
      mount -o bind /dev/pts /mnt/vm1/dev/pts
      mount -o bind /proc /mnt/vm1/proc
      mount -o bind /run /mnt/vm1/run
      mount -o bind /sys /mnt/vm1/sys
      chroot /mnt/vm1 /bin/bash
      

      执行 chroot 命令时:
    • 若无报错信息,可继续执行 cd / 命令。
    • 若出现如下图所示报错信息,说明无法正常切换根目录,此时可执行 cd /mnt/vm1 查看根分区数据。
    1. 通过命令,可查看原系统根分区中 /usr/bin 目录下的所有文件被删除。如下图所示:
    2. 此时,可创建一台同操作系统的正常机器,并执行以下命令将正常系统 /usr/bin 目录下的文件压缩后远程拷贝至异常机器上。
    • 正常机器:依次执行以下命令
      cd /usr/bin/ && tar -zcvf bin.tar.gz *
      

      scp bin.tar.gz root@异常实例ip:/mnt/vm1/usr/bin/
      

      说明

      有公网 IP 可通过公网拷贝,无公网 IP 需通过内网拷贝。


      执行结果如下图所示:
    • 异常机器:在救援模式下依次执行以下命令
      cd /mnt/vm1/usr/bin/
      

      tar -zxvf bin.tar.gz
      

      chroot /mnt/vm1 /bin/bash
      

      执行结果如下图所示:
    1. 实例修复完成后,选择实例所在行右侧的更多 > 运维与检测 > 退出救援模式。如下图所示:
    2. 退出救援模式后实例处于关机状态,开机后进行系统验证。如下图所示,系统已恢复。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持