質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.04%

FATフォーマットの違い

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 4,130

score 24

実は、特殊な機材をコントロールしているのですが・・・
不思議なことがあります。
USBメモリを入れてそこから機材がデータを読み出し、コントロールしているのですが、同じFAT12(512バイトFAT)でも、Win10でフォーマットすると読み込めないのか動作せず、Win7とかWinXPでフォーマットするとちゃんと読み込んで動作します。
(VistaやWin8系では試していません)
もちろんメモリは同じものを使用しています(これも大きいUSBメモリを区画分けしてかなり小さいパーティションで使っています)。データも当然同じです。

Win10とWin7では、NTFSの互換性で違いがあることは知っていますが、FATについてどう違うのか、調べてもわかりません。
ご存じの方がお見えになりましたらお教え願えませんでしょうか?

追記:
両方ともWindows上の「フォーマット」を使っています。
具体的に書くと、エクスプローラー画面でその該当ドライブを右クリックし、「フォーマット」を選択しています。
FATサイズはWindows既定を指定しています。
また、管理者権限で実行するフォーマットコマンドで以下のオプションをつけて試しもしましたが同様でした。
「format x: /FS:FAT /A:512」
※xは該当ドライブ

なお、蛇足ですがパーティション区切りはdiskpartコマンドで分けています。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • raccy

    2016/12/31 12:20

    FAT12でフォーマットしたとありますが、具体的にはどのようにしたのでしょうか?同じformatコマンドを使ったのでしょうか?

    キャンセル

  • Hiroki_Okuda

    2016/12/31 15:58

    情報追加しました。

    キャンセル

回答 2

checkベストアンサー

+1

FAT12でフォーマットしたとのことですが、本当にFAT12なっているでしょうか?

DISKPART コマンドで detail partition を実行すればパーティション識別子が確認できると思いますが、その値がFAT12を示す0x01になっていますか?FAT16を示す別の値になっていたりしませんか?
File Allocation Table

下記サイトにFATに関する詳しい情報が載っていますが、FAT12とFAT16のどちらを使うかの切り分仕様は厳密に決まっていないようです。

FATファイル システムのしくみと操作法 (「FATタイプの決定」 より引用)

しかし、この境界値は明確に決まっているわけではありません。クラスタ番号の取り得る値からすると上記のようになりますが、実際に出回っている情報やFATドライバではその多くにバラツキ(1,2,8,10または16クラスタ)があります。たとえば、FAT12の最大クラスタ数一つ取っても、FAT仕様書では4084としている一方、MSDNの解説では4085、Windowsでは4085(ドライバ)や4086(ディスク ツール)などとなっています。基準となるべき仕様書やシステムでさえこのようにバラバラな状態なので、存在する全てのFATコードにおいて最大限の互換性を確保するため、クラスタ数が境界値付近となるボリュームの作成は避けることが推奨されています。FAT仕様書では境界値から16は離したクラスタ数に設定すべきとしています。
また、このルールを知らずに書かれたFATドライバは、クラスタ数ではなくBS_FilSysTypeフィールドの文字列でFATタイプを決定しているようです。そのような不正なFATドライバの救済のためにも、BS_FilSysTypeには実際のFATタイプに矛盾しない文字列の設定が推奨されています。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/03 11:37

    私はUSBメモリはパーティション情報がある物だと思いこんでいたのですが、Win10でも以下の手順で FD同様MBRが無く、「物理ドライブ=論理ドライブ」で物理ドライブのセクタ0がPBPのUSBメモリになりました。

    1. 物理ドライブのセクタ0を、HxDなどを使用して0クリアし、MBR情報が無い状態にする。
    2. その状態でUSBメモリをformatコマンドでフォーマット。
    (実験に使えるUSBメモリが16GBなで、FAT32を指定)

    この状態だと、DISPART list partition でプライマリパーティションが1つあると表示されますが、select partition も detail partition も失敗するという状況になりました。
    (エクスプローラからはファイルの作成など可能な状態です)


    特殊な機材がパーティションテーブルの0xEという種類をサポートしていないのではと言いましたが、実はそれ以前の問題で、MBRのあるディスク構造自体をサポートしていないのでは?(「物理ドライブ=論理ドライブ」で物理ドライブのセクタ0がPBPのUSBメモリしかサポートしていない)

    キャンセル

  • 2017/01/03 13:57 編集

    どうもそうではなさそうです。
    というのも、区画分けして容量を小さくしたドライブでも、Win7で初期化したものについては読み込めています。Win8はないため確認してませんが、Win10にて初期化したものだけダメなんです。
    区画分けについてもWin7/10双方で試しましたが、Win7でフォーマットすれば問題ないという結果に。
    で、複数区画を作ると、最初の区画しか認識しません(というかもともと1ドライブしか認識しないのでその機材としては当たり前といえば当たり前ですが)。
    で、調べていくうちに少し疑問がでてきました。
    パーティション情報がない限り、FATの判断はそれを示す情報がない以上、クラスタ数から算出するしかないのでは?と。
    とすると、BPBの比較情報が重要になりますが、Win7とWin10ではほとんど変化がないので、ここも問題ではない気がしてきました。
    とはいえ、Win10でFAT12がサポート外(という情報あり)となると、少し考えなければなりません。当面はまだWin7は延長サポートで2020年まではOKなので、この機材については当面はこれでしのごうと思います。(FAT12フォーマッターを作らなければならないかもしれませんね・・・)

    キャンセル

  • 2017/01/03 16:00 編集

    原因が判明しました!
    Win10でフォーマットすると、隠しシステムファイルで「System Volume Information」が作られてしまい、それがどうも邪魔しているようです。
    (これは盲点でした・・・・Win7で初期化するとそれが作られません)

    キャンセル

0

明けましておめでとうございます。

FAT32なので少し違いますが、良く似た話がありました。
Windows 10 (8以上?)でUSBメモリをFAT32フォーマットすると…
Windows 10のFATフォーマットはWindows 7とは微妙に相違があるようで、Windows 10でフォーマットするとある装置が認識してくれないそうです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/01 09:31

    そうなんですね?
    私が知りたいのは、その「相違点」はどこなのか、というところなのです。

    キャンセル

  • 2017/01/01 13:15

    解決策には興味なかったのですね。てっきり解決方法を求めていると勘違いして解決策の記載があるリンク先を紹介させて頂きました。
    外してしまったようです。すいません。

    キャンセル

  • 2017/01/01 14:43

    解決策は必要ですが、どちらかというと構造的問題の根本がどこにあるのかを知らないと、ほかに説明できないのです。「どっちもWindowsでフォーマットしているから同じのはずだ」と反論されて終わりですから。

    キャンセル

  • 2017/01/01 14:45 編集

    また、機材の関係上私だけが使うわけではありません。ですから最終的には専用のツールを作ることになると思います。ツール自体は私も持っていますが、間違って使ってしまうと問題ですからね。
    もちろんそれに対応した(余計なことができない)ツールがあればベストですが、そういうものはそうそうあるものではないので、それにつながる(=作るための参考になる)ヒントもあればと思ったわけです。
    あと、なぜかこのツールだと、初期化ができません(NTFSしか選択肢がない)。
    ですからどっちにしろ解決策にすらならないと言うことですかね・・・(苦笑)

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.04%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る