如何为了测试目的而导致文件系统损坏?

如何为了测试目的而导致文件系统损坏?

据我所知,文件系统损坏的原因如下:

  • 不当关机(硬重置);
  • 硬件故障(磁盘坏块、磁盘控制器坏);
  • 启动不当(安装损坏的文件系统);
  • 内核错误(真的很想测试这个)。

问题:

  1. 文件系统损坏还有其他我未注意到的原因吗?
  2. 如何人为地导致文件系统损坏 - 我知道dd,但还有比这更严重的事情吗?

我对 Linux 很好奇,但这可能也适用于 Windows。

答案1

对于不正常关机,您应该能够使用虚拟机进行测试。编写一个脚本来加载所有应用程序和服务。然后使用 API 终止虚拟机,然后重新启动它。重复...让您的脚本运行,看看它需要多长时间才能停止运行。

对于内核错误:找到一个旧的 beta 内核,例如早期的 Reiser 或 XFS 或 EXT4 内核。查看错误列表和更改以查找可重现的错误。

答案2

定位硬盘磁头的音圈机制使用了稀土磁铁,我从坏掉的硬盘里取出了一些相当大、非常强的磁铁。

您可以通过使用足够强的磁铁并将其放在硬盘驱动器顶部来在正在工作的硬盘驱动器上创建磁盘错误。但请注意,这不是一个可逆的过程,如果它起作用,它将损坏驱动器盘片上的伺服轨道,使磁盘无法使用。

答案3

1) 另一个非常有趣的损坏源是重叠分区。您可以连续运行数月,其中一个分区的末尾与另一个分区的开头仅重叠一个扇区。甚至更多!

2) sg3-utils 软件包有一些不错的低级 SCSI 命令,您可以用它们来处理磁盘。例如:

sg_write_long -w -l 16384 /dev/sda

将无法纠正的错误写入 /dev/sda 的扇区 16384(嗯,它实际上只是告诉驱动器那里存在无法纠正的错误)。

相关内容