技术解析

Linux 系统运行命令报错,貌似磁盘坏了,这种情况还有救嘛
0
2021-06-22 06:23:29
idczone

手贱就运行了一下 fio 命令

fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=100 -group_reporting -name=mytest1

然后就发现出现下面的错误,部分命令无法运行。

各位大神还有救嘛,

[email protected]:~$ java
Inconsistency detected by ld.so: ../sysdeps/x86_64/dl-machine.h: 540: elf_machine_rela_relative: Assertion `ELFW(R_TYPE) (reloc->r_info) == R_X86_64_RELATIVE' failed!
[email protected]:~$ ld
Segmentation fault (core dumped)
[email protected]:~$ ps
-bash: /bin/ps: cannot execute binary file: Exec format error
[email protected]:~$ top
Segmentation fault (core dumped)
[email protected]:~$ file
file: error while loading shared libraries: /usr/lib/x86_64-linux-gnu/libmagic.so.1: invalid ELF header


备份在哪里?

目前没有备份,一直想着做备份,,一直拖着,,泪。。。

这看着不像磁盘坏了,是系统程序坏了,把工作资料备份,重装个系统应该就可以了
试一下 fsck -y /dev/sda
修复文件系统

这是啥命令啊,又是 io 又是目标文件是 /dev/sda 的,感觉很危险



随手搜了下 fio 相关资料,找到的第一篇介绍文,开头就警告了以下:
“注意 : 性能测试建议直接通过写裸盘的方式进行测试,会得到较为真实的数据。但直接测试裸盘会破坏文件系统结构,导致数据丢失,请在测试前确认磁盘中数据已备份。”
好吧... 看起来 LZ 是直接写到 /dev/sda 了,那... 节哀顺变了

先用 dd 把 sda 完全备份一下,然后试试 fsck 能否恢复大部分数据吧。

如果数据价值不高的话建议在 sda 上重建分区表然后重装系统。

碰巧因为隔壁帖子里提到正确擦除 ZFS Metadata 的讨论,
我想起了 GPT 分区除了磁盘头外,还在磁盘尾巴保留了第二分区表备份,
假若 LZ 是 GPT 分区,那么还有可能使用磁盘尾部的备用 GPT 分区表来恢复分区。

作法必须称赞!非常标准专业正确。

我觉得他不仅是分区表坏了,分区内部的数据也坏了。
忘了说建议在 liveCD 里面 dd 备份。

看命令行,前 20G 的数据已经擦干净了。我觉得楼主可以洗洗睡了。

前 20G 有三成内容被随机覆盖,大约 6G 的数据,应该会干掉大部分系统文件及大量的用户数据。
建议放弃抢救。

一切皆为文件,你这个和 echo '' > /dev/sda 基本一样,估计你连分区表都弄没了,如果数据重要的话,就别瞎折腾了 送去数据恢复把

心疼

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服