[37410]  FORMATXについて
投稿者:Anpan さん   2001-12-25 12:54:29
 まりもさん作のFORMATXを使うとクラスタサイズを選べますが、WD313000を使って4KBクラスタで確保したら、スキャンディスク(完全)の終わり近くでOS(Win98SE)がハングアップしました。DOSモード(クラスタスキャン)で行ったら、エラーメッセージをはいて終了していました。どうもWin98のスキャンディスクはクラスタ数の上限があるようです。皆さんも気をつけましょう。
  1. まりも さん   2001-12-25 18:03:54
    Scandiskなどディスクユーティリティでは、クラスタを全部記憶しておかないといけないものがあります。クラスタサイズが小さくなると、管理すべきクラスタの数は増大して、管理しきれなくなることもあります。Scandiskは、マイクロソフトの標準のクラスタ数(サイズ対容量)をアテにしているのでしょう。標準より一段階大きなクラスタサイズにしておくくらいのほうが、無駄の増加を除けば、何かとよい点が多いです。
  2. おさだ@会社V16半魚人(謎) さん   2001-12-25 18:04:26
    4KBゆうても全体の確保容量どれくらいの容量ですか? それによってクラスタ数が決まりますが。上限は4294967296個ですか? (まさか…)
  3. まりも さん   2001-12-25 18:11:20
    WD313000全体ということは、13GBではないでしょうか。この容量帯で確保すると通常はクラスタサイズ8KBですが、それを4KBにしたくらいでハングするというのであれば、Scandiskはちょっと頂けません。これが64GB以上の領域を確保して4KBクラスタというなら、まあ動かなくてもしかたないでしょうけれども。
    >上限は4294967296個
    FAT32の仕様上では上限は28bitだそうです。4Gメモリ(32bit)空間のうち、クラスタ状態の記憶だけに 28bitも使ったのでは、動かなくなるのも道理ですが、ハングでなく、警告出して終了すべきですよね。DOSモード版のほうがマシな作りなのかも。
  4. Anpan さん   2001-12-25 19:20:26
     レスありがとうございます。クラスタサイズが選べたものですから、とりあえず実験してみました。HDDドライブの容量はまりもさんのいうとおり13GBのものです(壊れてもいいのがこれしかなかったためです。)。たしか、2GB残して領域確保したため11GB弱のパーティションを用いました。
    DOSでのエラーメッセージはインテジャー・・・(綴りは英語)でコマンドプロンプトに戻っていました。
  5. まりも さん   2001-12-25 19:37:21
    危ないので、規定サイズ以下は選択できないようにしたほうがよいのかな…。
    しかし、Win98の、FORMATコマンドのオプション /z:nn でクラスタサイズを指定できるくらいですから、自由に選ぶことは保証されているみたいなものなのですよね。通常アプリケーションソフトを使っていく上では、クラスタサイズが問題になることはないですし。
  6. Anpan さん   2001-12-26 10:01:43
     もう少し詳しく調べてみたら9GB超えたところで発生していることがわかりました(エラー発生時点のクラスタ数/総数)。確か4KBクラスタは4GBまでなので、倍の8GBまでは大丈夫のようです。楽しく初期化からやり直しています。
  7. わし さん   2001-12-26 22:37:18
    確か、4KBクラスタなのは、8GB位までだったと思います。
    以前に実験した結果です。

    この位のサイズになると、クラスタギャップによる、無駄の影響はあまり変わらなかった
    ようです。
    4KBでも8KBでも。

    FAT16で2GB(32KBクラスタ)をFAT32化した時は、感動的でしたが。
  8. まりも さん   2001-12-27 03:55:13
    ・16GB〜32GBの領域を 8KBクラスタかそれ以下で確保
    ・32GB〜64GBの領域を16KBクラスタかそれ以下で確保
    ・64GB〜 の領域を32KBクラスタで確保(デフォルト)
    した場合も、同様にscandiskがエラーになるかもしれません。暇な人は試してみるとよいでしょう。もっとも64GB以上の場合は FDISKの動作も怪しいらしいのでどうしようもないですが…。
  9. Anpan さん   2001-12-27 12:27:24
     どうもHDDが不調だったみたいです(UIDE-98経由で使っていたときは問題は起きてなかったんですが・・・)。DOSモードではコマンドプロンプトに戻った後でもそのまま使えたんで致命的な故障はしてないと思いますが。
     ただWin98のFormat.comは、Zオプションで選べるサイズは、かなり限定的だったはずなので、想定していないクラスタ数はまずいかもしれませんね。また自作機用に新しいHDDを買ったら使っているのをお下がりして追試験を行いたいと思います。
  10. まりも さん   2001-12-27 13:34:10
    >Zオプションで選べるサイズは、かなり限定的
    おぉ、FAT16では当然下限サイズがありましたが、FAT32でもそうだったですか。試してみます。
  11. よねよね さん   2001-12-27 15:35:08
    今回の Anpanさんの件と直接関係有るかは“?”ですが、Windows 9Xの scandiskは 16bitアプリであるため、扱えるメモリ領域が 16MBになります。そして、FATの 1エントリに付き 4バイトを消費しますので、scandiskの扱えるクラスタ数は、約 4×2^20個になります。
  12. まりも さん   2001-12-27 18:30:01
    >scandiskの扱えるクラスタ数は、約 4×2^20個
    ん?、細かいつっこみですが、

      処理可能クラスタ数 = プログラムが使えるメモリ/1エントリ当たりメモリ

    ではないですか?。Windows 16bitアプリのメモリ上限がいくらなのかは知らないのですが、16MBとすると、

      16384KB/4B = 4096K個 

    が扱い可能クラスタ数です。 12GBの領域を4KBクラスタで確保すると、およそのクラスタ数は3072K個ですので、この式が正しいとすると、上限以前に破綻してしまっていることになります。

     いっぽうDOSモード版はせいぜい512KBが使えるメモリですので、512KB/4B = 128K個が上限となってしまい、この計算ではマイクロソフト標準のクラスタサイズでも対処不能になってしまいます。おそらく、SCANDISKでは、FATの1エントリの情報記憶に、4バイトも使用していないのではと思います。SCANDISKの動作では、FATのクラスタアドレスを全記憶する必要はなく、使用中/未使用/不良/システム の4通りの状態だけ記憶しておけばよいため、内部的には記憶を節約していると考えられます。
  13. いーとん さん   2001-12-27 23:16:24
    現在 V200/S5C3 のオンボードIDEに ST360020A を接続し、8,176,043クラスタ(32000MB)/4kB で確保した領域に DOS版 SCANDISK をかけています。(Win98SE)
    50% をようやく過ぎましたが今の所正常に実行中。>あと4時間弱かかるらしい...
    ★間違った所にレスしていたらしい(爆汗
  14. まりも さん   2001-12-27 23:41:58
    ということは、本当にディスクI/Oエラーがあって落ちたのであって、Scandisk自体は問題ないのかな?

    # 実は間違っている所とは全く思わなかったらしい(汗
  15. いーとん さん   2001-12-28 00:34:32
    と言う事で、正常に終了しました↑
    ★トータル5時間半位のチェック時間ですみました。
  16. まりも さん   2001-12-28 01:05:04
    ぢゃぁ、次はDOSモードで。
  17. いーとん さん   2001-12-28 01:43:32
    DOS版でやったんですが(汗
  18. よねよね さん   2001-12-28 10:38:56
    >まりもさん
    う〜ん、元々のお話し(1年ほど前の WinPC)は、Windows 9Xでの scandisk等による制限のお話しだったのですが、

    「FAT32ファイルシステムでは、本来 8TB(32KB/クラスタ × 28bitアドレス)まで扱えるにも関わらず、上記の Windows 9X版の scandisk等による制限のため、(32KB/クラスタ)×(4×2^20クラスタ)=128GBが、Windows 9Xの FAT32ファイルシステムでの上限となっている」

    というものだったんです。
    (scandisk等での、1エントリ辺り 4Bytes使うという根拠は書いてありませんでした)

    # ところで、4×2^20個=4,096K個のつもりなんですが...(^^;
  19. まりも さん   2001-12-28 16:34:28
    2の"20乗"という数字がどこから出てきたのか不明だったんですが、要するにM(メガ)のことですね。
    >根拠は書いてありませんでした
    根拠はないが 4メガ個が上限であるというわけですね。おそらく、私が書いた
    16384KB/4B = 4096K個 = 4メガ個
    が根拠だろうと思います。