linux *** 作系统故障处理-ext4文件系统超级块“can't read superblock”损坏修复

linux *** 作系统故障处理-ext4文件系统超级块“can't read superblock”损坏修复,第1张

前几天在广州参加植物病毒学会议,一边听会一边开着TeamViewer远程连接实验室装有linux系统的工作站跑程序干活。有一天下午发现TeamViewer显示服务器离线,原来是因为施工导致停电。Anyway, 不重要,发微信让小青儿给我重启服务器,结果发现重启不了,大概就是这个界面。

怎么着都进不去图形界面,简而言之,工作站重启不了了。索性不管了,好好听报告,心想回到福州再收拾工作站。回到福州第一件事就是坐下来重启工作站,发现无论怎么折腾都进不去系统。

虽然图形界面进不去,好在还能够在命令行下进行 *** 作。当看到 /bioinfor ,这个存放目录的路径下啥都没有的时候,这可是我所有的数据啊!如果这个盘里的数据没了,各个合作者还不得把我手撕了。想到这里,冷汗差点下来了。

于是开始寻找解决方法。

首先得想办法进入系统,在反复地 sudo reboot 都无法进入系统之后,通过 df -h 也看不到/dev/sda(也就是挂载到/bioinfor路径的磁盘)信息。然后猜测是不是因为磁盘以及分区表之类出现了错误导致不能进入系统。通过 sudo vi /etc/fstab 将除了系统安装盘之外的所有硬盘的挂载信息全部注释掉,再 reboot , 这时候果然可以进入图形界面系统了。但依然看不到 /bioinfor 盘下的数据。能够开机就让我放心了很多。通过 gparted 工具,能够看到/dev/sda硬盘里used space大概是1.7T,还剩下1.9T左右,这就表示我的数据还在。试图通过 sudo umount /dev/sda 先取消挂载,再重新 sudo mount /dev/sda /bioinfor 挂载到/bioinfor路径,结果报错。

报错信息显示:

搜索网页发现,有一个哥们经历了跟我一样的遭遇, 意外断电造成mount挂载硬盘报错 。所以,这次事故是因为意外断电,基本实锤了。

但到底什么是superblock呢?

继续搜索,直到读到一篇技术文章 linux *** 作系统故障处理,ext4文件系统超级快损坏修复 。本文可以忽略,但这篇技术文章得认真读读。里面讲解了磁头,磁道,柱面,扇区,以及硬盘容量等等概念,以及最重要的inode和block,Superblock(超级块)概念。

既然报错提示Superblock出了问题,那我们就应该从这里入手。linux系统提供了一个磁盘命令 fsck 来尝试对设备进行修复。但可惜,用这个命令的时候,都会提醒你,应该安装最新的 fsck 工具包。

提示如下:

根据这篇文章 E2FSCK: how to handle the “metadata_csum” error by advancing the e2fsck version beyond default installed version 的提示,需要安装1.43X的 e2fsck , 安装方法小结如下。

检验一下是否更新成功:

能够看到已经更新到1.43.5版本。

安装完之后,开始对磁盘进行修复,命令如下:

一般都能修复完毕,然后可以再进行取消挂载或者重新挂载的 *** 作。看到数据都还完好无缺地在电脑上,还处于后怕的我赶紧掏出移动硬盘进行原始数据的备份

本次debug结束

这篇技术日志对读者可参考性并不高,是因为应用场合实在是少,(试想谁会天天断电呢),但还是有一些体会和感悟:

这个错误标识 /dev/sde1 设备上的 ext3 文件系统的超级块损坏了,ext3 文件系统的元数据保存在超级块中。

ext3 文件系统还有一些备份的超级块,可以尝试用备份的超级块加载 ext3 文件系统和修复 ext3 文件系统。

备份的超级块可以通过以下命令获得,这个命令模拟 ext3 文件系统创建时的动作并打印出备份超级块的位置,给出的位置缺省是以4k为单位的,mount 在使用时需要为它提供以1k为单位的偏移,需要乘4:

注意!一定要使用‘-n‘作为参数模拟 ext3 文件系统的创建而不是真的创建 ext3 文件系统

# mkfs.ext3 -n /dev/hda7

mke2fs 1.38

Filesystem label=

OS type: Linux

Block size=4096

Fragment size=4096

2198880 inodes, 4393738 blocks

219686 blocks reserved for the super user

First data block=0

135 block groups

32768 blocks per group, 32768 fragments per group

16288 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

4096000

使用备份的超级块来加载 ext3 文件系统的命令:

语法: mount.ext3 -o sb=n

# mount.ext3 -o sb=131072 /dev/hda7 /media/hda7

使用备份的超级块来修复 ext3 文件系统的命令

语法:fsck.ext3 -b superblock

# fsck.ext3 -b 32768 /dev/hda7

方法如下:下载安装硬盘坏道检测软件 HD TUNE 如果你安装的是xp系统的话可以在开始 所有程序 系统维护工具 中找到 双击打开 选择需要扫描的硬盘。然后选择错误扫描 (快速扫描不能勾哦 勾了检测不准确)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7297221.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存