概要
①複数のEBS間で特定の領域をddコマンドでバックアップ
②コピー元のEBSがマウントできない
③コピー元とコピー先のUUIDの重複により後にマウントした方が失敗した
④下記いずれかで解決
・一時的なマウントのために、UUIDの重複を無視
・永続的にマウントさせるために、新しいUUIDを割り当てる
検証
初期状態として各EBSはマウントしてそれぞれファイルシステムもできている
バックアップ用に今回はxvdcにディレクトリやファイルを用意している
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
xvda 202:0 0 8G 0 disk
├─xvda1 202:1 0 8G 0 part /
├─xvda127 259:0 0 1M 0 part
└─xvda128 259:1 0 10M 0 part
xvdb 202:16 0 8G 0 disk
└─xvdb1 202:17 0 255M 0 part /mnt/xvdb1_data
xvdc 202:32 0 8G 0 disk
└─xvdc1 202:33 0 255M 0 part /mnt/xvdc1_data
①複数のEBS間で特定の領域をddコマンドでバックアップ
dd if=/dev/xvdc1 of=/dev/xvdb1
②コピー元のEBSがマウントできない
mount /dev/xvdb1 /mnt/xvdb1_data/
mount /dev/xvdc1 /mnt/xvdc1_data/
mount: /mnt/xvdc1_data: wrong fs type, bad option, bad superblock on /dev/xvdc1, missing codepage or helper program, or other error.
③コピー元とコピー先のUUIDの重複により後にマウントした方が失敗した
このようにカーネルのメッセージを確認するとUUIDが重複してることがわかる(can't mountのところ)
[root@ip-10-0-3-193 mnt]# dmesg | tail
[ 1420.866682] XFS (xvdb1): Mounting V5 Filesystem
[ 1420.906054] XFS (xvdb1): Ending clean mount
[ 3778.169591] XFS (xvdc1): Unmounting Filesystem
[ 3817.624656] XFS (xvdb1): Unmounting Filesystem
[ 4897.974491] XFS (xvdb1): Mounting V5 Filesystem
[ 4898.013042] XFS (xvdb1): Ending clean mount
[ 4969.874308] XFS (xvdc1): Filesystem has duplicate UUID XXXXa84d-f314-4827-a775-8e97a2920db5 - can't mount
[ 5010.331221] XFS (xvdc1): Filesystem has duplicate UUID XXXXa84d-f314-4827-a775-8e97a2920db5 - can't mount
[ 5140.554222] XFS (xvdc1): Filesystem has duplicate UUID XXXXa84d-f314-4827-a775-8e97a2920db5 - can't mount
[ 5411.855355] XFS (xvdc1): Filesystem has duplicate UUID XXXXa84d-f314-4827-a775-8e97a2920db5 - can't mount
④下記いずれかで解決
・一時的なマウントのために、UUIDの重複を無視
sudo mount -t xfs -o nouuid /dev/xvdc1 /mnt/xvdc1_data/
・永続的にマウントさせるために、新しいUUIDを割り当てる
こちらはディスク全体にUUIDを割り当てようとしたところ失敗したのでパーティションに直接UUIDを割り当てた
sudo xfs_admin -U generate /dev/xvdc1
Clearing log and setting UUID
writing all SBs
new UUID = ca90c200-110d-XXX-bd73-370729cc3dab
ll /dev/disk/by-uuid/
total 0
lrwxrwxrwx. 1 root root 11 Apr 11 02:13 XXXXa84d-f314-4827-a775-8e97a2920db5 -> ../../xvdb1
lrwxrwxrwx. 1 root root 11 Apr 10 23:06 XXX76cbb-7d95-4e9a-9bcb-0b9321f5faf8 -> ../../xvda1
lrwxrwxrwx. 1 root root 13 Apr 10 23:06 87AA-3C8F -> ../../xvda128
lrwxrwxrwx. 1 root root 11 Apr 11 02:13 ca90c200-110d-XXX-bd73-370729cc3dab -> ../../xvdc1
※以下は失敗ログなので気にしないで
UUIDを新しく設定するコマンドに失敗したので修復する
失敗
sudo xfs_admin -U generate /dev/xvdc
xfs_admin: /dev/xvdc is not a valid XFS filesystem (unexpected SB magic number 0x00000000)
Use -F to force a read attempt.
修復(修復も同様に失敗した)
xfs_repair /dev/xvdc
Phase 1 - find and verify superblock...
bad primary superblock - bad magic number !!!
attempting to find secondary superblock...
.....................................................found candidate secondary superblock...
unable to verify superblock, continuing...
................................................................found candidate secondary superblock...
unable to verify superblock, continuing...
................................................................found candidate secondary superblock...
unable to verify superblock, continuing...
参考:https://dev.classmethod.jp/articles/tsnote-how-to-fix-ebs-filesystem-has-duplicate-uuid/