如需在ECS Linux实例系统盘异常时进行自助修复,您可以使用OOS提供的一键修复功能。
前提条件
已创建RAM用户并赋予,AliyunOOSFullAccess、AliyunROSFullAccess、AliyunECSFullAccess和AliyunVPCFullAccess的权限。具体操作,请参见创建RAM用户、权限策略概览。
使用说明
使用场景
在某些情况下,Linux操作系统可能出现启动异常。此时,尽管阿里云ECS控制台显示实例状态为“运行中”,但实际上实例内的应用无法访问,且实例网络也不可达(无法ping通,也无法通过Workbench或SSH建立连接)。如果您通过VNC在阿里云ECS控制台连接到该实例,可能会看到以下错误提示之一:
unexpected inconsistency;RUN fsck MANUALLYGive root password for maintenance (or type CTRL-D to continue)Enter 'help' for a list of built-in commands. (initramfs)
造成上述问题的原因包括但不限于:
-
实例被强制关机或重启。
-
突然宕机导致文件系统数据不一致。
-
卸载了数据盘但未从/etc/fstab中删除相应的挂载信息。
-
/etc/fstab文件丢失或损坏。
-
initrd文件被损坏。
-
其他原因导致的文件系统损害。
解决方案概览
本文提供了一个一键修复的自动化方案,该方案采用了一个经过阿里云官方测试的OOS模板。模板流程如下:
-
对出现问题的实例进行镜像备份。
-
卸载问题实例的系统盘,并将其挂载至新创建的临时实例上。
-
在临时实例上执行检查与修复操作。
-
修复完成后,将系统盘重新挂载至原实例并尝试启动。
-
最后,释放临时实例。
支持的操作系统
-
CentOS 7.2 64位,7.3 64位, 7.4 64位,7.5 64位,7.6 64位,7.7 64位,8.0 64位。
-
Debian ,8.9 64位,8.11 64位,9.8 64位,9.9 64位,9.11 64位。
-
OpenSUSE 42.3 64位,15.1 64位。
-
SUSE Linux Enterprise Server 12 SP4 64位,12 SP2 64位。
-
Alibaba Cloud Linux 2.1903 64位。
-
Ubuntu 18.04 64位。
Linux启动失败的原因多样,本自救方案可能无法解决所有问题。修复过程会创建临时实例并产生小额费用(通常不足1元人民币)。我们将修改fstab和initrd文件,并在修改前自动备份实例。保留备份需付费,请参见快照计费。确认修复后,可删除备份以节省费用。
操作步骤
-
登录系统运维管理控制台。
-
单击,选择ACS-ECS-RescueUnreachableInstance-Linux。

-
单击创建执行。
-
单击下一步:设置参数,设置参数。

-
输入以下的参数。
-
unreachableInstanceId:必填,待修复系统盘的实例ID。
-
credentialType:必填,修复完系统盘后,将系统盘挂回原实例时将设置的认证凭证,可选择KeyPairName(密钥对)或Password(自定义密码)方式。
-
credentialValue:必填,认证凭证值,如选择了密钥对方式则输入密钥对名称;如选择了自定义密码方式,则输入密码。
-
imagePrefix:选填,在修复前对待修复实例打镜像,打镜像时设置的镜像名称前缀,默认为OOSRescueBackup-。
-
helperInstanceTypes:选填,将创建临时实例的规格,默认会从已输入的实例规格列表中选择一个单价最低的。
-
执行使用到的权限的来源:选择当前账号的已有权限。

-
-
单击下一步:确定。

您可在执行详情中查看OOS模板执行情况,通过执行输出的参数rtCommandOutput查看修复脚本执行情况。此执行过程大约需要5-10分钟,请耐心等待。如果执行成功,您的实例应当已被修复并处于正常运行状态。
挂载恢复(可选)
实现逻辑
修复/etc/fstab
-
检查/etc/fstab。如果/etc/fstab已经存在,则备份原文件。
-
修复/etc/fstab。当/etc/fstab不存在或者解析失败时,创建默认/etc/fstab。
-
当发现nofail没有设置时,设置nofail,防止启动失败。
-
当发现fsck选项打开时,将fsck选项关闭。
更新ramdisk
-
检查/boot里面的ramdisk,如果存在,则备份原文件。
-
重新构建ramdisk文件。