有奖征文:轻量对象存储LighthouseCOS用户实践> HOT

操作场景

在使用云服务器操作系统的过程中,若引发机器 grub 引导文件丢失、系统关键文件缺失、lib 动态库文件损坏/缺失等问题时,可能会导致操作系统无法进入单用户模式并完成修复,此时需使用云服务器救援模式来进行系统修复。本文介绍如何通过云服务器控制台,使用救援模式。

操作步骤

进入救援模式

注意
进入救援模式前,强烈建议您对实例进行备份,以防止由于出现误操作等造成的影响。云硬盘可通过 创建快照 备份,本地系统盘可通过 创建自定义镜像 备份。
2. 在实例管理页面中,根据实际使用的视图模式进行操作:
列表模式
页签模式
选择实例所在行右侧的更多 > 运维与检测 > 进入救援模式。如下图所示:

选择实例所在页签,并选择右上方的更多操作 > 运维与检测 > 进入救援模式。如下图所示:


3. 在弹出的
进入救援模式
窗口中,设置救援模式期间登录实例的密码。如下图所示:
注意
目前救援模式仅支持 Linux 实例,不支持 Windows 实例。如您操作 Windows 实例进入救援模式,则会默认进入 Linux 救援模式(CentOS 7.5 64位)下。
救援模式下实例用户名默认为 root
进入救援模式需要在关机状态下操作。如需关机请参见 关机实例 进行操作,避免强制关机可能导致的数据丢失或文件系统损坏,建议在主动关机后进行操作。



4. 单击进入救援模式
此时可查看实例正在进入救援模式,当查看实例状态如下图所示,则说明已成功进入救援模式,请参考下一步尽快修复实例。




使用救援模式进行系统修复

1. 使用 root 账户及 步骤3 中设置的密码,通过以下方式登录实例。
若实例有公网 IP,则请参见 使用 SSH 登录 Linux 实例
若实例无公网 IP,则请参见 使用 VNC 登录 Linux 实例
2. 登录成功后,逐步执行以下命令挂载系统盘根分区。
CentOS
Ubuntu
救援模式下实例系统盘设备名为 vda,根分区为 vda1,默认未挂载。
mkdir -p /mnt/vm1
mount /dev/vda1 /mnt/vm1
挂载成功后,您即可操作根分区中的数据。您也可使用 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
救援模式下实例系统盘设备名为 vda,根分区为 vda2,默认未挂载。
mkdir -p /mnt/vm1
mount /dev/vda2 /mnt/vm1
挂载成功后,您即可操作根分区中的数据。您也可使用 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

退出救援模式

1. 实例修复完成后,根据实际使用的视图模式通过以下步骤退出救援模式:
列表模式
页签模式
选择实例所在行右侧的更多 > 运维与检测 > 退出救援模式。如下图所示:

选择实例所在页签,并选择右上方的更多操作 > 运维与检测 > 退出救援模式。如下图所示:

2. 实例退出救援模式后,会保持为进入救援模式之前的状态(例如:进入前为运行中,退出后仍为运行中)。