我正在使用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。
我该如何恢复?
答案 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,并保持备用方便,以便您可以重新开始,如果这些建议中的任何一项不起作用或导致更多数据损坏!