linux fio 导致 磁盘丢失

来源:互联网 发布:阿里云弹性ip 编辑:程序博客网 时间:2024/05/29 13:03

真是傻逼一个啊,从网上看了资料,直接复制别人的命令,而没有理解,造成全部磁盘的文件丢失了!!


起因:想测试下linux下磁盘的性能,找到一篇傻逼的不负责任的文章,更多是自己傻逼!

 fio -filename=/dev/sdb1 -direct=1 

开始执行 read 测试,没有问题,然后执行 write 测试,测试的是 / 所在的分区,显示写入速度只有 0

df -h 查看,所有被 fio 查过的6个磁盘,使用率显示 100%,然后想执行 reboot,提示 找不到 reboot。按机箱重启按钮,启动不起来,才意识到出大问题了。


于是搜 fio 命令参数, fio -filename=/dev/sdb1   这个的意思是从 分区 sdb1 的第一个扇区开始写入随机数据,去判断这个磁盘的写入速度。 网上大部分文章都是这么写的,不知道坑死多少人!!!


百度搜 “fio 磁盘丢失”,发现几个人差不多的问题。于是开始研究 ext4 分区的结构。

http://www.cnblogs.com/xuczhang/archive/2010/02/26/1674111.html

搜索 “ext4 分区恢复”,看到一个 testdisk 工具

http://www.cgsecurity.org/wiki/TestDisk_Download

https://www.cgsecurity.org/testdisk-7.1-WIP.linux26-x86_64.tar.bz2

解压执行 ./testdisk_static  有个 superblock 菜单,显示出了找到的superblock

superblock 819200, blocksize=4096 []superblock 884736, blocksize=4096 []superblock 1605632, blocksize=4096 []superblock 2654208, blocksize=4096 []superblock 4096000, blocksize=4096 []superblock 7962624, blocksize=4096 []superblock 11239424, blocksize=4096 []superblock 20480000, blocksize=4096 []superblock 23887872, blocksize=4096 []superblock 71663616, blocksize=4096 []

mke2fs -n /dev/sdb1

显示 Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000

第一个备份是在 32768,但是testdisk 没有发现,说明被损坏了。

fsck.ext4 -y -B 4096 -b 819200 /dev/sdb1   

-y 表示全部问题自动按y

-B block的大小,各人磁盘不同,在 mke2fs -n /dev/sdb1 有显示

-b  备份的superblock的位置

0 0
原创粉丝点击