我正在寻找一种安全破坏 ext3 分区的方法,以便下次启动时可以通过 fsck 恢复,以进行测试。谢谢!
答案1
/dev/zero
使用 dd 从原始设备顶部写入数据。从几个字节开始,e2fsck -p
重复,增加计数,直到丢弃一些昂贵的数据。
dd if=/dev/zero bs=1 count=10 of=/dev/sda1 seek=10000
您增加count=
写入量。seek=
设计为传递 /dev/sda1 的前 10k,这样您就不会破坏超级块或文件系统顶部的任何重要结构。破坏超级块没有错(假设这是测试数据),但 fsck 无法从超级块丢失中自动恢复,因此您必须手动将其指向备份超级块。您特别询问重新启动 fsck 可以从中恢复什么,因此您应该知道该-p
标志将 fsck 置于启动时“修复您可以安全修复的内容”模式。
如果您在数据分区上执行此操作,则可以避免重新启动成本,并只需保持 trash-fsck 循环继续进行。
答案2
您可以覆盖第一个超级块,对于 ext3 来说,它将是
dd if=/dev/zero count=1 bs=4096 seek=0 of=/dev/<filesystem to corrupt>
恢复起来很有趣。您也不需要重新启动,只需以交互方式使用 fsck 即可。