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

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

ただいまの
回答率

90.46%

  • Windows 10

    1287questions

    Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

  • Windows 7

    416questions

    Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

FATフォーマットの違い

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,080

Hiroki_Okuda

score 16

実は、特殊な機材をコントロールしているのですが・・・
不思議なことがあります。
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/01 11:49

    一応(いくつか同様に作成したディスクがありますので)調べてみました。
    オリジナル(本来使っていて今はリファレンスとして残してあり、正常動作するもの)は、select diskまではうまく行きますが、select partitionが通りませんでした(パーティションが選択されていいません、とでます)。他のディスク(同様に動作するもの)について、確認していますが、detail partitionの「種類」をみればいいのでしょうか?
    それならば01になっています(win7/10ともに)。

    キャンセル

  • 2017/01/01 12:19

    detail partitionができない代わりに、HxDというセクタダンプのユーティリティがありましたので、それでダンプしましたが、下側リンクで言うBS_VOLID以外に相違点は見つかりませんでした。

    キャンセル

  • 2017/01/01 14:54

    あくまで仮説ですが、その「種類」が01ではなかった場合、当然読めないと思いますが、修正方法はあるのでしょうか?それとも一度解放、もしくはゼロフィルして初期化し直しでしょうか?

    キャンセル

  • 2017/01/02 15:42

    16GBのUSBメモリを使用して私のWin10 Home ver 1607(14393.576)環境で実験した結果は以下の通りでした。

    --------------------------------------------------------------------------------
    1. DISKPART で、1MBのパーティションを1つ作成。パーティションの種類は指定せず。
    「CREATE PARTITION PRIMARY SIZE=1」

    2. DISKPART で、パーティションの詳細を確認。
    「DETAIL PARTITION」
    オフセット (バイト): 1048576
    種類 : 06

    3. DISKPART ASSIGNでドライブレターを割り当てた後、formatコマンドでフォーマット。
    「format x: /FS:FAT /A:512」

    ファイル システムの種類は RAW です。
    新しいファイル システムは FAT です。

    フォーマットは完了しました。
    1000.0 KB : 全ディスク領域
    1000.0 KB : 使用可能ディスク領域

    512 バイト : アロケーション ユニット サイズ
    2,000 個 : 利用可能アロケーション ユニット

    12 ビット : FAT エントリ

    4. DISKPART で、パーティションの詳細を確認。
    「DETAIL PARTITION」
    種類 : 0E
    --------------------------------------------------------------------------------

    CREATE PARTITION でID=01と指定しても、formatコマンドにより結局、0x0Eに書き換えられました。

    [FATファイル システムのしくみと操作法](http://elm-chan.org/docs/fat.html) 「区画テーブルエントリのフィールド」によると、0E は FAT12/16 (LBA) なので正しいのですが、特殊な機材と言われている方が0Eに対応していない(定義を知らない)のではないでしょうか?

    ボリュームのPBPの違いがBS_VOLIDだけしかないのにドライブが認識ということであれば、MBR側のパーティションテーブルの情報の違いを疑うべきでしょうね。(あとは、サポートしているDISKサイズ(LBAのBit数)など)

    > この区画の種類(代表的なもの)。
    > 0x00: 無し(空きエントリ)
    > 0x01: FAT12 (CHS/LBA, 65536セクタ未満)
    > 0x04: FAT16 (CHS/LBA, 65536セクタ未満)
    > 0x05: 拡張区画 (CHS/LBA)
    > 0x06: FAT12/16 (CHS/LBA, 65536セクタ以上)
    > 0x07: HPFS/NTFS/exFAT (CHS/LBA)
    > 0x0B: FAT32 (CHS/LBA)
    > 0x0C: FAT32 (LBA)
    > 0x0E: FAT12/16 (LBA)
    > 0x0F: 拡張区画 (LBA)

    --------------------------------------------------------------------------------

    > あくまで仮説ですが、その「種類」が01ではなかった場合、当然読めないと思いますが、修正方法はあるのでしょうか?

    DISKPART の FORMAT でコマンドでもIDは0Eになりましたので、もっと細かなパラメータの指定できるフォーマットツール何か探すか、HxDのようなDISKのセクタを直接編集できる
    ツールで、パーティションテーブルを直接書き換えるかでしょうね。

    --------------------------------------------------------------------------------
    (追記)
    新しいWindowsではFDドライブの標準サポートが削除されたりしているので、古い仕様に対するサポート(互換性)の部分も変わってきていて、その影響かもしれませんね。

    キャンセル

  • 2017/01/02 21:52 編集

    なるほどですね。詳しい解説ありがとうございました。
    でも、あれから追試をしていて、私がやると、なぜか結構不定で、10側だと01になったり0Eになったりするんですよ。01の方が多いんですけどね。
    7とかだと01で完全固定なので、これが原因の可能性は大いにあります。
    いちおうご指摘の通り、両方ともFAT12で間違いはないんですが、0Eを機材側が認識できない可能性は否定できないので。
    そこで再び質問なのですが、今ディスクダンプをしているのですけれど、BPBはオフセットゼロから見えるんですが、区画テーブルエントリがどこにあるのかいまいちわかりません。

    キャンセル

  • 2017/01/02 22:03

    > 私がやると、なぜか結構不定で、10側だと01になったり0Eになったりするんですよ。01の方が多いんですけどね。

    もしかしたら、uSBメモリ全体容量の違いや、パーティションの開始位置の違いが影響している可能性も考えられますね。

    容量が32MBとかのとても小さいUSBメモリだったり、パーティションをWin10以外で作成した物だった時は、Win10でフォーマットしても0x01になってるとかありまんか?

    キャンセル

  • 2017/01/02 22:44

    今回64MBと256MBでやってますが、これについては同様に不定ですね。
    パーティションの開始位置までは意識してませんが、Toriumiさんと同様の方法でやってます。
    あ、すいません、先ほどコメント編集したんででわかりにくいとは思いますが、上のところで質問をしておりますのでそちらもお手数ではありますがよろしくお願いいたします。

    キャンセル

  • 2017/01/02 23:03

    > 今ディスクダンプをしているのですけれど、BPBはオフセットゼロから見えるんですが、区画テーブルエントリがどこにあるのかいまいちわかりません

    パーティションテーブルはDISKのMBRに存在しますので、HxDだと論理ディスクではなく物理ディスクを選択して開けば、セクタ0の 0x01BE に存在します。

    https://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%96%E3%83%BC%E3%83%88%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89

    キャンセル

  • 2017/01/02 23:09

    以下のような情報もあるので、WindowsUpdateでOS状態を最新にしたら状況に変化があるかもしれません。ご参考までに。

    Windows10 Anniversary Updateをしたら、FAT12が見えない?
    https://hiro99ma.blogspot.jp/2016/08/windows10-anniversary-updatefat12.html

    キャンセル

  • 2017/01/02 23:54

    1)どちらにしても、FDDのサポートが終わってるわけですから、FAT12については不定になるのはある程度想像がつきます。見えないわけではないようですが、条件がつくと思われます。
    2)物理ディスク選択してセクタ0の0x01BEをみたんですが・・・
    http://www.teambluewing.com/data/2017a.png

    キャンセル

  • 2017/01/03 08:56

    http://www.teambluewing.com/data/2017a.png
    を見ると"MSDOS5.0"や"FAT12"などのキーワードが見えますので、これはMBRではなくPBPですね。

    USBメモリ(USBマスストレージクラス)やSDカードなどは、HDDと同様MBR(パーティション情報)があり、そのパーティション(論理ドライブ)をFATなどでフォーマットして使用することになります。
    物理ディスクのセクタ0がPBPということは、パーティションの仕組みがなく「物理ドライブ=論理ドライブ」であるFDと同じ構造になっているといえます。

    DISPART で select partition が出来ないと言われていたのは、これが原因ですね。

    普通のWindows標準機能を用いていていれば、USBメモリがこのような状態になることは考えづらいのですか、何らかのツールを使用してFDのディスクイメージを、USBの物理ドライブを指定して書き込みを行ったとかされていませんか?

    FATフォーマットの問題という事でご質問が始まりましたが、FATの問題ではなくMBRなどのUSBメモリ全体のデータ構造の問題のような気がしますね。


    ちなみに下記は、私が実験したUSBメモリの物理ドライブのセクタ0(MBR)と論理ドライブのセクタ0(PBP)の内容です。(選択分はパーティションテーブルの第1パーティション)

    https://photos.google.com/share/AF1QipPaLJ0JPIIdF_TmHM0Om-hY1WfOvEOK7k6ri3WNQLPuHOwLrLcDHruKhNB_xGY3Yg/photo/AF1QipPrbJ5RT-Sy5vbAhbOmjNGSMqzLosPz3zWvQDwY?key=OW9zSlRUZjJET3ZNNGxTSEtSNTBwZk1PRGJJYlF3

    キャンセル

  • 2017/01/03 09:56

    いえ、そんなことは全くやっていません。
    基本的に標準のツールでやってます。逆にいうなら別の回答の通り他のツールが使えませんので。。。
    とはいえ、このままでは議論が進みませんので、少し見方をかえてみましょう。
    もしFDのイメージだったとして、メモリ内のデータ構造だとしたら、どこで差異がでるのでしょう?(ある意味核心に近づいている気がします)
    実際、本来繋がるべきUSBメモリは旧式のかなり容量の小さいタイプをターゲットにしているはずで、それがなく、容量がでかいままだと認識しないので、小さくしてある意味無理やり認識させているようなものなので。。。)
    ある意味、前述の「FAT12が見えない?」に挑むような話なのですけれど・・・

    キャンセル

  • 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で質問しよう!

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

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

  • Windows 10

    1287questions

    Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

  • Windows 7

    416questions

    Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。