ECS故障排除与恢复
因误操作导致ECS实例中/etc/fstab
文件配置错误,从而导致ECS实例重启后无法正常启动时如何进行修复。
场景简介
本实验将基于一台配置了Alibaba Cloud Linux 3操作系统的ECS实例(云服务器),模拟误操作导致ECS实例中/etc/fstab
文件配置错误,从而导致ECS实例重启后无法正常启动时如何进行修复。
费用说明
本实验时长2个小时,预计产生费用为0.86元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
背景知识
本场景主要涉及以下云产品和服务:
创建实验资源
在实验页面,勾选我已阅读并同意《阿里云云起实践平台服务协议》和我已授权阿里云云起实践平台创建、读取及释放实操相关资源后,单击开始实操。
创建资源需要5分钟左右的时间,请您耐心等待。
在云产品资源列表,您可以查看本场景涉及的云产品资源信息。
安全设置
资源创建完成后,为了保护您阿里云主账号上资源的安全,请您重置云服务器ECS的登录密码。
重置云服务器ECS的登录密码。
在云产品资源列表的ECS云服务器区域,单击管理。
在实例详情页签的基本信息区域,单击重置密码。
在重置实例密码对话框中,设置新密码和确认密码,重置密码的方式选择在线重置密码,配置SSH密码登录策略选择开启,单击确认修改。
返回如下结果,表示ECS实例root用户的登录密码重置成功。
远程登录ECS并模拟故障
远程登录ECS实例。
在实例详情页签,单击远程连接。
在远程连接对话框中,单击通过Workbench远程连接中的立即登录。
在登录实例对话框中,输入重置后的root用户密码,单击确定。
返回如下页面,表示已成功远程登录ECS实例。
创建快照。
在模拟故障前,需要对ECS实例的云盘进行快照。
切换至云服务器ECS管理控制台页签。在实例详情页签,单击块存储。
在块存储页签,找到目标云盘,单击其右侧操作列下的创建快照。
在创建快照对话框的开通快照中,单击开通并进行下一步。
说明若您已开通过快照,则不会出现开通快照提示,请跳过此步骤。
在创建快照对话框中,快照名称填写为快照1,保留时间选择保留1天,未提及的配置保持默认即可,单击确认。
在块存储页签,单击快照。
在快照页签,当创建的快照的进度为可用时,表示快照创建成功。
模拟/etc/fstab配置错误。
切换至ECS终端页面。执行以下命令,编辑
/etc/fstab
文件。vim /etc/fstab
按
i
进入编辑模式,在文件末尾添加如下内容。/dev/sda99 /opt ext4 defaults,noatime 0 2
按
Esc
键退出编辑模式,输入:wq
并回车,保存并退出文件。执行以下命令,重启ECS实例。
reboot
查看ECS实例状态。
在云产品资源列表的ECS云服务器区域,单击管理。
在实例详情页签,可以看到ECS实例状态处于运行中,但是提示操作系统运行存在异常,然后单击远程连接。
说明提示操作系统运行存在异常信息会有延迟,请耐心等待1~2分钟,重新打开实例详情页签即可查看到相关信息。
弹出建立远程连接失败的对话框。这时可以看到模拟误操作后,ECS实例重启后无法正常连接。
通过VNC登录实例。
在实例详情页签,单击远程连接。
在远程连接对话框中,单击展开其他登录方式,然后单击通过VNC远程连接中的立即登录。
登录后会发现ECS实例的操作系统无响应,说明因fstab内挂载信息记录错误,导致无法正常启动进入系统界面。
/etc/fstab故障排查
对ECS实例进行关机,通过自助问题排查,发起实例健康诊断
切换至云服务器ECS控制台页签。在实例详情页签,单击停止。
在停止实例对话框中,保持默认配置,单击确定。
停止实例大概需要5~10分钟左右,请耐心等待实例状态变为已停止。
在实例详情页签,单击健康诊断。
在健康诊断页签,单击开始诊断。
在实例问题排查页签,单击实例无法连接或启动异常问题类型,选择实例的操作系统无法正常启动,且实例状态已停止,选择目标实例ID并保持默认时间范围,然后单击开始排查。
说明您可在左侧云产品资源列表中查看目标ECS实例的实例ID。
诊断完成后,查看诊断结果的异常,以及实例的状态,并根据诊断结果提示使用修复盘的用户名和密码登录实例,进行故障修复。
说明请记录下修复盘的用户名和密码,后续进行故障修复时需要使用。
故障修复
第一种恢复方法参考:根据诊断结果提示进行修复。
在左侧导航栏中,选择
。在实例页面,可以查看到诊断完成后,实例处于运行中、修复中状态,然后单击其右侧操作列下的远程连接。
在远程连接对话框中,单击通过VNC远程连接中的立即登录。
在VNC连接页面,输入从诊断结果中获取的用户名和密码,登录实例。
说明在使用修复盘修复系统前,需知道登录名和密码。修复盘系统只能使用本次诊断工具提供的用户名(通常为root)和密码登录,该用户名和密码需要从诊断报告中查看。
输入密码时可以使用VNC连接页面的复制命令输入功能,将密码复制后粘贴进去。然后回车确定。
返回如下页面,表示实例登录成功,就可以开始进行故障修复。
查看问题实例原有系统盘的挂载信息。
在临时挂载的修复盘中,问题实例原有系统盘的文件系统会被挂载到某一临时目录下。执行以下命令,查看原有系统盘所在的临时目录信息。
mount | grep /dev/vda
返回如下结果,可以查看到临时目录格式示例
为/tmp/ecs-offline-diagnose_disk-xxxxx
,其中xxxxx
为实例原有系统盘的云盘序列号。依次执行以下命令,将修复盘内的虚拟文件系统
/dev
、/proc
和/sys
挂载到chroot环境中的根目录。挂载虚拟文件系统的作用为确保后续操作中blkid命令能够正常读取文件系统信息。说明您需要将命令中临时目录
/tmp/ecs-offline-diagnose_disk-xxxxx
修改为实际获取的临时目录,其中xxxxx
为原有系统盘的云盘序列号。前往实例页面,单击实例名称进入实例详情页签,单击块存储,即可查看并复制云盘序列号。mount --bind /dev /tmp/ecs-offline-diagnose_disk-xxxxx/dev mount --bind /proc /tmp/ecs-offline-diagnose_disk-xxxxx/proc mount --bind /sys /tmp/ecs-offline-diagnose_disk-xxxxx/sys
执行以下命令,查看挂载结果。
mount
运行chroot命令,将根目录切换为问题实例原有系统盘所在的临时路径,并进入chroot环境。
说明您需要将命令中临时目录
/tmp/ecs-offline-diagnose_disk-xxxxx
修改为实际获取的临时目录,其中xxxxx
为原有系统盘的云盘序列号。chroot /tmp/ecs-offline-diagnose_disk-xxxxx
编辑
/etc/fstab
文件,将错误配置删除。执行以下命令,备份
/etc/fstab
文件。cp /etc/fstab /etc/fstab.bak
执行以下命令,编辑
/etc/fstab
文件。vim /etc/fstab
按
i
进入编辑模式,将之前模拟故障时的配置项删除。说明若在生产环境下,分区挂载记录输入错误时,修改为正确格式即可。本实验场景下删除错误配置即可。
修复完成后,按
Esc
键退出编辑模式,输入:wq
并回车,保存并退出文件。
执行以下命令,退出chroot环境。
exit
依次执行以下命令,解除虚拟文件系统的挂载。
说明您需要将命令中临时目录
/tmp/ecs-offline-diagnose_disk-xxxxx
修改为实际获取的临时目录,其中xxxxx
为原有系统盘的云盘序列号。umount /tmp/ecs-offline-diagnose_disk-xxxxx/dev umount /tmp/ecs-offline-diagnose_disk-xxxxx/proc umount /tmp/ecs-offline-diagnose_disk-xxxxx/sys
修复完成后,将实例关机,卸载修复盘,重启实例。
切换至云服务器ECS管理控制台页签。在实例页面,单击目标实例右侧操作列下的停止,
在停止实例对话框中,保持默认配置,单击确定。
停止实例大概需要5~10分钟左右,请耐心等待实例状态变为已停止。
在实例页面,找到目标实例,鼠标移至修复中,单击卸载修复盘。
在弹出的对话框中,单击立即卸载。
修复盘卸载后,在实例页面,单击目标实例其右侧操作列下的启动。
在启动实例对话框中,单击确定。
启动实例大概需要1分钟左右,请耐心等待实例状态变为运行中。
第二种恢复方法参考:若已为ECS实例创建快照,可以进行回滚云盘,快速恢复。
在云产品资源列表的ECS云服务器区域,单击管理。
在实例详情页签,单击快照。
在快照页签,找到创建的快照,单击其右侧操作列下的回滚云盘。
在回滚云盘对话框中,勾选相关信息,单击确定。
等待回滚云盘成功后,即可实现故障的修复。
通过Workbench远程连接测试
在故障修复后,通过Workbench远程连接进行测试ECS实例。
在云产品资源列表的ECS云服务器区域,单击管理。
在实例详情页签,单击远程连接。
在远程连接对话框中,单击通过Workbench远程连接中的立即登录。
在登录实例对话框中,输入重置后的root用户密码,单击确定。
返回如下页面,表示已成功远程登录ECS实例,
/etc/fstab
的故障已完成修复,ECS实例可正常使用。
清理资源
在完成实验后,如果无需继续使用资源,选择不保留资源,单击结束实操。在结束实操对话框中,单击确定。
在完成实验后,如果需要继续使用资源,选择付费保留资源,单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。