TomBuの日記: 1TBのUSB外付けハードディスクをext3でフォーマットしたらエラー 5
日記 by
TomBu
サガン鳥栖は今年はもうダメのようです。
あきらめました。
さて、外付けハードディスクを自宅のサーバに増設しようとして、
fdiskで領域確保→mkfs(mke2fs)でext3でフォーマット、とやろうとすると、
ext2fs_mkdir: Attempt to read block from filesystem resulted in short read while creating root dir
と言われてmkfsが完了しない。
ググってみると英語のフォーラムで「HDにハード的な障害があるんじゃね」とか言ってるところがある。
小分けにして初期化したら、というアドバイスはあったが解決した話は残念ながら無いようだ。
どうしたらいいのか知ってる人いる?
バッドブロックが残念な場所にあるとか (スコア:1)
ハードディスクのリロケート機能に期待して、
まずはbadblocksしてみるとか・・・
って、もうやってるでしょうが。
S.M.A.R.T値に現れてるかどうかも興味あります。
すみません、他人のディスク障害に興味あるだけの野次馬で…
屍体メモ [windy.cx]
多分、SSDが報告している数だけのブロックが存在しないんじゃないかと (スコア:1)
HDDなんかでもよくあるんですが、「1000個のブロックがあります」と報告してくるので「ブロック1」から数え始めて「ブロック1000」まで書こうとすると、書けない…なんてことがあります。
『えーーーーー???!』と言いながら、「存在しないはずの」ブロック0を書きに行くと書けたりする…
# もちろん大抵のものは、1..1000 が存在して0が存在しない。
というわけで、fdisk の段階でわざと「1引いた値のブロック数」で確保してみる、というのが手としてあります。
.
で、それとは別に。
そもそもこの問題って、「HDDであれSSDであれ、全体を使おうとする」と発見されるものです。で、1つ質問が。
「FlashROMの全体を使おうっていう時に、なんで partition を切るの?!」
partition table をつくると、その分ファイルシステムのスタートが block ぴったりのポイントからずれますよね? すると、file system IO にとっての「alignment がぴったり」なポイントと、FlashROM にとっての「alignment がぴったり」なポイントが、丁度 partition table 分だけずれてしまって、何をどうやっても効率よいIOになりません。
正解は「fdiskを使わずに、いきなり mke2fs で全領域確保」ではないでしょうか?
/dev/hdc1 とかじゃなく /dev/hdc 丸ごとつかえや~ ってこと。
fjの教祖様
Re:多分、SSDが報告している数だけのブロックが存在しないんじゃないかと (スコア:1)
む、いかん。今見なおしたら FlashROM じゃなく HDD だった。ので、後半はなかったことにしてください。
…でも 1TbyteのHDDって、Big Sector を使ってるから同じ問題が出るんじゃなかったっけか?
fjの教祖様
Re:多分、SSDが報告している数だけのブロックが存在しないんじゃないかと (スコア:1)
でも 1TbyteのHDDって、Big Sector を使ってるから同じ問題が出るんじゃなかったっけか?
極端に安いディスク(WDのあれこれ)は4k sectorだったりするけど、世の1T全部ではない。 外付けの箱入りで買っているならwindows用に確保されているパーティションをLinux用にする くらいでアラインメントがずれたりしないようになるはずでしょう。さすがに、アラインメント がずれた状態で売っているおばかなメーカーはあまりないと期待したい。中身が4k sector のディスクだったときにアラインメントがずれる可能性については、むしろ、disk全体のほうが 危険だと思います。
どうしたらいいのか知ってる人いる?
壊れているとみなして、メーカー送りだと思うけど、わかりませんといわれるといやだから、 一応Windowsでファイルを埋めてみる???
ubuntuのディスクユーティリティを使ってみては? (スコア:0)
ディスクのチェック(バッドブロック?サーフェイスチェック?)も
実施できますよ。