V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
hellojinjie
V2EX  ›  Linux

Linux 系统运行命令报错,貌似磁盘坏了,这种情况还有救嘛

  •  
  •   hellojinjie · 2018-12-17 20:57:26 +08:00 · 4537 次点击
    这是一个创建于 2169 天前的主题,其中的信息可能已经有所发展或是发生改变。

    手贱就运行了一下 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
    

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

    各位大神还有救嘛,

    ma@tzc81:~$ 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!
    ma@tzc81:~$ ld
    Segmentation fault (core dumped)
    ma@tzc81:~$ ps
    -bash: /bin/ps: cannot execute binary file: Exec format error
    ma@tzc81:~$ top
    Segmentation fault (core dumped)
    ma@tzc81:~$ file
    file: error while loading shared libraries: /usr/lib/x86_64-linux-gnu/libmagic.so.1: invalid ELF header
    
    
    14 条回复    2018-12-20 11:30:55 +08:00
    likuku
        1
    likuku  
       2018-12-17 21:21:29 +08:00   ❤️ 1
    备份在哪里?
    hellojinjie
        2
    hellojinjie  
    OP
       2018-12-17 21:30:51 +08:00
    @likuku 目前没有备份,一直想着做备份,,一直拖着,,泪。。。
    BFDZ
        3
    BFDZ  
       2018-12-17 22:34:10 +08:00
    这看着不像磁盘坏了,是系统程序坏了,把工作资料备份,重装个系统应该就可以了

    试一下 fsck -y /dev/sda
    修复文件系统
    kernel
        4
    kernel  
       2018-12-17 23:40:01 +08:00
    这是啥命令啊,又是 io 又是目标文件是 /dev/sda 的,感觉很危险
    likuku
        5
    likuku  
       2018-12-17 23:47:53 +08:00
    @BFDZ
    @kernel

    随手搜了下 fio 相关资料,找到的第一篇介绍文,开头就警告了以下:

    “注意 : 性能测试建议直接通过写裸盘的方式进行测试,会得到较为真实的数据。但直接测试裸盘会破坏文件系统结构,导致数据丢失,请在测试前确认磁盘中数据已备份。”

    好吧... 看起来 LZ 是直接写到 /dev/sda 了,那... 节哀顺变了
    jimzhong
        6
    jimzhong  
       2018-12-18 00:01:02 +08:00
    先用 dd 把 sda 完全备份一下,然后试试 fsck 能否恢复大部分数据吧。
    jimzhong
        7
    jimzhong  
       2018-12-18 00:01:59 +08:00
    如果数据价值不高的话建议在 sda 上重建分区表然后重装系统。
    likuku
        8
    likuku  
       2018-12-18 00:14:34 +08:00   ❤️ 1
    碰巧因为隔壁帖子里提到正确擦除 ZFS Metadata 的讨论,
    我想起了 GPT 分区除了磁盘头外,还在磁盘尾巴保留了第二分区表备份,

    假若 LZ 是 GPT 分区,那么还有可能使用磁盘尾部的备用 GPT 分区表来恢复分区。
    likuku
        9
    likuku  
       2018-12-18 00:15:40 +08:00
    #6 作法必须称赞!非常标准专业正确。
    jimzhong
        10
    jimzhong  
       2018-12-18 02:12:53 +08:00
    @likuku 我觉得他不仅是分区表坏了,分区内部的数据也坏了。
    @jimzhong 忘了说建议在 liveCD 里面 dd 备份。
    msg7086
        11
    msg7086  
       2018-12-18 04:57:30 +08:00
    看命令行,前 20G 的数据已经擦干净了。我觉得楼主可以洗洗睡了。
    vuuv
        12
    vuuv  
       2018-12-18 09:12:42 +08:00 via Android
    前 20G 有三成内容被随机覆盖,大约 6G 的数据,应该会干掉大部分系统文件及大量的用户数据。
    建议放弃抢救。
    aaaaasam
        13
    aaaaasam  
       2018-12-18 11:26:50 +08:00
    一切皆为文件,你这个和 echo '' > /dev/sda 基本一样,估计你连分区表都弄没了,如果数据重要的话,就别瞎折腾了 送去数据恢复把
    statfall
        14
    statfall  
       2018-12-20 11:30:55 +08:00 via Android
    心疼
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   974 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:55 · PVG 06:55 · LAX 14:55 · JFK 17:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.