阿里云ECS Linux系统盘损伤自救方案

本文涉及的产品
系统运维管理,不限时长
简介: 实例被强制关机/强制重启后,Linux操作系统可能会出现启动异常。在上述情况下,您可以尝试使用本文的的自救方案,自行修复损伤的Linux实例。

适用的症状和原因

在某些情况下,Linux操作系统会出现启动异常,此时,在阿里云ECS控制台显示的实例状态可能是运行中,但实例内的应用不可访问,实例内的网络不可达,既无法ping通,也无法通过workbench或者ssh建立连接。如果您在阿里云ECS控制台通过vnc连接上去,可能会看到如下的错误提示:

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)

造成以上问题的原因包括但不限于:

  1. 实例被强制关机/强制重启,或者突然宕机并造成文件系统数据不一致。
  2. 卸载了数据盘,但未从/etc/fstab中删除对应的挂载信息。
  3. /etc/fstab文件丢失或损坏。
  4. initrd文件被损坏。
  5. 其他原因造成的文件系统损害。
    在上述情况下,您可以尝试使用本文的的自救方案,自行修复损伤的Linux实例。

自救方案概览

阿里云的运维编排服务OOS(https://www.aliyun.com/product/oos) ,是阿里云官方提供的免费的自动化运维平台,通过简单的YAML格式的模板,提供自动化任务的管理与执行。
本文的自救方案,包含了一个经过阿里云官方测试的OOS模板,从而提供了一键修复的自动化方案。具体使用办法参见后面的“使用步骤”。
此自救方案会先对问题实例打镜像备份,然后卸载问题实例的系统盘,挂载到一个新创建的临时实例上,执行检查和修复动作,在修复完成后,重新把系统盘挂载回原实例,并且尝试启动修复后的实例,最后,释放临时实例。
支持的操作系统

  • CentOS 7.2 64位,7.3 64位, 7.4 64位,7.5 64位,7.6 64位,7.7 64位,8.0 64位
  • Debian 9.6 64位,9.8 64位,9.9 64位,9.11 64位,8.9 64位,8.11 64位,
  • OpenSUSE 42.3 64位,15.1 64位
  • SUSE Linux Enterprise Server 12 SP4 64位, 12 SP2 64位。
  • Aliyun Linux 2.1903 64位
  • Ubuntu 16.04 64位,18.04 64位,

特别提示

• Linux系统启动失败的原因众多,此自救方案不能保证修复所有的系统启动失败的实例。
• 修复过程中,会创建临时实例并因此产生一定费用(一般小于1元RMB)。
• 此自救方案会修改系统的fstab和initrd文件,在修改之前,会自动对待修复实例打镜像备份,以方便您利用备份镜像恢复数据。保有镜像是收费的(参见快照的收费标准),在您确认实例修复成功之后,您可考虑删除镜像。

准备账号和权限

如果您使用主账号,可以跳过此节,直接查看使用步骤。
如果您使用RAM子账号或者角色,请确认该子账号或者角色拥有OOS、ROS、ECS、VPC的适当权限。有如下两种方式:
1,您可以给子账号或者角色授予系统权限: AliyunOOSFullAccess ,AliyunROSFullAccess , AliyunECSFullAccess , AliyunVPCFullAccess 的权限。详情参见RAM帮助文档https://help.aliyun.com/document_detail/93732.html
2,您也可以新建自定义策略,然后授权给子账户。参考的策略内容为
https://oos-debug.oss-cn-hangzhou.aliyuncs.com/rt_policy.json
操作步骤参见阿里云RAM的帮助文档
https://help.aliyun.com/document_detail/93733.html

使用步骤

  1. 首先登录到运维编排控制台 。选择问题实例所在的region地域。
  2. 单击我的模版>创建模版,并选取空白模版。
    Create.png
  3. 单击YAML,将ACS-ECS-RescueUnreachableInstance-Linux中模版内容粘贴到空白编辑栏,输入模版名称,单击创建模版。

Create2.png

  1. 在我的模版中,找到刚创建成功的模版,单击创建执行。
  2. 单击 下一步,设置参数 。
  3. 输入以下的参数。
    • unreachableInstanceId: 必填,待修复系统盘的实例ID。

• credentialType: 必填,修复完系统盘后,将系统盘挂回原实例时将设置的认证凭证,可选择KeyPairName(密钥对)或Password(自定义密码)方式。
• credentialValue: 必填,认证凭证值,如选择了密钥对方式则输入密钥对名称;如选择了自定义密码方式,则输入密码。
• imagePrefix: 选填,在修复前对待修复实例打镜像,打镜像时设置的镜像名称前缀,默认为OOSRescueBackup-。
• helperInstanceType: 选填,将创建临时实例的规格,默认为ecs.t5-lc1m2.large。
• 执行使用到的权限的来源:选择当前账号的已有权限。

Exe.png

  1. 单击 下一步,确认 ,单击 创建执行 。
  2. 您可在执行详情中查看OOS模版执行,可通过执行输出的参数rtCommandOutput查看修复脚本执行情况。
    此执行过程大约需要5-10分钟,请耐心等待。如果执行成功,您的实例应该已经被修复并且处于正常运行中了。

提醒

如果模版执行过程中被取消,或者模板执行中断,可能会造成实例的系统盘被卸载后没有挂载回去,此时,该实例状态会显示无系统盘,您可按如下步骤还原挂载,首先登录到ECS控制台,找到您修复的实例, 单击该实例的ID访问实例详情,单击本实例磁盘,单击挂载云盘,此时在页面上可以查看到源系统盘对应的ID,将此以d-bp为前缀的系统盘id复制并填写到目标光盘搜索栏中,尝试搜索该磁盘ID,根据搜索结果执行如下步骤。
• 若可以搜索到该ID,确认选择该磁盘ID, 登录凭证可选择 密钥对 或 自定义密码,该凭证将在您启动实例后通过root用户登录时使用。比如此处 登录凭证 选择的是自定义密码,则请在登录密码和确认密码中填写您要设置的密码,单击确定,单击执行挂载,若挂载成功则可以看到实例状态转变为已停止。
• 若无法搜索到该ID,返回查看刚刚创建的OOS执行,在untilStackReady任务中可找到输出参数helperInstanceId,复制对应参数值以i-为前缀的实例iD,然后在ECS控制台中搜索该实例id,找到后释放该临时实例,释放成功后,回到上述步骤:将以d-bp为前缀的系统盘id复制并填写到目标光盘搜索栏中,并按步骤继续挂载系统盘。

自救方案内部的实现逻辑

修复/etc/fstab

  1. 检查 /etc/fstab。如果/etc/fstab已经存在,则备份原文件。
  2. 修复/etc/fstab
    • 当/etc/fstab 不存在或者解析失败时,创建默认/etc/fstab。

• 当发现nofail没有设置时,设置nofail,防止启动失败。
• 当发现fsck选项打开时,将fsck选项关闭。

更新ramdisk

  • 检查/boot里面的ramdisk,如果存在,则备份原文件。
  • 重新构建 ramdisk 文件。
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
存储 运维 关系型数据库
Cloudreve 自建云盘实践,我说了没人能限得了我的容量和速度!
一、前言 二、Cloudreve 介绍 🔉 功能 ✨ 特性 📌 资料 三、环境准备 四、宝塔配置 1. 获取用户名和密码 2. 8888 端口授权 3. 登录宝塔后台 五、服务安装 1. 在宝塔终端查看服务内核 2. 下载和安装 3. 开放端口 5212 4. 登录服务 六、进程守护 1. Supervisor 配置 2. Supervisor 启动 七、配置域名 1. 解析域名 2. 反向代理 八、数据库切换 九、总结 十、系列推荐
2346 0
Cloudreve 自建云盘实践,我说了没人能限得了我的容量和速度!
|
弹性计算 Linux Windows
阿里云服务器更换操作系统操作流程及限制说明
阿里云服务器更换操作系统流程及Windows和Linux互换限制说明
1179 1
阿里云服务器更换操作系统操作流程及限制说明
|
弹性计算 Ubuntu Unix
阿里云服务器镜像系统怎么选?操作系统选择攻略
阿里云服务器操作系统分为Linux和Windows两大类,Linux可以选择Alibaba Cloud Linux,Windows可以选择Windows Server 2022 数据中心版 64位中文版
376 0
阿里云服务器镜像系统怎么选?操作系统选择攻略
|
弹性计算 运维 Linux
《ECS运维指南 之 Linux系统诊断》下载
本书以浅显易懂的案例带领您进入Linux 的世界,由浅入深,由表及里,层层推进,从运维工作的实际需求出发,全面讲解相关的技术、经典案例,以及常见问题的解决方案。本书语言通俗易懂,讲解风趣幽默,读来轻松自如,酣畅淋漓,每个知识点都结合具体实例进行讲解,尽可能避免枯燥乏味的理论解释,是学习Linux不可多得的一本好书。
87 0
《ECS运维指南 之 Linux系统诊断》下载
阿里云服务器怎么更换操作系统?
阿里云主机的操作系统可以按自己的要求去更改,可以是WINDOWS或是LINUX的操作系统,本文介绍阿里云ECS怎么更换系统盘操作系统的流程。购买前请先:领取阿里云幸运券,有很多优惠,下文中有领取链接。 购买建议多买几年,年数越多优惠越多。
15714 0
|
开发框架 固态存储 NoSQL
小白如何选择阿里云服务器地域、操作系统、硬盘、带宽等配置
本文主要讲述的是自定义购买过程中选择地域、操作系统、硬盘、带宽等配置的建议及注意事项,可供新手用户选购阿里云服务器时参考。
276 0
小白如何选择阿里云服务器地域、操作系统、硬盘、带宽等配置
|
弹性计算 Linux
关于ECS Linux系统查看系统网络占用的方法
1、可能查看某个进程的带宽占用需要明确知道PID、进程名字、发送速度、接收速度。 2、很遗憾,在Linux原生的软件中没有这样的一款,只能额外装,最符合以上的情况就只有nethogs。 3、nethogs可以指定网卡,但是不能指定PID,这就是一个缺陷。
226 1
|
开发框架 固态存储 NoSQL
新手用户如何选择阿里云服务器地域、操作系统、硬盘、带宽等配置
本文主要讲述的是自定义购买过程中选择地域、操作系统、硬盘、带宽等配置的建议及注意事项,可供新手用户选购阿里云服务器时参考。
279 0
新手用户如何选择阿里云服务器地域、操作系统、硬盘、带宽等配置
|
弹性计算 运维 Ubuntu
阿里云ECS Linux系统盘损伤自救方案
实例被强制关机/强制重启后,Linux操作系统可能会出现启动异常。在上述情况下,您可以尝试使用本文的的自救方案,自行修复损伤的Linux实例。
4855 0
阿里云ECS Linux系统盘损伤自救方案
|
安全 应用服务中间件 Linux
阿里云服务器使用Lighthouse搭建个人云盘
现在大家电脑里的文件越来越多,手机里的照片和视频也越拍越多,只把文件、照片和视频存在电脑和手机里,总有存不下的时候。同时各个终端的文件和照片也不能共享,互相查看也不方便,因此各种云盘应运而生。云盘很好地解决了文件存储和共享的问题,但是随着新浪微盘、360云盘等一系列云盘服务的关闭,剩余的云盘服务也越来越少。有些云盘虽然上传速度很快,但是下载速度又非常慢,不开通会员基本无法使用。网上还经常有云盘被破解,文件被盗的问题。因此为了文件存储、共享以及保证文件安全的问题,我们可以自行搭建云盘。
4737 0
下一篇
无影云桌面