VMware Player の uEFI NTFS 対応

VMware Player は uEFI による起動に対応しています。
しかしながら読み込めるファイルシステムとして NTFS は標準対応していないようなので、これをなんとかしたいと思います。

uEFI の起動

VMware Player は BIOS による起動がデフォルトです(VMware Workstation 12 Player)。
これを uEFI での起動とさせるには、 仮想マシンの vmx ファイルに以下のように編集(追記)します。

この状態で、 FAT32 でフォーマットした USB メモリから Windows やら Linux やらを起動できると思います。

動機: NTFS への対応

最近、 Windows のインストールファイルが 4GB を超えつつあります。そうなると FAT32 では1ファイルの制限に引っかかってしまうので、 NTFS を使いたいところです。
幸いにして、自作PC 界隈の uEFI では NTFS が読めるものが多いようなので、 VMware Player でも使えるようになったらなぁというところでやってみます。

対応手順

以下のファイルをダウンロードします。

  • https://github.com/pbatard/ffs/releases ここから FFS (1.0.7)
  • http://efi.akeo.ie/downloads/efifs-latest/x64/ ここから ntfs_x64.efi というファイル

この2つのファイルを適当なフォルダへコピー&展開します。
そして、コマンドプロンプトを開いて、そのフォルダをカレントにして、以下のコマンドを実行します。

成功すると ntfs_x64.ffs ファイルが出来ていると思います。

vmware-vmx.exe をバイナリリソースを取り出せるツールで開いて、 “6021” というファイルを取り出します。自分の場合には、 .rsrc/1042/BINRES の中にありました。

UEFITool 0.21.5 をダウンロードします。
https://github.com/LongSoft/UEFITool/releases/tag/0.21.5
このツールで、先ほどの 6021 というファイルを開くと、以下のように情報が表示されると思います。

このツールで、次のように項目をたどっていきます。
UEFI Image
→ 8C8CE578-8A3D-4F1C-9935-896185C32DD3
→ 20BC8AC9-94D1-4208-AB28-5D673FD73486
→ EE4E5898-3914-4259-9D6E-DC7BD79403CF
→ Volume Image Section
→ 8C8CE578-8A3D-4F1C-9935-896185C32DD3
⇒ 961578FE-B6B7-44C3-AF35-6BC705CD2B1F

このようにたどっていくと次のようになっていると思います。

最後の 961578FE-B6B7-44C3-AF35-6BC705CD2B1F の項目を選択して、右クリックを押すとメニューが出てきます。ここで、 “Insert After” を選択して、先ほどの ntfs_x64.ffs ファイルを選択します。
すると、 Fat ドライバの次の項目に NTFS のドライバが表示・追加されます。追加後は、メニューより Save Image File を選んで、 efi64_ntfs.rom として保存しておきます。
efi64_ntfs.rom ファイルは、コピーしておきます。

動作の確認

適当な仮想マシンを作成し、次のように vmx ファイルを編集します。

この vmx ファイルがある場所に、先ほどの efi64_ntfs.rom ファイルをコピーします。

NTFS でフォーマットされた USB メモリを VMware Player に接続します。 ここでは NTFS フォーマットした USB メモリに Windows10 のインストールメディアの内容をコピーしたものを使ってみます。

EFI のブートメニューから USB メモリを選択すれば起動、なのですが、それはうまく出来ないようでした。
そこで次のようにして、手動で起動を行ってみました。

1. ブートメニューから Internal Shell を選択・起動
2. USB メモリがどこに刺さっているかを確認するために、 map -r コマンドを実行
USB メモリのファイルシステムや接続されているデバイスノードの情報から、判断します。
3. 確認のためにファイルシステムを覗いてみます(この手順はスキップ可
ここでは、たまたま USB のファイルシステムが fs0 としてマップされている状態だったので以下のようになります。


もしファイルの一覧が出せないようであれば、 NTFS ドライバの読み込みに失敗しているか、 USB メモリの認識できていないと思われます。

4. USB メモリ内の bootx64.efi から起動させます。 efi\boot\bootx64.efi

うまくいけば、これで起動が可能でした。

まとめ

VMware Player (12.5) で UEFI で NTFS フォーマットした USB メモリからのインストール&起動のための手順を説明しました。
どこかが、まだ不完全なのか、実機のようにスムーズにはいかない感じではあります。しかし、試しに使ってみる程度には実現できているかなと思っています。

ntfs のドライバ efi を配布している箇所を見ると、 exfat のドライバもあるようなので、そちらも面白いかなと思いました。

参考

シェアする

  • このエントリーをはてなブックマークに追加

フォローする