つい先日、新しい「64GB」の容量を持つUSBフラッシュメモリを購入しました。
最初は NTFS でフォーマットし、64GB使うことができました。しかし、色々操作しているうちに NTFS でフォーマットしても「32GBしか認識しない」状態となってしまいました。

32GBのドライブとして認識されていますが、ちゃんとした64GBの容量を持ったUSBフラッシュメモリです。「ディスクの管理」画面では未割り当て領域が存在しますが、拡張しようにも項目がグレーアウトして拡張ができません。
今回は、32GB以上の容量を持つフラッシュメモリがそれ以上認識しない問題の解決法を解説します。
経緯
私は Surface Pro 3 を所持しているのですが、最近調子が悪くなったため、回復ドライブを作成するために、先日購入した「64GB」の容量を持つUSBフラッシュメモリを使用して回復ドライブを作成しました。
回復ドライブは「FAT32」でフォーマットされている必要があるようなので、回復ドライブが作成されると「FAT32」へとフォーマットされていました。
この時点で32GBしか認識しなくなるのはわかります。Windows から「FAT32」でフォーマットすると、互換性維持のためか 32GB までのドライブサイズでしかフォーマットできない場合があるからです。ならば「NTFS」または「exFAT(推奨)」へ再度フォーマットしなおせばよい、ということになるわけですが・・・
コメントよりご指摘いただきました。
USBフラッシュメモリー含むSDカード類は、NTFSでフォーマットすることは非推奨です。
NTFSは主に内蔵ストレージ向けのファイルシステムで、遅延書き込みが有効になっているため、特にUSBフラッシュメモリーのように抜き差しを頻繁にするストレージで使用すると、突然の抜き差しの際にデータの破損を招くことがあります。
また、Windows7以前とWindows8以降でNTFSのlog fileのバージョンが変わったため、それぞれを行き来するような使い方をしている場合、NTFSだとストレージ内のデータが最悪破損してしまうことがあります。
「安全な取り外し」などを行うことで回避可能のようですが、「exFAT」であればこれらの影響は受けないため、USBフラッシュメモリなどのSDカード類は現在「exFAT」が無難です。(ただし、「exFAT」はWindows2000以前だと非対応、XPは利用のために更新プログラムの適用が必要です。)
32GB以上認識できなくなった


上の画像のゆおなことになってしまいました。64GBのUSBフラッシュメモリなのに32GBの範囲内でしかフォーマットできません。
では、「ディスクの管理」画面を開いてそこでフォーマットしてみれよいのでは?と考えます。


未割り当て領域があるのが確認できます。
全体としてはちゃんと64GBの容量を持ったUSBフラッシュメモリであることが確認できます。
※Windowsが採用している計算式の関係で58GB程度の認識になっていますが、正常な表記です。詳細は以下の記事よりどうぞ。

では、右クリックメニューから未割り当て領域を結合、フォーマットできるか試します。

グレーアウトして選択できないですね。
Surface Pro 3 の回復ドライブ作成に使ったので、ブート領域か何かがあるせいでしょう。では、最終手段「コマンド プロンプト(PowerShell)」から強制的にクリーンアップさせてあげましょう。
diskpart コマンド
ディスクのパーティションを操作できるコマンド「diskpart」を使います。
コマンド プロンプト(PowerShellやターミナルでも可)を ” 管理者権限 ” で実行します。
Windows 10以降ではスタートボタンを右クリックしてメニューに「コマンド プロンプト(管理者)」や「ターミナル(管理者)」という項目がありますので、こちらを選択します。
それ以外のOSでは、スタートメニューから検索して探すか、「全てのプログラム」の「アクセサリ」に入っています。右クリックして「管理者として実行」を選択すれば管理者権限として実行できます。


起動したら、コマンドとして「diskpart」と入力し、Enterキーで決定します。
Windows10のコマンド プロンプトはコピー&ペーストができるので便利ですね。

スペルミス等がなければ「DISKPART>」と表記が続きます。
「DISKPART>」に続くように「list disk」と入力し、Enterキーを押します。
すると、現在認識しているドライブの容量やディスク番号などが確認できます。ここで重要なのは、問題となっているディスク(ここではUSBフラッシュメモリ)のディスク番号を知ることです。ここで、容量が 57GB となっているディスクを探します。今回はどうやら「ディスク 10」となっているようです。
この ディスク 10 を操作対象としたいので、さらに続いてコマンド「select disk ○」を入力します。「○」はディスク番号を入れます。今回は「10番」なので「select disk 10」と入力します。半角スペースも入れないと選択できませんので注意。
選択がうまくいけば「ディスク ○ が選択されました。」と表示がされます。
ここで選択するディスクを間違えないよう注意してください。これから選択したディスクをフォーマットしますが、中のデータはすべて削除されてしまいます。消えたデータはもとに戻せないので、「select disk ○」での番号指定は間違えないよう細心の注意を払ってください。

ディスクの選択がうまくいきましたら、最後に「clean」と入力してEnterキーを押します。
うまくいけば「DiskPart はディスクを正常にクリーンな状態にしました。」と表示されます。これで選択されたディスクが完全に真っさらな状態になりました。中のデータは完全に消えるので「clean」と入力する前にディスク番号を最後に確認しておきましょう。

再度「ディスクの管理」画面を見てみると、すべての領域が「未割り当て領域」になっていました。
右クリックしてメニューを確認すると、「新しいシンプル ボリューム」が選択できるようになりました。これで新しくフォーマットすれば 64GB すべて認識できるようになります。

ボリュームの作成
「新しいシンプル ボリューム」を選択します。
「新しいシンプル ボリューム ウィザード」が表示されますので「次へ」を選択します。

ボリュームサイズを指定します。指定できる最大の量を指定します。

ドライブ文字(ドライブレター)を割り当てます。
標準で空きがあるドライブ文字が割り当てられますが、任意のもので結構です。

パーティションのフォーマットをします。
こちらも希望のフォーマットで結構ですが、USBフラッシュメモリーやSDカード類であれば「exFAT」が現在の推奨です。(理由は記事の最初の部分参照)
スマートフォンやカメラ等で32GB以上の容量を持つSDカードを利用したい場合は「exFAT」にします。ただ、利用する機器がその規格に対応しているかどうかは事前に確認してください。また、Macとの同時利用を考えている場合も、互換性の問題で「exFAT」がよいと思います。32GB以下なら「FAT32」でもOKです。

ボリューム の確認をします。特に問題ないようでしたら「完了」を選択します。

新しいボリュームが作成されていたら完了です。お疲れ様でした。
無事、64GBすべてが認識されているようです。


まとめ
以上、これで「32GB以上あるディスクがなぜか32GB以上認識しない問題」の解決法を解説しました。
大体はWindows上において FAT32 にてフォーマットされたことが原因かと思います。一度ディスクを真っさらにして、再度フォーマットし直せば解決するかと思います。参考になりましたら幸いです。
- 2017年10月22日:SDカードにおける推奨のフォーマットについて追記
- 2017年1月22日:初出





