ReiserFS文件系统坏块的处理

ReiserFS文件系统坏块的处理
2006-02-06 17:48 pm
作者:NetDC
来自:linux宝库 (http://www.linuxmine.com)
现存:http://www.linuxmine.com/5129.html
联系:linuxmine#gmail.com

不明白?欢迎到 linux论坛 (http://bbs.linuxmine.com) 参加讨论!

这份文档描述了reiserfsprogs-3.6.12-pre1或更高版本的坏块处理
问题

1. 我的硬盘有坏块吗?
2. 如何得到我硬盘坏块的列表?
3. 我的硬盘有坏块,我该怎么做?
4. 我的系统reiserfs区有坏块,我该怎么做?
5. 我如何在有坏块的设备上创建一个reiserfs文件系统?
6. 我如何检测一个reiserfs文件系统是否有坏块?
7. 我如何才能在一个reiserfs区上调整坏块列表?
8. 我如何才能取得存在reiserfs上的坏块列表?
9. 我怎样在一个已加载的reiserfs文件系统上标识一个坏块?

回答

我的硬盘有坏块吗?
如何得到我硬盘坏块的列表?
查看你的硬盘是否有坏块,你可以运行

/sbin/badblocks [-b ] device
运行结果是设备 device的坏块列表,可以把他保存成文件。
如果你想让reiserfs的工具利用坏块列表,不要忘记为命令badblocks 指定reiserfs-block-size。默认的reiserfs块大小是4k,你也可以使用debugreiserfs device的输出来获得块的大小。
我的硬盘有坏块,我该怎么做?
你可以试着用dd 或dd_rescue 来写入坏块,驱动一般会将他们重新映射到新的块中,(现代的驱动会去写而不是读modern drives do this in response to write, but not reads)。需要注意的是使用带有坏块的硬盘通常会使硬盘坏的更快,这时你需要考虑购买一块新的硬盘来替代了。
我的系统reiserfs区有坏块,我该怎么做?
ReiserFS 只能处理处于数据区的坏块,不能处理处于系统区的--象super block,journal,bitmap。
如果驱动没有重新映射坏块(参看?#25105;的硬盘有坏块,我该怎么做??#65289;,那么你就不能在这个区使用reiserfs,请使用dd_rescue 来进行备份,然后对备份下来的执行reiserfsck 。
我如何在有坏块的设备上创建一个reiserfs文件系统?
如果你有一个设备坏块的列表文件(参看?#22914;何得到我硬盘坏块的列表??#65289;,那么你可以使用下面的命令:

mkreiserfs --badblocks file device
需要记住的使reiserfs默认的块大小使4k,要与badblocks 命令指定的块大小相同。
我如何检测一个reiserfs文件系统是否有坏块?
如果你只是要检测一下文件系统,那么你可以使用不带任何参数的reiserfsck。
如果你需要修正reiserfs区中的坏块,使用:

reiserfsck --badblocks file device
file 包含了设备上的所有坏块的列表。
如果你需要在一个带有坏块的设备上重建一个reiserfs区,你就需要指定所有的坏块:

reiserfsck --rebuild-tree --bad-badblocks file device
file 包含了设备上的所有坏块的列表。(参见?#22914;何得到我硬盘坏块的列表??#65289;
我如何才能在一个reiserfs区上调整坏块列表?
如果你需要调整坏块列表,可以使用:

reiserfstune --badblocks file device
或者

reiserfstune --add-badblocks file device
file 包含了被标记为坏块的列表。参数--badblocks 在将给定的列表作为坏块列表前清除reiserfs上的坏块列表(译者注:这句话怪怪的,我也搞不清楚,希望有人给指出),而-add-badblocks只是简单的将列表作为reiserfs区坏块列表。
如果reiserfs有一些损坏或者reiserfstune拒绝执行,使用reiserfsck 来代替。(参看:?#25105;如何检测一个reiserfs文件系统是否有坏块??#65289;
我如何才能取得存在reiserfs上的坏块列表?
要取得已经标记在reiserfs区上的坏块列表,运行

debugreiserfs -B file device
file 是存储坏块列表的文件名。
需要记住的是,如果reiserfs区受到了致命的损坏(Remember that if the reiserfs partition has fatal corruptions in the tree,译者注:这里in the tree不知道如何解释),坏块列表也许会变得不可用,(参看:?#22914;何得到我硬盘坏块的列表??#65289;
我怎样在一个已加载的reiserfs文件系统上标识一个坏块?
你需要给你的内核打下面的补丁:

linux-2.4.19-badblocks.diff

linux-2.4.22-badblocks.diff
这个补丁为ReiserFS 提供新的ioctl()命令来使我们可以在不卸载文件系统的情况下标记一个给定的块为used或free。
然后使用命令reiserfs-add-badblock:

reiserfs-add-badblock block used
如果你将坏块列表存储在文件file中,而且在这个块设备中reiserfs被加载在/path_to/reiserfs-mount-point 上,你可以使用:

while read
do
reiserfs-add-badblock /path_to/reiserfs-mount-point $REPLY used
done < file


Best viewed through browser supporting style-sheets properly.

Last modified: Sat Nov 1 19:24:19 2003 (maintained by Vitaly Fertman [email protected]).

This document is available at http://namesys.com/bad-block-handling.html


不明白?欢迎到 linux论坛 (http://bbs.linuxmine.com) 参加讨论!

你可能感兴趣的:(ReiserFS文件系统坏块的处理)