恢复 EXT3 Superblock 的正确方法

转载 2007年09月14日 20:42:00

原贴:http://www.dbanotes.net/opensource/ext3_superblock_recovery.html

 

恢复 EXT3 Superblock 的正确方法

前几天遇到一个 Linux Ext3 文件系统超级块(Superblock)错误问题.

.... bad superblock on /dev/hda4
一个同事做的恢复, 结果把数据都抹掉了. 后来想想, 当时的直接 fsck 的恢复方法不对. 正确的方法应该是这样的:

 

1 获取错误的出错磁盘(或者设备)块的大小.
有很多种方法可以得到. 比如,

# tune2fs -l /dev/hda4
其实大多数情况下是 1 K.

 

2 对当前的出错磁盘备份.
恢复超级块(Superblock)的过程其实也是一个有风险的过程.能做备份就做好备份. 如果有其他空闲设备, 用 dd 命令把该设备上的内容备份起来.

3 一般来说, 超级块错基本上也就是主超级块错, 在 Ext2/Ext3 文件系统创建的时候, 会同时在屏幕上提示我们在已经在几个地方备份了超级块.那么怎么发现这些超级块在什么地方呢? 我们看看帮助信息:

-b superblock
Instead of using the normal superblock, use an alternative
superblock specified by superblock. This option is normally
used when the primary superblock has been corrupted. The loca-
tion of the backup superblock is dependent on the filesystem's
blocksize. For filesystems with 1k blocksizes, a backup
superblock can be found at block 8193; for filesystems with 2k
blocksizes, at block 16384; and for 4k blocksizes, at block
32768.

Additional backup superblocks can be determined by using the
mke2fs program using the -n option to print out where the
superblocks were created. The -b option to mke2fs, which spec-
ifies blocksize of the filesystem must be specified in order for
the superblock locations that are printed out to be accurate.

If an alternative superblock is specified and the filesystem is
not opened read-only, e2fsck will make sure that the primary
superblock is updated appropriately upon completion of the
filesystem check.

4 开始恢复.如果文件系统块大小为1K, 则我们可以用如下命令恢复:
# /sbin/fsck.ext3 -b 8193 /dev/hda4

如果这个备用块(8193)也有问题,那么 可以尝试 24577(8192*3+1) ,或者是 40961 (8192*5+1).

 

可能您也会看出来,超级块的保存位置是按照 1,3,5,7 这样的规律的. 具体的位置在 BlockSize(8192)*N+1. 在超过 500M 的空间上是这样的规律.小于 500M 的我不知道.那位知道告诉我一下,谢谢.

另外一篇指导: ext3 filesystem bad superblock recovery

| | Comments (0) | | Edit  

相关文章推荐

查看ext3文件系统分区的superblock

本文将介绍怎样读取一个分区的superblock: 1. 首先我们查看一下在磁盘上有哪些分区,通过fdisk -l 这里有三个分区,我们下面查看/dev/sda3(这是一个device f...

文件系统(ext2) inode、block、superblock概念整理

文件系统:一个可被挂载的数据称为文件系统,每个操作系统可以使用的文件系统并不一样,windows98是FAT或者FAT16文件系统,而windows2000以后有了NTFS文件系统,linux是ext...

EXT4 之superblock 结构体剖析

android ext4 文件系统superblock信息剖析

Ext-JS中Label的style阴影在chrome中汉字显示不正确处理方法

(其实这个显示问题不是Ext-JS的问题,是chrome(版本 40.0.2214.94 m)对等非粗体格式的汉字处理有问题) 初学Ext-JS,在练习过程中,想让Label字体显示阴影,就在其...

[Sencha ExtJS] 在浏览器访问 ext-6.x.x-trial.zip 里 examples示例 的正确方法

很多人不知道如何访问ext-6.x.x-trial.zip框架中的examples示例。 我这里统一说下。以ext-6.5.1为例。1、先去Sencha官网下载框架。 填一下 姓名、邮箱 等信息,...

wincc6.0 sp3正确安装方法

  • 2008-10-30 10:39
  • 21KB
  • 下载

linux下superblock的计数方法

原文地址http://groups.google.com/group/comp.os.linux.misc/browse_thread/thread/3b8d2276d0be9f81原文内容:====...

Ext3.x FileUploadField 上传文件 方法

首先导入需要的 js和css 前边js页面代码 fp = new Ext.

ExtJS3 中EXT.encode()处理json的问题及解决方法

encode( Mixed o ) : String Shorthand for Ext.util.JSON.encode Parameters: o : Mixed The va...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)