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