阿里云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)

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

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

使用步骤

首先登录到运维编排控制台 。选择问题实例所在的region地域。
单击我的模版>创建模版,并选取空白模版。
Create

单击YAML,将ACS-ECS-RescueUnreachableInstance-Linux中模版内容粘贴到空白编辑栏,输入模版名称,单击创建模版。
Create2

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

Exe

单击 下一步,确认 ,单击 创建执行 。
您可在执行详情中查看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

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

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

更新ramdisk

  • 检查/boot里面的ramdisk,如果存在,则备份原文件。
  • 重新构建 ramdisk 文件。
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
26天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
24天前
|
编解码 前端开发 安全
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
在我们选购阿里云服务器的过程中,不管是新用户还是老用户通常都是通过阿里云的活动去买了,一是价格更加实惠,二是活动中的云服务器配置比较丰富,足可以满足大部分用户的需求,但是面对琳琅满目的云服务器实例、带宽和云盘选项,如何选择更适合自己,成为许多用户比较关注的问题。本文将介绍如何在阿里云的活动中选择合适的云服务器实例、带宽和云盘,以供参考和选择。
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
|
22天前
|
弹性计算 运维 安全
阿里云轻量应用服务器和经济型e实例区别及选择参考
目前在阿里云的活动中,轻量应用服务器2核2G3M带宽价格为82元1年,2核2G3M带宽的经济型e实例云服务器价格99元1年,对于云服务器配置和性能要求不是很高的阿里云用户来说,这两款服务器配置和价格都差不多,阿里云轻量应用服务器和ECS云服务器让用户二选一,很多用户不清楚如何选择,本文来说说轻量应用服务器和经济型e实例的区别及选择参考。
阿里云轻量应用服务器和经济型e实例区别及选择参考
|
23天前
|
机器学习/深度学习 存储 人工智能
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
阿里云的GPU云服务器产品线在深度学习、科学计算、图形渲染等多个领域展现出强大的计算能力和广泛的应用价值。本文将详细介绍阿里云GPU云服务器中的gn6v、gn7i、gn6i三个实例规格族的性能特点、区别及选择参考,帮助用户根据自身需求选择合适的GPU云服务器实例。
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
|
16天前
|
弹性计算 人工智能 安全
阿里云推出第九代ECS实例,最高提升30%性能
阿里云推出第九代ECS实例,最高提升30%性能
123 14
|
1月前
|
存储 弹性计算 运维
阿里云日常运维-购买服务器
这篇文章是关于如何在阿里云购买和配置云服务器ECS的教程。
62 6
阿里云日常运维-购买服务器
|
25天前
|
弹性计算
阿里云美国服务器需要备案吗?必看!
阿里云美国服务器无需ICP备案,适用于希望避开备案流程的用户。不同于中国大陆地区服务器,美国服务器及中国香港服务器均无需备案。用户可直接解析域名使用。阿里云提供美国云服务器ECS与轻量应用服务器两种选择,分别满足不同需求
86 9
|
17天前
|
人工智能 运维 Cloud Native
专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来
AI智算时代,服务器操作系统面临的挑战与机遇有哪些?
专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来
|
27天前
|
网络安全 开发工具 云计算
服务器看代码阿里云
随着云计算技术的发展,阿里云作为国内领先的云计算服务提供商,其服务器受到广大用户青睐。本文主要介绍如何在阿里云服务器上便捷地查看与管理代码,如使用SSH连接服务器并通过命令行工具打开文件,以及利用Git进行版本控制和协作开发,提高代码管理效率。无论个人开发者还是企业团队,都能借助阿里云服务器高效地部署与管理应用程序,提升工作效率及产品质量。
47 10
|
24天前
|
存储 数据挖掘 Linux
服务器数据恢复—Linux操作系统网站服务器数据恢复案例
服务器数据恢复环境: 一台linux操作系统服务器上跑了几十个网站,服务器上只有一块SATA硬盘。 服务器故障: 服务器突然宕机,尝试再次启动失败。将硬盘拆下检测,发现存在坏扇区
下一篇
无影云桌面