事情本身不复杂,线索都在日志里。阿里云 4 核 16G 的机器把生产数据盘快照做成新云盘挂到测试机,mount 报 wrong fs type,dmesg 里写着 EXT4-fs (vdb): duplicate UUID,换 -t ext4 和 -o ro 重试结果一样,测试机的 fstab 还把生产盘认成了自己的一块。

原因不止一个,得分开看。整盘快照克隆,文件系统 UUID 与生产盘完全相同,同一台机上出现两个同 UUID 的设备。另一种情况是fstab 用 UUID= 挂载,克隆盘被内核认成原盘,开机挂到了错误的位置。

还有一种情况,LVM 卷组同名,两个 vg 只激活了一个,另一个显示 not found。

先查有没有重复 UUID

blkid | awk '{print $2}' | sort | uniq -d

给克隆盘换一个新 UUID

tune2fs -U $(uuidgen) /dev/vdb1

LVM 卷组改名再激活

vgrename oldvg testvg && vgchange -ay testvg

测试盘挂载点写 noauto 防开机抢挂

echo 'UUID=新值 /mnt/test ext4 noauto 0 0' >> /etc/fstab

改完先别撤,确认这几项。blkid 输出里没有重复 UUID,mount /mnt/test 成功且 df 容量正确,重启后生产盘仍挂在原路径、测试盘不自动挂载。

补一句。快照恢复最容易被忽略的就是身份标识,UUID、卷组名、主机名三样都要改;改 UUID 前先卸载,否则新 UUID 不会立刻写回。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189