亚马逊云EC2服务器SSH端口无法登陆后通过分离加载卷恢复数据的全流程
事情原委:
手贱,把宝塔面板里面的防火墙端口22给删除了。
同时宝塔访问链接的安全验证链接没有保存 https://18.42.250.216:21685/57feaa4c 后面的57feaa4c 这个字段导致无法登陆宝塔面板
通过亚马逊云服务器后台的EC2 Instance Connect 进行连接连接不上,原因就是服务器自带防火墙的22端口没有启用。
然后通过亚马逊后台的 会话管理端口 提示需要密码
会话管理器的用法:
- 无需使用 SSH 密钥、堡垒主机或打开任何入站端口即可连接到您的实例。
- 使用 AWS Key Management Service 密钥保护会话。
- 您可以在 Amazon S3 存储桶或 CloudWatch Logs 日志组中记录会话命令和详细信息。
- 在会话管理器上配置会话 首选项 页面.
就这玩意配置后登陆 需要ubuntu 的密码。而实际上这个是随机密码
通过命令 sudo su就可以切换到 root用户下操作
然后通过 bt命令就能知道宝塔面板的安全验证链接
但是但是 不知道操作了什么,就是死活提示需要密码。
最后没有办法,只能通过创建新的实例,把这台服务器的磁盘卷加载到新服务器下,拷贝数据出来才算完。
操作办法:
1、停止有问题无法访问的实例(注意,是停止 而不是终止,终止的话就数据全部没有了)
2、找到这个实例,然后导航栏里面选择存储,对存储下的卷进行 分离卷
3、创建新的实例,注意在创建新的实例的时候子网要选择和原来无法访问面板的实例一直,在网络设置里面可以选择。
4、创建实例,启动实例后就是挂载卷。在卷菜单里面找到我们分离出来的卷,选择挂载,挂载的时候选项我们新创建的实例
5、挂载成功后,回到实例,通过SSH工具链接,或者通过EC2 Instance Connect 链接去查看这个卷有没有挂载成功
查看卷的命令:使用 df -h 命令查看已格式化并挂载的卷。
用这个命令我们看不到刚挂载进去的卷,那么我们使用 lsblk 查看在启动时已映射但未格式化和装载的所有卷。
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
xvda 202:0 0 8G 0 disk
├─xvda1 202:1 0 7.9G 0 part /
├─xvda14 202:14 0 4M 0 part
└─xvda15 202:15 0 106M 0 part /boot/efi
xvdf 202:80 0 30G 0 disk
├─xvdf1 202:81 0 29.9G 0 part
├─xvdf14 202:94 0 4M 0 part
└─xvdf15 202:95 0 106M 0 part
看到如下信息,其中xvda1 202:1 0 7.9G 0 part /后面有 /说明这个分区已经加载安装成功,系统可以看到数据
现在我们需要安装加载的就是 xvdf 202:80 0 30G 0 disk 这个盘。
正确的加载语句是 $ sudo mount /dev/xvdf1 /mnt
刚开始我使用的是 $ sudo mount /dev/xvdf /mnt,结果报错,这个就类似windows系统里面一个磁盘多个分区一样,应该是把分区加载进去,而不是磁盘。
这样加载安装后 再用lsblk命令查看 就能看到├─xvdf1 202:81 0 29.9G 0 part /mnt 这样了。
于是我们就可以通过新服务器的宝塔面板进去拷贝数据
我笨,不会用SSH工具拷贝,故此只能在新实例下安装一个宝塔面板,然后进去操作
~~~~~~~~~~~~
写起来就这么多字。实际上就这问题,折腾了2天,因为我买的不是大陆中国的服务器,而且美国的,故此找美国的售后都得等晚上,等人家回复已经是大半夜。而且这个亚马逊的客服,你提交一个工单,得几小时很久才有回应。
故此建议不要手贱,关键设置不要删除。
评论
评论 (0)