如需在ECS Linux实例系统盘异常时进行自助修复,您可以使用OOS提供的一键修复功能。
前提条件
已创建RAM用户并赋予,AliyunOOSFullAccess、AliyunROSFullAccess、AliyunECSFullAccess和AliyunVPCFullAccess的权限。具体操作,请参见创建RAM用户、权限策略概览。
使用说明
使用场景
在某些情况下,Linux操作系统可能出现启动异常。此时,尽管阿里云ECS控制台显示实例状态为“运行中”,但实际上实例内的应用无法访问,且实例网络也不可达(无法ping通,也无法通过Workbench或SSH建立连接)。如果您通过VNC在阿里云ECS控制台连接到该实例,可能会看到以下错误提示之一:
unexpected inconsistency;RUN fsck MANUALLY
Give 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文件。