120gbytesのdisk2台で、raid1でmirrorして
いるのですが、うち一台の最初と真ん中あたりに
不良ブロックが有り、そこにaccessしたら
arrayからはずされてしまうようです。
なんとか、不良ブロックを避けてraidを構成できないでしょうか。
ほんの数ブロックなもんで。
しかもお金もないし。
よろしくお願いします。
どういう raid ツール(ソフトウェア/ハードウェア)を
つかっているか不明 なのでなんともいえませんが、
- 正常なほうのディスクにもバッドブロックを定義して
強引に 双方のディスクでそこのアクセスを排除するとか
(SCSI ディスクで、ベンダー提供のツール/文書があれば。)
- ソフトウェアで ロジカルなブロックのマッピングを
変更するツールをつかいそのブロックへのアクセスを避ける。
(これまたベンダー提供のツールがあれば。)
というようなことが個々の環境でいろいろ考慮できるかと
おもいます。
しかし、120GB ということは最近の IDE ディスクでしょうか?
だとすると、私ならすっぱりあきらめてディスクを
買い換えることを考慮します。
最近のディスクでバッドブロックがでるというのは、もはや
隠し代替えセクターなどもまったくないというかなり
とほほな状態なので、あまり raid1 するにしても使いたくない状況です。
バッドブロックがでたものはパーティションを切り替えて、そこをはずして
単体でつかえないこともないかとはおもいますが。
(ああ、パーティションを切り替えて、バッドブロックがでているところを
はずしたようなディスク構成にして再度 raid を組み直すというような
方法もあるかもしれません。でも上にのべたように、
別のところでバッドブロックがでたときに、もはや代替セクターなどが
ないので、いきなりそこもバッド状態になりますから、
次にいつバッドブロックがでるか不明ですが、そのときに
また パーティションを切り直して対応できるかどうかはどうでしょう?)
ディスクの内部ではそれなりの頻度でバッドブロックが発生していて
それを代替部分にマッピングしなおすことで外に見せないように
工夫しているわけで、それが隠しきれなくなった状態のディスクは
ミラーリングなどをするに足るような重要な
データにはもはや利用しないほうがいいとおもわれます。
が、これは個々の状況での判断に任せるしかないわけですが。
> どういう raid ツール(ソフトウェア/ハードウェア)を
> つかっているか不明 なのでなんともいえませんが、
ご指摘のとおりide2台で構成しております。
したがって、
> - 正常なほうのディスクにもバッドブロックを定義して
> 強引に 双方のディスクでそこのアクセスを排除するとか
> (SCSI ディスクで、ベンダー提供のツール/文書があれば。)
>
> - ソフトウェアで ロジカルなブロックのマッピングを
> 変更するツールをつかいそのブロックへのアクセスを避ける。
> (これまたベンダー提供のツールがあれば。)
>
は、無理です。
> しかし、120GB ということは最近の IDE ディスクでしょうか?
> だとすると、私ならすっぱりあきらめてディスクを
> 買い換えることを考慮します。
ですよね。
> バッドブロックがでたものはパーティションを切り替えて、そこをはずして
> 単体でつかえないこともないかとはおもいますが。
と重い、partitionをきりなおして、もう一度badblocksを
かけたらまたぞろぞろとbadblocksがでてきました。
どうも、切り方が悪かったのか、内部のhardwareてきなことなのか
うんざりしてきました。
生きてるdiskが大丈夫なうちに
もう一台買うことにします。
有り難うございました。
やっぱり駄目でしたか。
内部のハードウェア(メディアの)的な問題だとおもいます。
技術の進歩がはげしいので、すこし古い話になってしまいますが、
廉価なATAディスクなどでは
メディアの問題に対処するために、だいたい数パーセントの
隠しセクターをもっていて、内部でCRCなどを利用してエラー
補正しつつ、あまりエラーの頻度が多いものは、その
部分がバッドだということで利用をやめて
隠しセクターにマップしなおして、外には正常に見せるという
ことをしています。
ですから、ATAディスクを作っている側からすれば、そもそも
まともに動作しているようなディスクではバッドブロックなど
でるはずがないというような幻想をユーザが抱けるように
たいへんな工夫をして作っているそうです。
(と内部のファームウェアとか上の代替の工夫を知る立場の
人が書いていたのを読んだことがあります。)
こういったメディアの劣化は定常的に起きており、
「正常」ディスクでも起きているはず。ただし、量がすくないので
寿命がつきるまでバッドブロックが外には見えてきません。
で、この数パーセントの隠しセクターを使いきってしまうと
アウトで、その後に発生する劣化セクターはもはや代替して
隠すことができず、いきなりバッドブロックとして
外に見えてしまいます。まさに今回はこれではないでしょうか。
ディスクがこわれると出費もあり、データの移動なども
頭が痛い問題ですね。
ハードウェアの寿命とか不良の発生には
諦観してつきあうしかないかとおもいます。
残念でしたね。
--
int main(void){int j=2003;/*(c)2003 cishikawa. */
char t[] ="<CI> @abcdefghijklmnopqrstuvwxyz.,\n\"";
char *i ="g>qtCIuqivb,gCwe\np@.ietCIuqi\"tqkvv is>dnamz";
while(*i)((j+=strchr(t,*i++)-(int)t),(j%=sizeof t-1),
(putchar(t[j])));return 0;}/* under GPL */
> やっぱり駄目でしたか。
> 内部のハードウェア(メディアの)的な問題だとおもいます。
ですね。
> 技術の進歩がはげしいので、すこし古い話になってしまいますが、
> 廉価なATAディスクなどでは
> メディアの問題に対処するために、だいたい数パーセントの
.
.
.
<省略>
.
.
> で、この数パーセントの隠しセクターを使いきってしまうと
> アウトで、その後に発生する劣化セクターはもはや代替して
> 隠すことができず、いきなりバッドブロックとして
> 外に見えてしまいます。まさに今回はこれではないでしょうか。
勉強になります。
> ディスクがこわれると出費もあり、データの移動なども
> 頭が痛い問題ですね。
まったくです。
> ハードウェアの寿命とか不良の発生には
> 諦観してつきあうしかないかとおもいます。
仰るとおり。
> 残念でしたね。
はい。昨日発注しました。
お世話になりました。