ReiserFS檔案系統壞塊的處理(轉)

post0發表於2007-08-11
ReiserFS檔案系統壞塊的處理(轉)[@more@]

這份文件描述了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 vitaly@namesys.com).

This document is available at

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-945490/,如需轉載,請註明出處,否則將追究法律責任。

相關文章