aws ec2启动失败,分离卷挂卷修复
背景:
aws的ec2机器没有正常启动,检查发现,机器服务不可达(就是启动失败)。实例操作系统日志,我看到下面的日志:
[DEPEND] Dependency failed for /data2.
[DEPEND] Dependency failed for Local File Systems.
...
这说明了实例在启动的时候,找不到硬盘挂载点 /data2。
修复步骤:
1. 启动一个暂时性的修复实例(ec2),例如 Amazon Linux t3.small 类型实例。
2. 将问题实例 i-0ccc330bac7xxxxxx 的根卷 vol-028736a366cxxxxxx 从实例上断开,同时记录跟设备名称,一般默认是/dev/sda1。断开卷时,需要先将问题实例停机。
3. 将暂时性的修复实例关机,把上述根卷 vol-028736a366cxxxxxx挂载到修复实例上,然后启动修复实例。
4. 登入 SSH 进暂时性的修复实例,以root用户执行,通过下面命令挂载卷:
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:4 0 10G 0 disk └─nvme0n1p1 259:5 0 10G 0 part / nvme1n1 259:0 0 30G 0 disk └─nvme1n1p1 259:1 0 30G 0 part /opt nvme2n1 259:2 0 8G 0 disk └─nvme2n1p1 259:3 0 8G 0 part
mount /dev/nvme2n1p1 /mnt
4. 检查根卷的 fstab 挂载设置,并且注解 /data2 相关的挂载目标
# vim /mnt/etc/fstab
5. 存档并卸载卷
# umount /mnt
6. 修复实例关机,再将卷由修复实例上断开,重新连接回原本实例 i-0ccc330bac7xxxxx,连接为根卷设备名称 (/dev/sda1)
7. 尝试开启实例
其他命令:
# blkid
/dev/nvme1n1: UUID="2fb8601f-2b78-0a14-8c6a-3ba1fe6fbb4f" UUID_SUB="e9adc8b8-e13f-5e7f-4099-d8916ffe761c" LABEL="0" TYPE="linux_raid_member" /dev/nvme2n1: UUID="2fb8601f-2b78-0a14-8c6a-3ba1fe6fbb4f" UUID_SUB="b867cdfc-cc33-1a17-5c3b-331052347e91" LABEL="0" TYPE="linux_raid_member" /dev/nvme0n1p1: UUID="388a99ed-9486-4a46-aeb6-06eaf6c47675" TYPE="xfs" /dev/nvme3n1: UUID="2fb8601f-2b78-0a14-8c6a-3ba1fe6fbb4f" UUID_SUB="1b5a394d-8aba-b201-1cb5-604a63e181ae" LABEL="0" TYPE="linux_raid_member" /dev/nvme4n1: UUID="2fb8601f-2b78-0a14-8c6a-3ba1fe6fbb4f" UUID_SUB="72a5d55d-83cf-72fb-fc07-63b7239578a8" LABEL="0" TYPE="linux_raid_member" /dev/nvme5n1: UUID="3fc3349b-7ac2-49cc-8dc2-28e97d2bff2b" TYPE="ext4" /dev/nvme6n1: UUID="2fb8601f-2b78-0a14-8c6a-3ba1fe6fbb4f" UUID_SUB="614f1a08-c782-84e4-6875-21493a478480" LABEL="0" TYPE="linux_raid_member" /dev/md127: UUID="e9b02b68-dc6e-448d-801b-7318c153c4e6" TYPE="xfs" /dev/nvme0n1: PTTYPE="dos"
该命令可以看到所有的设备挂载,与/mnt/etc/fstab上的UUID对照,这里没有的,就是失效的挂载,得删除,否则就会和我一样,机器启动不了。
.