意外将 BtrFS 放在普通设备上 - 如何恢复?

意外将 BtrFS 放在普通设备上 - 如何恢复?

在新硬盘上,我创建了一个包含三个分区的 GPT 分区表:

/dev/sdd1 256M for /boot
/dev/sdd2   8G for swap
/dev/sdd3  ~1T for /

然后,我意外地用 BtrFS 格式化了原始设备 /dev/sdd。我想:没问题 - 反正都是新磁盘。我重新创建了分区表,准备了交换空间,现在用 BtrFS 格式化了 /dev/sdd3。引导分区尚未使用。当 BtrFS 对我来说稳定时,我会将该磁盘设为主引导磁盘,并将我以前的 LVM 卷集中到 BtrFS 池中 - 但现在这不重要。我将所有数据分区 rsync 到 BtrFS 分区上的子卷,配置了内核和 grub 并重新启动。一切都很好,工作正常,而且:哇,它更快了。

但是每次 BtrFS 程序扫描 BtrFS 卷时,它们仍然会看到我在重新分区之前意外格式化的 /dev/sdd 卷。我该如何修复它?现在似乎没什么影响,但我不想任何实用程序仅仅因为在那里看到 BtrFS 就尝试意外摆弄 /dev/sdd...

答案1

我猜想一些 Btrfs 超级块镜像仍然存在。它们预计位于距块设备起始点 64 KiB、64 MiB、256 GiB(和 1 PiB)的偏移处,并以 BTRFS_MAGIC(“_BHRfS_M”)开头。清空这些标记应该可以解决问题。在尝试执行此操作之前,不要忘记备份您的文件系统!

相关内容