发帖求助下 fsck 以后如何异常如何修复? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
marktask
V2EX    Linux

发帖求助下 fsck 以后如何异常如何修复?

 
  •   marktask 2022-08-08 12:30:22 +08:00 2405 次点击
    这是一个创建于 1228 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司有台服务器,上面配了阵列卡,3 块硬盘做了 raid5 ,另外一块热备,最初时候没配电池,后来加装的。 上周五同事反馈服务器卡顿,查询后发现,Raid5 所在分区 IO 有问题,于是去机房检查服务器状态,发现 raid 的 1 号成员盘跟热备盘同时黄灯常亮,怀疑硬盘坏了。 所以采购了新的硬盘准备替换上去,重启服务器进入 bios 界面,发现 1 号成员盘跟热备盘同时显示不在线,但是硬盘状态又是 0 错误,怀疑只是单纯的硬盘掉盘导致的。于是尝试重新上线下硬盘,结果一上线,就显示重建状态,不敢打断,就保存重启了下服务器。 进入服务器以后发现服务器 raid5 所在的分区无法自动挂载,于是手动挂在了下,结果满屏幕的显示 htree_dirblock_to_tree:984: inode #87556100: block 1: comm smbd: Directory block failed checksum 3: comm smbd: Directory block failed checksum [48427.551162] EXT4-fs error: 118823 callbacks suppressed [48427.551164] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48427.551206] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48427.551249] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48427.551329] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48427.551370] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48427.551423] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48427.551473] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48427.551516] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48427.551558] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48427.551602] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48432.552207] EXT4-fs error: 117129 callbacks suppressed [48432.552221] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48432.552254] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48432.552297] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48432.552381] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48432.552425] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48432.552467] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48432.552540] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48432.552581] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48432.552625] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum [48432.552667] EXT4-fs error (device sdb1): htree_dirblock_to_tree:984: inode #87953926: block 3: comm smbd: Directory block failed checksum 类似信息。 查阅资料,猜测可能是之前阵列卡没配备电池之前,几次异常断电导致的。 我就参照教程,执行了 efsck 命令,本以为是很快就能好,结果周六下午 1 点开始修复的,一直到周日晚上 11 点还在修复,由于服务器要继续使用,就尝试中断了下 fsck ,结果有部分文件丢失,也有部分文件被还原到历史某个版本。同时有的文件夹无法访问,提示: ls: cannot access 'adas.xlsx': Structure needs cleaning 也有部分文件夹提示只读 mkdir: cannot create directory ‘1’: Read-only file system

    问了以前合作过的一家数据修复公司,说没辙 这种情况怎么修复呢????

    yanqiyu
        1
    yanqiyu  
       2022-08-09 12:47:13 +08:00
    这一堆 Directory block failed checksum 也难以定位问题,只是报错 smbd 试图访问文件夹结果因为 checksum 错误失败了。可能原因是断电导致的不一致 /盘里面的数据就是坏了(等于我没说,因为判断不出来)

    如果数据极其重要,建议马上只读挂载,准备相当或更大容量硬盘,把全盘 dd 出来备份,在完完整整的运行一次 e2fsck 。(就算 e2fsck 也不能保证找回所有数据,它只是修正文件系统一致性,要是有什么 block 里面的数据已经坏了是找不回来的。但是强行读写不一致的文件系统可能扩大损坏)
    marktask
        2
    marktask  
    OP
       2022-08-09 16:38:26 +08:00
    @yanqiyu #1 确实是数据不太一致,一开始不知道 fsck 会导致数据丢失,跑了一天了,丢了近万个文件(服务器上大概几千万个文件)。现在没办法,趁着还可读,复制了服务器上文件,然后重新搭建了一台服务
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3936 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 05:17 PVG 13:17 LAX 21:17 JFK 00:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86