前言
我们在使用AWS EC2时候,经常会因为种种原因,例如(磁盘挂载错误,网络配置错误,SSH错误)导致我们无法使用SSH登陆到EC2,如果虚拟机坏掉了如何修复呢?本文脉时云解决方案架构师教你如何修复‘坏掉的EC2’。
关闭EC2并解除挂载磁盘,并挂载到另外的EC2上。
1、首先确认EC2实例是关着的才能操作。如下截图。
2、去左侧菜单,磁盘卷里边,找到这个EC2实例对应的磁盘。注意看InstanceID可以区分。点击操作,先解除挂载。如下截图。
3、继续把这个磁盘卷挂载到其他EC2实例。如下截图。
4、挂载过程中,AWS控制台会提示,挂载点。默认的/dev/sdf就可以,不用改。如下截图,红色框中。
好了,操作完成。现在该去操作系统内干活了。
挂载文件系统并修改损坏的文件
完成了虚拟机级别的操作,该进入操作系统了。
1、到新挂载的虚拟机上,ssh登陆进去。先su成root身份,执行如下命令:
fdisk -l
命令执行结果是会列出当前的硬盘。可以看到/dev/xvda1就是我们要挂载的卷。如下截图。
2、接下来执行mount命令挂载。
本文的注意点1
这里有个问题需要注意,如果用来修复的EC2实例和损坏的要挂载盘的EC2实例是基于同一个AMI镜像生成的,例如用的AMI是Amazon Linux 2,那么其磁盘是XFS格式,系统会提示UUID冲突。如果是从不同的AMI镜像创建的,那么就不会报告这个错误了。如下截图,红色框是报错信息。
那么,为了跳过这个UUID检测,可以直接加上个参数 –nouuid即可跳过。例如如下命令:
mount -t xfs -o nouuid /dev/xvdf1 /mnt/repair
执行成功后不会有任何报错。但是可以通过mount命令看到挂载成功啦。
现在切换到挂载好的目录上,浏览原来磁盘的文件,并编辑损坏的配置文件,完成修复了。(简单步骤,截图略过)
挂载回去,修复完成
修复完成后,再把磁盘umount摘下来。(简单步骤,截图略过)
本文的注意点2
接下来把磁盘挂载回去到原始的虚拟机上。挂载时候,注意,挂载点默认会提示为/dev/sdf,这不是原来系统盘初始的挂载点。
往回挂载时候,要填写为/dev/xvda的,这样是原位挂载。如下截图。
好了。现在开机测试,系统会正常启动。(简单步骤,截图略过)
至此修复完成。
关注我们:请关注一下我们的微信公众号:扫描二维码
版权声明:本文为原创文章,版权归 server 所有,欢迎分享本文,转载请保留出处!
评论已关闭!