用fio写入磁盘后如何恢复磁盘

时间:2017-08-07 05:52:23

标签: linux disk

我正在使用CentOS 6.6版。今天,我想在/dev/sdc处测试磁盘写入速度到500 GB磁盘。

我使用了这个命令:

fio -filename=/dev/sdc -direct=1 -iodepth 1 -thread -rw=randwrite \
    -ioengine=psync -bs=16k -size=1G -numjobs=5 -runtime=15 -group_reporting \
    -name=mytest

当我使用命令df -h查看磁盘时,我得到了

Filesystem            Size  Used Avail Use% Mounted on
 9.0Z  9.0Z     0 100% /data

/data中,我使用ls,但我看不到任何数据。磁盘是ext4。

我该如何恢复?

1 个答案:

答案 0 :(得分:1)

当您告诉fio使用1 GB的随机数据写入/dev/sdc时,您可能会覆盖分区表(以及磁盘上第一个物理分区的一些重要部分)。很可能,你永远不会再看到第一个1GB。但是如果你小心谨慎,你可以恢复其他499 GB。

在开始搞乱磁盘之前,应该将数据按原样备份到某个外部驱动器并保证其安全。使用dd之类的工具确保从驱动器复制原始位,而不是尝试以任何方式将驱动器安装为块设备。

通过自动方式可能无法恢复分区表,但如果您知道磁盘之前的分区方式,则可以使用parted以相同方式重新分区磁盘。例如,如果整个磁盘包含一个ext4格式的分区,则可以执行parted -s /dev/sdc -- mklabel gpt mkpart primary ext2 0 -1s

重建分区表但在您格式化新分区之后,尝试运行fsck.ext4。您可能需要指定-b标志并将程序指向可用的备份超级块,因为主超级块很可能存在于被覆盖的第一GB磁盘中的某个位置。对于大多数现代系统,备用超级块通常在块32768,但是ymmv。

作为最后的努力(如果你感觉很幸运),在mkfs.ext4 -S的分区上make a new ext4 filesystem尝试重建超级块而不擦除任何内容。

并确保read the man pages,并保持备用方便,以便您可以重新开始,如果这些建议中的任何一项不起作用或导致更多数据损坏!