在EXT4 linux系统上模拟丢失的超级块错误

我正在为一个每年停电几次,影响他们的Linux服务器的朋友编写参考资料。 这个人对linux系统pipe理并不熟悉,所以我想包含屏幕截图和相当全面的描述,以及如何回应。

其中一个比较常见的问题就是如何从根文件系统中的损坏或丢失的超级块中恢复数据(每年几次;他们处于闪电发生的区域)。

我有关于如何解决这个问题的文档,但是假设你有一个熟悉linux和基于控制台的系统pipe理的知识。 我想要做的是在我的服务器上设置一个KVM,有意识地破坏根文件系统,然后截取最初的发现以及要恢复的步骤。

我似乎无法触发丢失/损坏的超级块问题。 我一直在尝试这样的事情:

(/ dev / sda2是根LVM分区所在的地方)dd if = / dev / zero of = / dev / sda2 bs = 1024 count = 1 seek = 1

(/ dev / mapper / vg_sys-lv_root是根LVM分区)dd if = / dev / zero of = / dev / mapper / vg_sys -v_root bs = 4096 count = 1

这些都不工作; 他们似乎都造成了混乱,但与普通的缺失/腐败的超级街区截然不同。

有什么方法可以在KVM客人机上模拟这种情况(即不需要安装机器,然后将电源线拔出)?

确保您正在删除所有超级块,包括备份超级块

dumpe2fs /dev/path_to_your_volume | grep -i superblock

从那里,你可以踢所有的超级块像很多tinkertoys。