我昨天做了一件非常愚蠢的事。
我有两个物理驱动器(都是 HDD),将它们称为X
和Y
。两者都包含(单独的)btrfs
文件系统,该文件系统扩展到其整个大小。
让成为我想要保留的@x
子卷。X
我需要重新标记X
和重组其子卷层次结构。所以我想出了以下计划:
- 创建 的快照
@x
并将其存储在Y
(通过send
/receive
) - 运行
mkfs.btrfs -f
并X
为其创建一个新的子卷结构 send
@x
从Y
到 的快照X
。- 完毕;做其他事情。
我的错误是我忘记执行步骤 3,然后执行了我编写的脚本mkfs.btrfs
(Y
错误的是,我不想或不需要重新格式化它;错误原因:我没有意识到标签sda
//sdb
不是sdc
靴子之间“恒定”)。
幸运的是,Y
除了 之外没有我关心的数据@x
。
所以现在我有两个磁盘X
和 Y
@x
这在过去确实成立。今天,它们都没有成立@x
,而且都已经被mkfs.btrfs -f
处决了。有可能@x
完全康复吗?
我尝试过一些事情(但显然没有成功):
尝试找到
X
并Y
使用旧分区testdisk
(我认为它可以检测到它们,但认为它们不可恢复)。btrfs restore
尝试找到以前的树(手动地,以及使用更“智能”的方式)undelete_btrfs
)。没有运气。
我可以photorec
在磁盘上运行,这确实可以恢复各种数据,但其中很多可能是我不再关心的垃圾数据(有很多较旧的分区,通过testdisk
包括何时支持 Windows 机器来检测到)X
。Y
这并不是一个真正的问题,除了我没有地方可以存储这些恢复的数据这一事实除了 X
和Y
。