32GB以上のUSBメモリをFAT32でフォーマットする手順


「ゼロからのOS自作入門」1の第1章を参考に、UEFIからUSBメモリをブートしようとしたところ、私の環境ではexFAT形式でフォーマットされたUSBメモリを起動できませんでした。
FAT32形式でフォーマットすれば起動できるという Issue2 もあったのですが、使用したUSBメモリ容量の64GBではエクスプローラのフォーマット機能では変換できなかったため、diskpartを使ったフォーマット手順を記録します。

作業環境

OS: Windows 10 - バージョン 20H2
PC: ONE-NOTEBOOK OneMix3S
USBメモリ: Transcend USBメモリ 64GB USB 3.1 - TS64GJF790KBE

USBメモリの作成

パーティションが32GBよりが大きい場合、エクスプローラからはFAT32でフォーマットできないため、diskpartツールを使って作業を行います。
ショートカットキーWin+Rで「ファイル名を指定して実行」からdiskpartを実行します。

list disk コマンドで選択するディスクを確認します、今回はサイズが56GBと表示されてる「ディスク 2」が対象です。

DISKPART> list disk

  ディスク      状態           サイズ   空き   ダイナ GPT
  ###                                          ミック
  ------------  -------------  -------  -------  ---  ---
  ディスク 0    オンライン           931 GB  1024 KB        *
  ディスク 1    オンライン           238 GB      0 B        *
  ディスク 2    オンライン            56 GB    55 GB

select disk コマンドで選択したあとcleanコマンドを実行します。

DISKPART> select disk 2

ディスク 2 が選択されました。

DISKPART> clean

DiskPart はディスクを正常にクリーンな状態にしました。

create partition コマンドでプライマリパーティションを作成します。サイズは32GB以下の適当な容量を指定します。

DISKPART> create partition primary size=1000

DiskPart は指定したパーティションの作成に成功しました。

DISKPART> list partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
* Partition 1    プライマリ             1000 MB  1024 KB

format コマンドでFAT32形式にクイックフォーマットします。

DISKPART> format fs=fat32 quick

  100% 完了しました

DiskPart は、ボリュームのフォーマットを完了しました。

DISKPART> exit

教本「1.1 ハローワールド」の手順に従い、EFIファイルを所定のディレクトリに格納してUSBメモリの作成は完了です。

UEFIから起動

作成したUSBを刺した状態でPCを起動、DELキーを連打するとUEFIが起動します。
うまくUSBメモリが認識されると "Save & Exit - Boot Override" の一覧に "UEFI: <USBメモリ名>" が表示されるのでこれを選択します。

無事に "Hello, world!" が表示されました。


  1. ゼロからのOS自作入門 (http://zero.osdev.jp/

  2. exFATでは動かなかったがFAT32では動いた (https://github.com/uchan-nos/os-from-zero/issues/17