USBメモリへのWindows 10インストール失敗

我が家に、今は年に数える程しか使わなくなった、約16年前に買ったWindowsのデスクトップPCがある。昨年末に年賀状を作る為に久々に起動したら、時計が日付から狂っていた。これまで幸いにして起動のトラブルは無かったが、これほどまでに電源を入れていないと、いつ起動しなくなってもおかしくないと思った。ついでに、この記事を書いている途中にHDDのスキャンをさせていたら、ブルースクリーンになって落ちてしまった。

筆者は今はほとんどの作業をMacBook Airで行っている。ひょっとしてこのデスクトップPCが壊れて我が家にWindowsが無くなっても困らないのではないか、と思ったが、Windowsにインストールしたソフトを1つずつ調べると、Canonのプリンタードライバーのポスター印刷機能(Windows用のドライバーにしか無い)と、愛用の将棋ソフトがあった。
将棋ソフトもそれほど計算能力を要するような使い方をしていないので、これくらいならMac上の仮想マシンのWindowsで事足りるのではないかと思った。

2年前からのコロナ禍で部屋の物を処分していく中で、このデスクトップPCは筐体が大きくて場所を取るので、以前から小型PCに買い替えたいと思っていた。そこで、この機会にMac上の仮想マシンにWindowsをインストールして試してみることにした。

Windows 10 Home 32bitのインストールには最低16GB必要とのことだが、Macの内蔵SSDに
はその空きが無いので、外付けのストレージが必要である。それならUSBメモリかスティック型SSDにWindowsをインストールできればスマートだと思った。
昨今のUSBメモリは結構速いという印象があったし、どれくらいの性能が要るのか見当がつかなかったので、とりあえず実験的にBUFFALOのRUF3-K64GBという64GBのUSBメモリを1,000円くらいで購入し、macOSのVirtualBoxでUSBメモリ上に固定サイズの仮想ディスクを作成し、ISOイメージからWindows 10 Home 32bitのインストールを始めた。

しかし、何回やっても、「インストールするファイルの準備中(XX%)」の途中で

必要なファイルをインストールできません。ファイルが破損しているか見つからない可能性があります。インストールに必要なすべてのファイルが利用可能であることを確認し、インストールを再実行してください。エラーコード: 0x80070570

というエラーになった。
使用したVirtualBoxのバージョンは6.1.32、仮想マシンの設定は色々変えてみたが行き着いたのはほぼ"Windows 10 (32-bit)"のプリセットで、起動順序の「フロッピー」を外し、ポインティングデバイスを"PS/2"に変えたのみである。
SHA256のチェックサムを照合したり、念の為ISOイメージをダウンロードし直したり、ISOイメージをロードするホスト側の処理能力が問題なのかと思ってできるだけホスト側を軽くしてみたり、色々試したら最高98%まで行ったが、結局ダメだった。

試しに、廃棄予定の古い外付HDDに仮想ディスクを作成してインストールしてみると、すんなり成功した。VirtualBoxのGuest Additionsのインストール、Canonのプリンターのポスター印刷、愛用の将棋ソフトのインストールもできた。
そしてインストールに成功した仮想ディスクをVirtualBoxの仮想メディアマネージャーでUSBメモリにコピーすると、USBメモリ上のWindows 10も何とか起動したが、外付HDDとは比較にならない遅さというか、ほぼ操作不能だった。外付HDDだと7分ほどでWindowsにサインインできてデスクトップ画面が操作可能になるが、USBメモリだとサインイン可能になるまでに30分かかるし、サインインした後1時間経っても操作不能だった。

外付HDDから起動して気付いたが、起動直後からサインイン後もずっと、HDDへのwriteアクセスが続いていた。macOSのアクティビティモニタで見ると、ずっと数MB/sの書き込みが発生していた。おそらく、USBメモリのランダムアクセスの書き込みが遅いのが原因なのだろう。

次の表は、AmorphousDiskMarkというアプリで外付HDDとUSBメモリの速度を比較してみた結果である。物理フォーマットはどちらもexFAT、それぞれ数回の計測の平均である。

USB HDD(IO DATA HDC-U320)USB MEM(BUFFALO RUF3-K64GB)
Read [MB/s]Write [MB/s]Write [IOPS]Read [MB/s]Write [MB/s]Write [IOPS]
SEQ1M QD8342524347.37.0
SEQ1M QD1342524341211
RND4K QD640.40.92203.90.000.6
RND4K QD10.40.61503.80.000.3
34MB/sというのはMacBook AirのUSB 2.0接続の限界のようである。(使用したMacBook Airは旧式でUSB 3.xをサポートしていない)
USBメモリのランダム書き込みの速度[MB/s]が0.00で計測不能だったので、[IOPS]で比較してみたら、このようにHDDより数百倍遅かった。2,000円以下でランダム書き込み速度がこのHDDより速いUSBメモリも複数あるようなので、USBメモリの選択がまずかった。

書き込みが遅いのが問題であればメモリにキャッシュすれば良いのでは、と思ってVirtualBoxのストレージの設定にて「ホストのI/Oキャッシュを使う」にチェックしてみたが、USBメモリからWindowsを起動すると3分も経たない内にキャッシュが溢れて、ほぼ効果が無かった。しかも、動作が不安定になるようで、何度試してもデスクトップ画面に行く前に仮想マシンがリセットしてしまった。

Windowsの起動時にストレージへの書き込みが多いのはページングファイルへのアクセスが多いからだろうかと思って、外付HDDで起動して、Windowsの「システムの詳細設定」→「パフォーマンス」で「パフォーマンスを優先する」「ページングファイルなし」の設定に変更してみたが、HDDで再起動するとやはり1時間はストレージへの書き込みが続いた。USBメモリから起動すると、多少改善したもののやはりほぼ操作不能だった。

Windowsを起動して1時間くらいのストレージへの書き込みが収まった状態のスナップショットをUSBメモリに移して、そこから起動すれば少しは操作可能になるのではないか、と思って試してみたが、仮想マシンを「クローン」すると

仮想マシン"XXXのクローン"のセッションを開けませんでした。
(詳細)
Could not launch the VM process for the machine "XXXのクローン"
(VERR_PROC_NO_ARG_TRANSLATION).
終了コード: VBOX_E_IPRT_ERROR(0x80BB0005)
コンポーネント: MachineWrap

というエラーになって起動せず(HDD上にクローンした場合も同様)、仮想マシンを「移動」すると起動後即リセットしてしまい、試せなかった。

USBメモリへのWindowsインストールにこだわるなら、USBメモリを買い直すしか無さそうだ。今回はそれがわかっただけで十分勉強になった。
もうこのデスクトップPCがいつ壊れても大丈夫である。次にWindowsを使いたくなったら、ランダム書き込みが速いUSBメモリを買おう。


なお、他のOSでも起動が遅いだろうかと思って、このUSBメモリにFreeBSDとUbuntu Desktopを起動してみた。

FreeBSDのダウンロードページで配布されている仮想マシンイメージをUSBメモリに入れて起動すると、1~2分で起動完了した。CUIしか触らなかったが、ほぼ問題なく操作できた。

OSBoxesからUbuntu 18.04.3の仮想ディスクイメージをダウンロードしてUSBメモリに入れて起動すると、15分くらいでログインとFirefoxの起動に成功した。少しはネットサーフィンできたが、時々30秒以上応答なしになるので、ほぼ実用不可能だった。