Ext4文件系统修复

Ext4文件系统修复

 

 目录

一、 super block.................................................................................................................................................

二、查看分区设备信息.....................................................................................................................................

三、查看备份块................................................................................................................................................

四、尝试修复超级块.........................................................................................................................................

1. 已知文件系统格式...................................................................................................................................

2. 不确定文件系统.......................................................................................................................................

 

一、super block

硬盘分区开头、开头的第一个bytebyte0,从byte1024开始往后的一部分数据。由于block size最小时1024bytes,所以superblockblock1中(此时block的大小正好是1024bytes),也可能是在block 0中。

超级块保存了文件系统设定的文件块大小、操作函数、inode链表等重要信息。

 

二、查看分区设备信息

 

一般情况下我们是能够通过一些命令查看到分区的一些信息,如果super block有损坏,则该分区设备则不能够正常使用,还有可能不能通过命令查看设备分区的信息。

命令:

dumpe2fs          /dev/sdb1

tune2fs     -h      /dev/sdb1

linux-iu82:/ # dumpe2fs -h /dev/sdb1
dumpe2fs 1.43.8 (1-Jan-2018)
Filesystem volume name:   <none>    #文件系统的名称
Last mounted on:          /a    #是否挂载及挂载点
Filesystem UUID:          cd22c2f7-d461-4cbe-973b-16d0b584a7b2
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean #正常,异常:clean with errors或not clean whith errors
Errors behavior:          Continue
Filesystem OS type:       Linux    #文件系统类型
Inode count:              655360    #inode总的个数
Block count:              2621440    #block总的个数
Reserved block count:     131072
Free blocks:              2554687    #空闲的block个数
Free inodes:              655344    #空闲的iNode个数
First block:              0    #第一个超级块编号=0
Block size:               4096    #块大小,这里是4k
Fragment size:            4096    #分块大小
Group descriptor size:    64
Reserved GDT blocks:      1024    #保留的GDT块大小
Blocks per group:         32768   #每个块组的block的个数
Fragments per group:      32768
Inodes per group:         8192    #每个块组的inode个数
Inode blocks per group:   512
…………

三、查看备份块

mkfs.ext4 -n /dev/sdb1(查看备份块时需要将分区卸载)

linux-iu82:/ # mkfs.ext4 -n /dev/sdb1
mke2fs 1.43.8 (1-Jan-2018)
/dev/sdb1 contains a ext4 file systemlast mounted on /a on Wed Jun 12 11:03:20 2019
Proceed anyway? (y,N) y
Creating filesystem with 2621440 4k blocks and 655360 inodes    #块大小4k
Filesystem UUID: 9e8e093e-183d-42ed-9e1f-b414673add53
Superblock backups stored on blocks:        #查看备份超级块32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

 

四、尝试修复超级块

  1. 1.   已知文件系统格式

    1.1.    在已知文件系统的情况下可以直接使用:

      mkfs.type -n /dev/sdb1

      进行查看分区的备份块。(注意查看备份块的时候需要将分区卸载)

    1.2.    尝试挂载备份块

    当文件系统出现损坏时,分区是挂载不上去的,这个时候尝试对分区备份块进行挂载,如果该备份超级块块可以被挂载上,并且上面数据没有问题,那么就可以使用该备份超级块进行修复

mount -t ext4 -o sb=131072 /dev/sdb1 /a        #以32768为例,block的大小是4k,而mount的sb参数的块大小是1k,所以挂载时需要进行单位转换,转换成1k则是32768*4=131072。
若挂载成功则可以使用该备份块进行修复

    1.3.    尝试使用备份块修复文件系统

      尝试修复前一定要先卸载该设备,否则会导致部分数据丢失

      且修复过程中需要确认的信息要自己观察分析,避免丢失数据

wyc:/ # fsck.ext4 -b 32768 /dev/sdb1
e2fsck 1.43.8 (1-Jan-2018)
/dev/sdb1 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong for group #6 (32254, counted=32253).
Fix<y>? yes
Free blocks count wrong for group #42 (32254, counted=32252).
Fix<y>? yes
Free blocks count wrong for group #50 (32254, counted=32253).
Fix<y>? yes
Free blocks count wrong for group #58 (32254, counted=32253).
Fix<y>? yes
Free blocks count wrong (2558144, counted=2558139).
Fix<y>? yes
Free inodes count wrong for group #0 (8181, counted=8180).
Fix<y>? yes
Free inodes count wrong for group #6 (8192, counted=8191).
Fix<y>? yes
Directories count wrong for group #6 (0, counted=1).
Fix<y>? yes
Free inodes count wrong for group #42 (8192, counted=8189).
Fix<y>? yes
Directories count wrong for group #42 (0, counted=1).
Fix ('a' enables 'yes' to all) <y>? yes
Free inodes count wrong for group #50 (8192, counted=8191).
Fix ('a' enables 'yes' to all) <y>? yes
Directories count wrong for group #50 (0, counted=1).
Fix ('a' enables 'yes' to all) <y>? yes
Free inodes count wrong for group #58 (8192, counted=8191).
Fix ('a' enables 'yes' to all) <y>? yes
Directories count wrong for group #58 (0, counted=1).
Fix<y>? yes
Free inodes count wrong (655349, counted=655342).
Fix<y>? yes/dev/sdb1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb1: 18/655360 files (0.0% non-contiguous), 63301/2621440 blocks

 

    1.4.    全部super block损坏修复(数据丢失风险大)

      在所有superblock损坏后,只能通过重建进行修复

      命令:  mkfs.ext4 -S /dev/sdb1

wyc:~ # mkfs.ext4 -S /dev/sdb1
mke2fs 1.43.8 (1-Jan-2018)
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: 5c9e2db1-5cf6-4353-b051-7eefef7c6018
Superblock backups stored on blocks:32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632Allocating group tables: done
/dev/sdb1 may be further corrupted by superblock rewrite
Proceed anyway? (y,N) y
Skipping journal creation in super-only mode
Writing superblocks and filesystem accounting information: done

      重建完成后进行修复:fsck.ext4 -y /dev/sdb1

wyc:~ # fsck.ext4 -y /dev/sdb1
e2fsck 1.43.8 (1-Jan-2018)
One or more block group descriptor checksums are invalid.  Fix<y>? yes
Group descriptor 0 checksum is 0x20a2, should be 0x8d20.  FIXED.
Group descriptor 1 checksum is 0x1342, should be 0xdec3.  FIXED.
Group descriptor 2 checksum is 0x1038, should be 0xddb9.  FIXED.
Group descriptor 3 checksum is 0xa34e, should be 0x6ecf.  FIXED.
Group descriptor 4 checksum is 0x1db9, should be 0xd038.  FIXED.
Group descriptor 5 checksum is 0xa2de, should be 0x6f5f.  FIXED.
Group descriptor 6 checksum is 0xf83c, should be 0x35bd.  FIXED.
Group descriptor 7 checksum is 0x4b4a, should be 0x86cb.  FIXED.
Group descriptor 8 checksum is 0x973c, should be 0x5abd.  FIXED.
Group descriptor 9 checksum is 0xe044, should be 0x2dc5.  FIXED.
Group descriptor 10 checksum is 0xe33e, should be 0x2ebf.  FIXED.
Group descriptor 11 checksum is 0xcf59, should be 0x02d8.  FIXED.
Group descriptor 12 checksum is 0xeebf, should be 0x233e.  FIXED.
Group descriptor 13 checksum is 0x9e92, should be 0x5313.  FIXED.
Group descriptor 14 checksum is 0xe851, should be 0x25d0.  FIXED.
Group descriptor 15 checksum is 0xc436, should be 0x09b7.  FIXED.
Group descriptor 16 checksum is 0x516a, should be 0x9ceb.  FIXED.
Group descriptor 17 checksum is 0xe962, should be 0x24e3.  FIXED.
Group descriptor 18 checksum is 0x3bc2, should be 0xf643.  FIXED.
Group descriptor 19 checksum is 0x75a2, should be 0xb823.  FIXED.
Group descriptor 20 checksum is 0xde81, should be 0x1300.  FIXED.

    修复完成直接进行挂载即可。

  1. 2.   不确定文件系统

    在不知道文件系统的情况下,可以使用fsck -r /dev/sdb1 命令进行修复(注意提示内容),这种修复可能会导致文件正常恢复,但是文件系统发生改变,比如原本是ext4,修复后变成了ext3或ext2,需要手动升级一下。(一般不建议此方法)

    命令:Fsck -r /dev/sdb1

wyc:~ # fsck -r /dev/sdb1
fsck from util-linux 2.29.2
e2fsck 1.43.8 (1-Jan-2018)
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
/dev/sdb1 was not cleanly unmounted, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences:  -(2138112--2162687)
Fix? yesFree blocks count wrong for group #16 (24544, counted=24543).
Fix? yesFree blocks count wrong for group #48 (24544, counted=24542).
Fix? yesFree blocks count wrong for group #64 (24544, counted=24543).
Fix? yesFree blocks count wrong (2554687, counted=2554683).
Fix? yesFree inodes count wrong for group #0 (8181, counted=8177).
Fix? yesFree inodes count wrong for group #16 (8192, counted=8191).
Fix? yesDirectories count wrong for group #16 (0, counted=1).
Fix? yesFree inodes count wrong for group #48 (8192, counted=8190).
Fix? yes

    修复后正常挂载即可。

 

转载于:https://www.cnblogs.com/xcbki/p/11288149.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

黑盒测试概念简述,黑盒测试优缺点、黑盒用例设计方法简单介绍及黑盒测试方法使用总结

黑色测试黑盒测试概念&#xff1a;黑盒的优缺点介绍&#xff1a;黑盒测试用例设计方法简单介绍&#xff1a;黑盒测试方法使用总结&#xff1a;黑盒测试概念&#xff1a; 又称功能测试或数据驱动测试&#xff0c;是用来检测每个功能是否正常使用。黑盒测试主要意味着测试要在软…

超文本css样式换行

之前有关于LODOP中纯文本换行的相关博文&#xff1a;Lodop纯文本英文-等符号自动换行问题纯文本的遇到不拆分的单词的时候&#xff0c;可以通过LODOP 语句设置允许标点溢出&#xff0c;且英文单词拆开。超文本需要通过css样式控制&#xff0c;相关博文&#xff1a;Lodop打印控件…

详述白盒测试逻辑覆盖法的语句覆盖及其缺点

语句覆盖的定义&#xff1a; 语句覆盖就是设计若干个测试用例&#xff0c;使被测试程序中的每条可执行语句至少执行一次。比如说我们测试用例里面有10个语句&#xff0c;那么这10个语句都要被测试到。 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01;…

HDU - 6183 Color it 2017广西邀请赛(线段树)

题目链接 题意&#xff1a; 有四种操作 0操作 清空所有点 1操作 在&#xff08;x,y&#xff09;处插入一个带颜色的点 2 操作统计(1~x)(y1~y2&#xff09;这个范围的不同的颜色数 3 结束 思路&#xff1a; 颜色数只有51个 我们可以建51颗线段树 因为每次查询都是1~x范围的 所以…

详述白盒测试的逻辑覆盖法的判定覆盖及其优缺点

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 详述白盒测试的逻辑覆盖法的判定覆盖及其优缺点&#xff1…

【SDOI 2014】数表

题意 https://www.luogu.org/problem/P3312 题解 显然就是求 $\sum_{i1}^{n} \sum_{j1}^{m} \sigma_1(\gcd{(i,j)})\times [gcd(i,j)\le a]$&#xff08;$\sigma_1(x)$ 表示求 $x$ 的所有约数之和&#xff09;&#xff0c;看到 $gcd$ 就知道是莫比乌斯反演基础题吧 如果不考虑 …

详述白盒测试的逻辑覆盖的条件覆盖及其优缺点

条件覆盖详述白盒测试的逻辑覆盖的条件覆盖及其优缺点&#xff1a;条件覆盖的定义&#xff1a;与判定覆盖的区别&#xff1a;条件覆盖率&#xff1a;测试实例&#xff1a;代码&#xff1a;优缺点&#xff1a;详述白盒测试的逻辑覆盖的条件覆盖及其优缺点&#xff1a; https://b…

react判断点击位置是否为组件内,实现点击外部触发组件内事件

1.导入 import {findDOMNode} from react-dom2.绑定ref<div ref"refTest" </div> 3.绑定监听事件//监听外部clickcomponentDidMount() {document.addEventListener(mousedown, (e)>this.handleClickOutside(e), false);}componentWillUnmount() {docume…

详述白盒测试的逻辑覆盖法的条件判定覆盖及其优缺点

条件判定覆盖的定义&#xff1a; 设计足够多的测试用例&#xff0c;使被测程序中每个判定的每个条件的所有可能取值&#xff08;真假&#xff09;至少执行一次&#xff0c;并且每个判定的所有可能&#xff08;真假&#xff09;分支也至少执行一次 。通俗来讲&#xff0c;就是条…

Cisco 4507R+E四引擎VSS故障解决

如果可以要做双引擎VSS(每个机箱1个引擎), 3.6.7版本可以实现 如果需要做4引擎VSS(每个机箱2个引擎) 请使用3.8.x和之后的版本. 转载于:https://www.cnblogs.com/networking/p/8678009.html

利用可视化软件navicat对mysql进行语句查询的使用(增删改查)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 增&#xff1a;insert 语法&#xff1a;INSERT [INTO] 表…

C# 3.0入门系列(三)

从本节开始&#xff0c;笔者将会和大家一起开始体验dlinq了。前面我们准备了数据库&#xff0c;也对数据库之间的关系做了初步的了解。有了数据库之后&#xff0c;数据和对象是一个什么样的关系呢&#xff1f;从dlinq的设计来看&#xff0c;它主要是为了解决data!objects 的问题…

(Navicat for MySQL)利用可视化软件navicat操作mysql,创建一个表举例(基础)

https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&#xff08;如不注明&#xff0c;盗者必究&#xff09; 步骤&#xff1a; 首先我们打开navicat:先点击下图中的表…

eclipse中egit插件使用

这篇文章当时制作有点粗糙&#xff0c;建议阅读升级版&#xff1a;eclipse中egit插件使用--升级版 使用git作为项目的代码管理工具现在是越来越火&#xff0c;网上有各种各样的文章、博客、讨论&#xff0c;其中以命令行居多。使用eclipse作为开发工具的人也是很多&#xff0c;…

大型项目之一云多端

以下纯属个人意淫&#xff1a; 随着各种小程序的出现,前端开发面临一个问题,就是同一个项目需要在不同的小程序展示,甚至还有h5版 pc web版,如果真对不同的端编写同样一套代码,显然是多余的&#xff0c;这有点像app的发展过程,自从ios和安卓出现之后,人们就从来没有放弃过使用一…

以VMware workstation15.5.2pro为例如何新建虚拟机,安装镜像文件(最新)

需要用到VMware软件与镜像文件:链接:https://blog.csdn.net/hanhanwanghaha/article/details/105674470 第一步:打开VMware,点击创建新的虚拟机 第二步:选择典型,点击下一步 第三步:选择安装程序光盘镜像文件,并且下面提示已经检测到,再点击下一步

续--Flask, Django - 区别

1. 目录结构 参考&#xff1a;https://blog.csdn.net/yang9520/article/details/79740374 中文文档&#xff08;http://docs.jinkan.org/docs/flask/&#xff09;一般情况下&#xff0c;Django很系统、统一。Flask项目目录风格不同一&#xff0c;即使用上了蓝图。 2…

VMware workstation 15.5.2及镜像文件下载

链接: https://pan.baidu.com/s/175imV_FeTFcitFHay07vHQ 提取码: ayh3 希望对大家有用&#xff01; https://blog.csdn.net/hanhanwanghaha一个超级无敌可爱的人鸭 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出…

matplotlib setting zh-hans

1 from matplotlib import pyplot as plt2 from matplotlib import font_manager3 4 import random5 #                             you font famaily location6 font_pro font_manager.FontProperties(fnameC:\Windows\Fonts\SIMYOU.TTF)7 8 9 …

无法连接虚拟设备 floppy0,因为主机上没有相应的设备。 您要在每次开启此虚拟机时都尝试连接此虚拟设备吗?

如果出现以上情况&#xff0c;应该是没有连接镜像文件&#xff0c;在添加镜像文件的地方添加镜像文件就可以了 https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注&#xff01; 欢迎关注微信公众号&#xff1a;宝藏女孩的成长日记 如有转载&#xff0c;请注明出处&…