Chinaunix首页 | 论坛 | 博客
  • 博客访问: 711988
  • 博文数量: 139
  • 博客积分: 7607
  • 博客等级: 少将
  • 技术积分: 1964
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-11 23:43
个人简介

...

文章分类

全部博文(139)

文章存档

2012年(53)

2011年(4)

2010年(29)

2009年(10)

2008年(33)

2007年(10)

分类: LINUX

2012-04-10 15:12:30

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

 

2mount挂载/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 de
scriptors at 1-175

Group 1: (Blocks 32768-65535)
  Backup superblock at 32768, Group de
script
ors at 32769-32943

Group 3: (Blocks 98304-131071)
  Backup superblock at 98304, Group de
script
ors at 98305-98479

Group 5: (Blocks 163840-196607)
  Backup superblock at 163840, Group de
script
ors at 163841-164015

Group 7: (Blocks 229376-262143)
  Backup superblock at 229376, Group de
script
ors at 229377-229551

Group 9: (Blocks 294912-327679)
  Backup superblock at 294912, Group de
script
ors at 294913-295087

Group 25: (Blocks 819200-851967)
  Backup superblock at 819200, Group de
script
ors at 819201-819375

Group 27: (Blocks 884736-917503)
  Backup superblock at 884736, Group de
script
ors at 884737-884911

Group 49: (Blocks 1605632-1638399)
  Backup superblock at 1605632, Group de
script
ors at 1605633-1605807

Group 81: (Blocks 2654208-2686975)
  Backup superblock at 2654208, Group de
script
ors at 2654209-2654383

Group 125: (Blocks 4096000-4128767)
  Backup superblock at 4096000, Group de
script
ors at 4096001-4096175

Group 243: (Blocks 7962624-7995391)
  Backup superblock at 7962624, Group de
scriptors 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 de
scriptors 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

阅读(3037) | 评论(2) | 转发(4) |
0

上一篇:Mysql Explain 详解

下一篇:mysql优化

给主人留下些什么吧!~~

godymoon2012-04-11 12:32:43

文件系统变成ext2的是因为用mke2fs 的原因吧

桔子T恤2012-04-11 00:07:32

单用户模式fsck无法修复