ext3分区修复linux,ext3文件系统超级块损坏修复

按照提示,一路y后。

mount /dev/sde1 /foo

mount: wrong fs type, bad option, bad superblock on

/dev/sde1,

or too many mounted file

systems

的问题。请问这种问题怎么能解决呢?

回答:

这个错误信息标识 /dev/sde1 设备上的 ext3

文件系统的超级块损坏了,ext3 文件系统的元数据保存在超级块中。

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

文件系统和修复 ext3 文件系统。

备份的超级块信息可以通过以下命令获得,这个命令模拟 ext3

文件系统创建时的动作并打印出备份超级块的位置,给出的位置缺省是以4k为单位的,mount

在使用时需要为它提供以1k为单位的偏移,需要乘4:

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

文件系统

# mkfs.ext3 -n /dev/hda7

mke2fs 1.38 (30-Jun-2005)

Filesystem

label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096

(log=2)

2198880 inodes, 4393738 blocks

219686 blocks (5.00%) 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

-----------------------------------------

1,一服务器/dev/sdb文件系统损坏,重启后系统启不来,进入单用户模式fsck无法修复,把/etc/fstab中的/dev/sdb注释掉后,系统成功起来。

2,mount挂载/dev/sdb提示bad superblock 错误,无法正常挂载:

[root@localhost ~]# mount /dev/sdb /test

mount: wrong fs type, bad option, bad superblock on /dev/sdb,

or too many mounted file systems

3,尝试直接指定备用超级块来挂载分区。通过mkfs -n可以查看到备份超级块的位置:

[root@localhost ~]# mkfs.ext3 -n /dev/sdb

mke2fs 1.35 (28-Feb-2004)

/dev/sdb is entire device, not just one partition!

Proceed anyway? (y,n) y

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

365854720 inodes, 731688960 blocks

36584448 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=4294967296

22330 block groups

32768 blocks per group, 32768 fragments per group

16384 inodes per group

Superblock backups stored on blocks:

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

4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,

102400000, 214990848, 512000000, 550731776, 644972544也可以通过dumpe2fs查看备份超级块的位置:

[root@localhost ~]# dumpe2fs /dev/sdb | grep –before-context=1 superblock

dumpe2fs 1.35 (28-Feb-2004)

Group 0: (Blocks 0-32767)

Primary superblock at 0, Group descriptors at 1-175

Group 1: (Blocks 32768-65535)

Backup superblock at 32768, Group descriptors at 32769-32943

Group 3: (Blocks 98304-131071)

Backup superblock at 98304, Group descriptors at 98305-98479

Group 5: (Blocks 163840-196607)

Backup superblock at 163840, Group descriptors at 163841-164015

Group 7: (Blocks 229376-262143)

Backup superblock at 229376, Group descriptors at 229377-229551

Group 9: (Blocks 294912-327679)

Backup superblock at 294912, Group descriptors at 294913-295087

Group 25: (Blocks 819200-851967)

Backup superblock at 819200, Group descriptors at 819201-819375

Group 27: (Blocks 884736-917503)

Backup superblock at 884736, Group descriptors at 884737-884911

Group 49: (Blocks 1605632-1638399)

Backup superblock at 1605632, Group descriptors at 1605633-1605807

Group 81: (Blocks 2654208-2686975)

Backup superblock at 2654208, Group descriptors at 2654209-2654383

Group 125: (Blocks 4096000-4128767)

Backup superblock at 4096000, Group descriptors at 4096001-4096175

Group 243: (Blocks 7962624-7995391)

Backup superblock at 7962624, Group descriptors at 7962625-7962799

4,用查看到的备份超级块来挂载/dev/sdb,也无法成功:

[root@localhost ~]# mount -o sb=32768 /dev/sdb /test

mount: wrong fs type, bad option, bad superblock on /dev/sdb,

or too many mounted file systems分区情况如下:

[root@localhost ~]# fdisk -l

Disk /dev/sda: 998.9 GB, 998999326720 bytes

255 heads, 63 sectors/track, 121454 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          16      128488+  83  Linux

/dev/sda2              17        6390    51199155   83  Linux

/dev/sda3            6391       12764    51199155   83  Linux

/dev/sda4           12765      121454   873052425    5  Extended

/dev/sda5           12765       13796     8289508+  82  Linux swap

/dev/sda6           13797      121454   864762853+  83  Linux

Disk /dev/sdb: 2996.9 GB, 2996997980160 bytes

255 heads, 63 sectors/track, 364364 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn’t contain a valid partition table

[root@localhost ~]# parted /dev/sdb

GNU Parted 1.6.19

Copyright (C) 1998 - 2004 Free Software Foundation, Inc.

This program is free software, covered by the GNU General Public License.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

Using /dev/sdb

(parted) print

Disk geometry for /dev/sdb: 0.000-2858160.000 megabytes

Disk label type: loop

Minor    Start       End     Filesystem  Flags

1          0.000 2858160.000  ext3

(parted) quit

Information: Don’t forget to update /etc/fstab, if necessary.

5,尝试用备份超级块去fsck修复分区,报“illegal bitmap block”错误,也无法成功:

[root@localhost ~]# fsck.ext3 -b 32768 /dev/sdb

e2fsck 1.35 (28-Feb-2004)

Block bitmap for group 4992 is not in group.  (block 809140608)

Relocate? yes

Inode bitmap for group 4992 is not in group.  (block 5385)

Relocate? yes

Inode table for group 4992 is not in group.  (block 1295485238)

WARNING: SEVERE DATA LOSS POSSIBLE.

Relocate? yes

Block bitmap for group 4993 is not in group.  (block 0)

Relocate? yes

Inode bitmap for group 4993 is not in group.  (block 0)

Relocate? yes

Inode bitmap for group 21631 is not in group.  (block 171349112)

Relocate? cancelled!

Inode table for group 21631 is not in group.  (block 0)

WARNING: SEVERE DATA LOSS POSSIBLE.

Relocate? cancelled!

fsck.ext3: e2fsck_read_bitmaps: illegal bitmap block(s) for /dev/sdb

[root@localhost ~]# fsck.ext3 -b 163840 /dev/sdb

e2fsck 1.35 (28-Feb-2004)

Block bitmap for group 4992 is not in group.  (block 809140608)

Relocate? yes

Inode bitmap for group 4992 is not in group.  (block 5385)

Relocate? cancelled!

Inode table for group 4992 is not in group.  (block 1295485238)

WARNING: SEVERE DATA LOSS POSSIBLE.

Relocate? cancelled!

Inode bitmap for group 21631 is not in group.  (block 171349112)

Relocate? cancelled!

Inode table for group 21631 is not in group.  (block 0)

WARNING: SEVERE DATA LOSS POSSIBLE.

Relocate? cancelled!

fsck.ext3: e2fsck_read_bitmaps: illegal bitmap block(s) for /dev/sdb

6,直接fsck -y修复分区,也是报一样的错误:

[root@localhost ~]# fsck.ext3 -y /dev/sdb

e2fsck 1.35 (28-Feb-2004)

Group descriptors look bad… trying backup blocks…

Block bitmap for group 4992 is not in group.  (block 809140608)

Relocate? yes

Inode bitmap for group 4992 is not in group.  (block 5385)

Relocate? yes

Inode table for group 4992 is not in group.  (block 1295485238)

WARNING: SEVERE DATA LOSS POSSIBLE.

Relocate? yes

Block bitmap for group 4993 is not in group.  (block 0)

Relocate? yes

Inode bitmap for group 4993 is not in group.  (block 0)

Relocate? yes

Inode table for group 4993 is not in group.  (block 567580784)

WARNING: SEVERE DATA LOSS POSSIBLE.

Relocate? yes

Block bitmap for group 4994 is not in group.  (block 0)

Relocate? yes

Block bitmap for group 21630 is not in group.  (block 0)

Relocate? yes

Inode bitmap for group 21630 is not in group.  (block 0)

Relocate? yes

Inode table for group 21630 is not in group.  (block 0)

WARNING: SEVERE DATA LOSS POSSIBLE.

Relocate? yes

Block bitmap for group 21631 is not in group.  (block 0)

Relocate? yes

Inode bitmap for group 21631 is not in group.  (block 171349112)

Relocate? yes

Inode table for group 21631 is not in group.  (block 0)

WARNING: SEVERE DATA LOSS POSSIBLE.

Relocate? yes

fsck.ext3: e2fsck_read_bitmaps: illegal bitmap block(s) for /dev/sdb

7,终极大法,用mke2fs -S重新生成超级块(注:此为实在没办法才执行的,不成功的话则全部数据会有丢失的可能),修复成功了!!

[root@localhost ~]# mke2fs -S /dev/sdb

mke2fs 1.35 (28-Feb-2004)

/dev/sdb is entire device, not just one partition!

Proceed anyway? (y,n) y

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

365854720 inodes, 731688960 blocks

36584448 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=4294967296

22330 block groups

32768 blocks per group, 32768 fragments per group

16384 inodes per group

Superblock backups stored on blocks:

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

4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,

102400000, 214990848, 512000000, 550731776, 644972544

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 39 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

8,终于可以将分区挂载上了:

[root@localhost ~]# mount /dev/sdb /test

9,用tune2fs -l查看/dev/sdb,发现状态为:not clean with errors,浏览文件发现其中还是有很多文件是损坏的:

[root@localhost ~]# tune2fs -l /dev/sdb

tune2fs 1.35 (28-Feb-2004)

Filesystem volume name:   Last mounted on:          Filesystem UUID:          2f3e8c46-64c0-4346-b7f6-edcfd457617a

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      resize_inode filetype sparse_super

Default mount options:    (none)

Filesystem state:         not clean with errors

Errors behavior:          Continue

Filesystem OS type:       Linux

Inode count:              365854720

Block count:              731688960

Reserved block count:     36584448

Free blocks:              720188790

Free inodes:              365854720

First block:              0

Block size:               4096

Fragment size:            4096

Reserved GDT blocks:      849

Blocks per group:         32768

Fragments per group:      32768

Inodes per group:         16384

Inode blocks per group:   512

Filesystem created:       Fri Feb 18 14:37:14 2011

Last mount time:          Fri Feb 18 14:37:33 2011

Last write time:          Fri Feb 18 14:37:33 2011

Mount count:              1

Maximum mount count:      39

Last checked:             Fri Feb 18 14:37:14 2011

Check interval:           15552000 (6 months)

Next check after:         Wed Aug 17 14:37:14 2011

Reserved blocks uid:      0 (user root)

Reserved blocks gid:      0 (group root)

First inode:              11

Inode size:               128

Default directory hash:   tea

Directory Hash Seed:      72bc7ce8-d9db-40c4-8ee8-85e169dd4bc5

10,只有再用fsck修复下/dev/sdb,分区2T多,修复了9个小时:

[root@localhost ~]# fsck.ext3 -y /dev/sdb

e2fsck 1.35 (28-Feb-2004)

/dev/sdb contains a file system with errors, check forced.

Pass 1: Checking inodes, blocks, and sizes

Journal inode is not in use, but contains data.  Clear? yes

Inode 177963137 is in use, but has dtime set.  Fix? yes

Inode 177963137 has imagic flag set.  Clear? yes

Inode 177963147 is in use, but has dtime set.  Fix? yes

Inode 177963147 has imagic flag set.  Clear? yes

Inode 177963155 is in use, but has dtime set.  Fix? yes

Inode 177963155 has imagic flag set.  Clear? yes

Inode 177963156 is in use, but has dtime set.  Fix? yes

Inode 177963156, i_blocks is 4294967295, should be 0.  Fix? yes

Inode 177963155 has compression flag set on filesystem without compression support.  Clear? yes

Inode 177963155 has INDEX_FL flag set but is not a directory.

11,修复完成后,/dev/sdb分区能够正常使用,此时发现文件系统变成ext2的了:

[root@localhost ~]# df -hT

Filesystem    Type    Size  Used Avail Use% Mounted on

/dev/sda3     ext3     49G   36G   11G  78% /

/dev/sda6     ext3    812G  750G   22G  98% /bk

/dev/sda1     ext3    122M   13M  103M  12% /boot

none         tmpfs    3.9G     0  3.9G   0% /dev/shm

/dev/sda2     ext3     49G  3.2G   43G   7% /opt

/dev/sdb      ext2    2.7T  2.3T  349G  87% /test

12,用tune2fs -j把分区转成ext3:

[root@localhost ~]# tune2fs -j /dev/sdb

tune2fs 1.35 (28-Feb-2004)

Creating journal inode: done

This filesystem will be automatically checked every 39 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

13,成功了,分区状况也正常了,分区大部份数据还在,也能正常使用了,over:

[root@localhost ~]# tune2fs -l /dev/sdb

tune2fs 1.35 (28-Feb-2004)

Filesystem volume name:   Last mounted on:          Filesystem UUID:          2f3e8c46-64c0-4346-b7f6-edcfd457617a

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal resize_inode filetype sparse_super large_file

Default mount options:    (none)

Filesystem state:         clean

Errors behavior:          Continue

Filesystem OS type:       Linux

Inode count:              365854720

Block count:              731688960

Reserved block count:     36584448

Free blocks:              120881374

Free inodes:              360051869

First block:              0

Block size:               4096

Fragment size:            4096

Reserved GDT blocks:      849

Blocks per group:         32768

Fragments per group:      32768

Inodes per group:         16384

Inode blocks per group:   512

Filesystem created:       Fri Feb 18 14:37:14 2011

Last mount time:          Mon Mar  7 16:52:54 2011

Last write time:          Tue Mar 15 11:45:42 2011

Mount count:              4

Maximum mount count:      39

Last checked:             Fri Feb 18 22:44:35 2011

Check interval:           15552000 (6 months)

Next check after:         Wed Aug 17 22:44:35 2011

Reserved blocks uid:      0 (user root)

Reserved blocks gid:      0 (group root)

First inode:              11

Inode size:               128

Journal inode:            8404993

Default directory hash:   tea

Directory Hash Seed:      72bc7ce8-d9db-40c4-8ee8-85e169dd4bc5

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值