我只是用来sfdisk
将分区表克隆到新磁盘,
sudo sfdisk -d /dev/nvme0n1 > /tmp/part.txt
sudo sfdisk /dev/nvme1n1 < /tmp/part.txt
但是,现在两个驱动器具有相同的 uuid。如何修复该问题并为具有克隆分区表的设备生成新的 UUID?
被欺骗的数量可以通过 来查看sudo fdisk -l
。您可以看到“523436E9-4DA5-474F-87CA-D784E4BF345D”被共享为通用“磁盘标识符”
Disk /dev/nvme1n1: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
[...]
Disklabel type: gpt
Disk identifier: 523436E9-4DA5-474F-87CA-D784E4BF345D
[...]
Disk /dev/nvme0n1: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
[...]
Disklabel type: gpt
Disk identifier: 523436E9-4DA5-474F-87CA-D784E4BF345D
您还可以看到共享的 UUID,
❯ lsblk -o +uuid
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS UUID
nvme1n1 259:0 0 1.8T 0 disk
├─nvme1n1p1 259:2 0 512M 0 part
└─nvme1n1p2 259:3 0 1.8T 0 part 7d78ed4b-e4aa-4270-853d-6489ea4d6c54
nvme0n1 259:1 0 1.8T 0 disk
├─nvme0n1p1 259:4 0 512M 0 part /boot/efi 1D40-E385
└─nvme0n1p2 259:5 0 1.8T 0 part / 7d78ed4b-e4aa-4270-853d-6489ea4d6c54
在分区“7d78ed4b-e4aa-4270-853d-6489ea4d6c54”上共享?
答案1
设备标识符UUID
我可以使用以下命令更改磁盘的 UUID sfdisk
:
sudo sfdisk --disk-id /dev/nvme1n1 $(uuidgen)
Disk identifier changed from 523436E9-4DA5-474F-87CA-D784E4BF345D to E15A552B-CD07-4332-B73C-E67765D11F4E.
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
分区 UUID
为了给分区一个新的 UUID
sudo btrfstune -f -U $(uuidgen) /dev/nvme1n1p2
我必须首先通过从 raid1 阵列中删除该设备来使该设备脱机 - 因为只有两个磁盘需要先删除 raid1,
sudo btrfs filesystem balance start -dconvert=single -mconvert=dup
然后我就可以删除该设备,
sudo btrfs device remove /dev/nvme1n1p2 /
然后我必须在设备上创建一个 btrfs 文件系统,以便我可以使用btrfstune
sudo mkfs.btrfs /dev/nvme1n1p2
然后我可以更改分区uuid,
sudo btrfstune -f -U $(uuidgen) /dev/nvme1n1p2
但lsblk -o +uuid
不显示分区(nvme1n1p2)的uuid,所以我不确定到底发生了什么,
lsblk -o +uuid
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS UUID
nvme1n1 259:0 0 1.8T 0 disk
├─nvme1n1p1 259:2 0 512M 0 part
└─nvme1n1p2 259:3 0 1.8T 0 part
nvme0n1 259:1 0 1.8T 0 disk
├─nvme0n1p1 259:4 0 512M 0 part /boot/efi 1D40-E385
└─nvme0n1p2 259:5 0 1.8T 0 part / 7d78ed4b-e4aa-4270-853d-6489ea4d6c54