Amazon意外“Stopped” EC2实例恢复手册

之前的帖子说到自己的一台Amazon EC2实例又因为retirement,且又漏看邮件而没能及时处理而导致被停止(stopped)。

image.png
(图源 :pixabay)

除了懊恼于自己又没能及时查看并处理邮件,同时也懊恼于上次出这样的故障恢复过程没能写一个手册,一切又都要重来。

所以这次恢复过程记录一下,万一下次再出这样的问题(呸呸呸),只需依照手册逐步处理就好,不必再费脑了。

登录面板

首先,登录AWS的管理面板:https://console.aws.amazon.com/

登录后,在右上角选择EC2所在的区域:
1699452338807.png

然后在左侧的Services中,选择Compute->EC2
1699452444340.png

然后选择Instances->Instances,找到我们被停止的(“Stopped”)实例
1699452542246.png

可以发现实例状态为
1699452636252.png

启动实例并获取IP地址

选中实例,并在右上部的Instance state菜单中选择“Start instance”
1699452736593.png

等待实例启动成功
1699455801144.png

然后在实例的信息中,找到实例的IP地址
1699455674973.png

多次使用Putty连接尝试登录,均出现Network error: Connection refused
image.png

从面板中重启实例后故障依然
1699455971302.png

修复无法连接问题

1699456267330.png

1699456397132.png

1699456518123.png

之前我是直接在串口控制台进行的操作(按回车),这次我按Ctrl+D试试。

按完后发现系统启动进了默认模式(Default mode):
1699456639132.png

而且非常神奇的是,这时候SSH可以成功登录啦。为了进行测试,我没有进行任何修改,重新在SSH中Reboot系统,发现故障果然和我想的一样,依然存在(SSH又无法登录了)。

我们可以通过在串口控制台敲回车,进入到维护模式:
1699457017500.png

(当然也可以和之前一样通过按(Ctrl+D)进入到默认模式,重要的是先进入到系统中)

通过vi等工具编辑/etc/fstab文件,注释掉如下内容:
1699457217167.png

然后使用reboot(维护模式下)或者sudo reboot(默认模式下)重启系统。

再次使用Putty连接实例,发现实例已经正常连接。

挂载本地存储

之所以导致这一系列问题的根源都是因为这个EC2实例包含有本地存储,相比于网络存储,本地存储具有速度快、容量大等特点。

而我也需要在本地存储上运行一些脚本,以及存储一些数据,所以还是要把本地存储重新挂载上。

查看本地存储,执行如下指令:

sudo fdisk -l

返回信息中的这部分就是本地存储啦,150G,也不算太大,将将够用:
image.png

使用如下指令进行分区操作(千万别搞错设备哦):

sudo fdisk /dev/nvme1n1

可以输入m查看帮助,依次输入np,回车、回车,来创建新分区:
image.png

输入w写入修改:
image.png

使用如下指令创建文件系统:

sudo mkfs.ext4 /dev/nvme1n1p1

创建成功,记下UUID(也可使用sudo blkid查看):
1699494705769.png

创建挂载点(如无):

sudo mkdir /work

编辑/etc/fstab,加入相应条目(修改UUID为之前获取的内容):

UUID="265fd668-fc01-4a0a-98e6-041de6a0f4db" /work ext4 defaults,discard 0 0

测试挂载:

sudo mount /work

至此分区以及挂载均已成功,重启后分区会自动挂载,一切正常。

恢复数据

(略)


经过一番折腾,总算成功地恢复了Amazon 被STOP的EC2实例,恢复重建数据也是个漫长的工作,和主题关系不大,就不再多言啦。

哎,这一天天的时间浪费的,哭啊。

相关链接

Sort:  

又给自己找了个机会练习,只能说O哥用心良苦啊!

這篇文章,可以造福後人,萬一碰到同樣狀況的話

这篇文章有很详细的操作步骤,真是为有需要人的福音啊!

欧哥是时间管理大师 😄