EC2 上挂载别的机器的根分区时"duplicate uuid" 问题
缘起
最近要登某一台 ec2,结果其私钥丢了,于是根据文档,将这台 ec2 的机器 stop 掉,然后将根区先 detach 掉,然后再将其 attach 到同 subnet 的另外一台 ec2 上。
按照正常的流程,在另外一台好的 ec2 的机器上将刚 attach 过来的分区 mount 上以后再修改好其 authorized_keys 文件即可完成任务的。
问题浮现
但是,当挂载分区时出错了。当时的命令是这样的:
1 | file -s /dev/xvdf1 # 这里是确认要 mount 的分区是什么格式的,这个例子中是 xfs |
然后挂载时,出错了
1 | mount -t xfs /dev/xvdf1 /mnt/tmp |
返回错误:
mount: wrong fs type, bad option, bad superblock on /dev/xvdf1,
missing codepage or helper program, or other error
问题根源
这里的问题是因为跑着的 ec2 和要修改公钥的 ec2 由于是用一个 ami 起来的,故而根分区的 uuid 重复了导致的。
解决问题
- xfs_db -c uuid /dev/xvdf1 # 修改要挂载分区的 uuid
- mount -t xfs -o nouuid /dev/xvdf1 /mnt/tmp # 用参数 nouuid 来避免挂载时检查 uuid