【Linux】EBSをパーティション単位でバックアップする際に注意すること


# 概要
①複数の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を新しく設定するコマンドに失敗したので修復する
```txt:失敗
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.
```

```txt:修復（修復も同様に失敗した）
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/

https://repost.aws/ja/knowledge-center/ebs-mount-volume-issues