不小心将 BtrFS 放在普通设备上 - 如何恢复?

hur*_*n77 3 linux partitioning gpt btrfs

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

/dev/sdd1 256M for /boot
/dev/sdd2   8G for swap
/dev/sdd3  ~1T for /
Run Code Online (Sandbox Code Playgroud)

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

但是每次 BtrFS progs 扫描 BtrFS 卷时,他们仍然会看到 /dev/sdd 卷,我在重新分区之前不小心格式化了该卷。我如何解决它?现在似乎没有受到伤害,但我不希望任何实用程序仅仅因为它在那里看到 BtrFS 就偶然尝试摆弄 /dev/sdd ......

jll*_*gre 6

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

  • 你成就了我的一天......使用 VCHE 替换了大约 64k 的魔法字节 - 不可行。:-) (4认同)