前言: 因为项目需要,修改了ec2服务器 /lib64/下的openssl.so.10文件,导致服务器无法连接
解决办法:
- 在ec2控制台,首先备份出问题的卷(磁盘),然后停止问题实例(以下称为实例1),在卷的栏下分离卷,然后把该卷挂载到没有问题的实例(以下称为实例2)上去,该卷作为实例2的从盘。登录到实例2的服务器上,使用lsblk命令查看系统磁盘
lsblk
- 新建挂载卷的目录:
sudo mkdir /data
- 使用sudo mount /dev/xvdf1挂载问题卷
sudo mount /dev/xvdf1 /data
报错:
mount: /data: wrong fs type, bad option, bad superblock on /dev/xvdf1, missing codepage.
3.1 报错说明: 如果两个实例是使用相同的 AMI 启动的,则它们的根卷将从同一EBS快照创建,因此这个报错的问题可能是重复的 XFS UUID。
每个 XFS 文件系统都有一个存储在磁盘上的唯一 ID。这可以防止多次意外挂载同一个文件系统的情况。因为 EBS 快照/还原过程是块级副本,所以从快照创建的任何卷都将具有与源卷相同的UUID,因此一次只能挂载一个卷。
解决方法: 修改问题卷的UUID:
4. 修改前需要先查询问题卷的UUID并记下,后面还要重新改回去,使用下面指令查询:
sudo blkid /dev/sda1
- 卷为XFS 格式的文件系统使用下面的指令修改UUID:
sudo xfs_admin -U 12345678-1234-43e8-1ad1-123456789101 /dev/xvdf1
卷为 ext2、ext3 和 ext4 格式的文件系统使用下面的指令修改UUID:
sudo tune2fs /dev/xvdf1 -U 12345678-1234-43e8-1ad1-123456789101
如果不确定卷为哪种格式的文件系统,可以使用blkid
指令查询下:
blkid
- 修改完成后,重新挂载:
sudo mount /dev/xvdf1 /data
- 成功挂载后,cd到/data下,可以看到该卷的数据,然后修改问题文件后,从服务器上卸载问题卷:
sudo umount /data
- 修改问题卷的UUID为原来的,如果不修改回原来的,直接挂回实例1,可能因为UUID改了,导致实例1根据原来的UUID找不到卷,导致服务器起不来。上面有修改UUID的指令,这里不做描述。切记一定要修改回原来的UUID。
- 在ec2控制台停止实例2,分离问题卷,把问题卷重新挂载到实例1上,运行实例1,发现,实例1上的服务器可以正常访问了,问题解决!