パスワードを忘れた? アカウント作成
262191 journal

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にハード的な障害があるんじゃね」とか言ってるところがある。
小分けにして初期化したら、というアドバイスはあったが解決した話は残念ながら無いようだ。

どうしたらいいのか知ってる人いる?

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • ハードディスクのリロケート機能に期待して、
    まずはbadblocksしてみるとか・・・

    って、もうやってるでしょうが。
    S.M.A.R.T値に現れてるかどうかも興味あります。

    すみません、他人のディスク障害に興味あるだけの野次馬で…

    --
    屍体メモ [windy.cx]
  • 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の教祖様
    • む、いかん。今見なおしたら FlashROM じゃなく HDD だった。ので、後半はなかったことにしてください。

      …でも 1TbyteのHDDって、Big Sector を使ってるから同じ問題が出るんじゃなかったっけか?

      --
      fjの教祖様
      親コメント
      • でも 1TbyteのHDDって、Big Sector を使ってるから同じ問題が出るんじゃなかったっけか?

        極端に安いディスク(WDのあれこれ)は4k sectorだったりするけど、世の1T全部ではない。 外付けの箱入りで買っているならwindows用に確保されているパーティションをLinux用にする くらいでアラインメントがずれたりしないようになるはずでしょう。さすがに、アラインメント がずれた状態で売っているおばかなメーカーはあまりないと期待したい。中身が4k sector のディスクだったときにアラインメントがずれる可能性については、むしろ、disk全体のほうが 危険だと思います。

        どうしたらいいのか知ってる人いる?

        壊れているとみなして、メーカー送りだと思うけど、わかりませんといわれるといやだから、 一応Windowsでファイルを埋めてみる???

        親コメント
  • by Anonymous Coward on 2010年10月09日 23時28分 (#1837839)
    S.M.A.R.T値もわかるし、
    ディスクのチェック(バッドブロック?サーフェイスチェック?)も
    実施できますよ。
typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...