有很多种方法可以得到.
比如,
#
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
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
的我不知道.那位知道告诉我一下,谢谢.
这个错误标识 /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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)