備忘録やめた

備忘録として使用していたけどやめた.このブログに載せてあるコードのライセンスは別途記載がない限りWTFPL OR NYSLです.

Windowsインストーラインストールバトルで突っかかったところまとめ

はじめに

steamVRをGentoo上で動かそうとしてうまく行かず,オンボロ32bitWindowsマシンを使ってやろうとしてやっぱり失敗したところで,友人氏により大学のライセンスを使ってWindowsを入手できるという情報をもらったので,余っているストレージを使ってWindowsデュアルブートさせることにした*1*2

しかしながらそのインストールメディアの作成があまりに大変だったため,備忘録としてインストール中に突っかかった内容をまとめる.

インストールメディアの作成

WindowsをインストールするSSDの先頭領域に小さなパーティションを作成して,そこにインストールメディアを作成した.もちろんUSBメモリを用いてもいいのだが,持っているUSBメモリが古く,あまりに動作が遅かったためこのような処置をした.

最終的なパーティション構成は以下のようになった.

%sudo fdisk /dev/nvme1n1 -l
ディスク /dev/nvme1n1: 238.47 GiB, 256060514304 バイト, 500118192 セクタ
ディスク型式: PLEXTOR PX-256M9PeGN                    
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 262CA18C-27C7-154E-81A9-FFDB7DB66F4C

デバイス       開始位置  終了位置    セクタ サイズ タイプ
/dev/nvme1n1p1     2048  16779263  16777216     8G Microsoft 基本データ
/dev/nvme1n1p2 16779264 500118158 483338895 230.5G Microsoft 基本データ

タイプについての詳細は不明だが,Linux ファイルシステムを選択した場合,うまく行かないことだけは判明した.

パーティションを設定したあと,ISOファイルとインストール先デバイスをそれぞれマウントして,ISOファイルの中身をcpで移した.

%mkdir /mnt/{usb,win10}
%sudo mount /dev/nvme1n1p1 /mnt/usb
%sudo mount ~/Win10_21H2_Japanese_x64.iso /mnt/win10

なお,USBメモリなど,デバイスへのパスが/dev/sdxのような形式の場合はWoeUSBが使える.ReleasesからBashスクリプトをダウンロードし,以下のコマンドを使用して実行可能ファイルにする.

chmod +x woeusb-5.2.4.bash

その後,このスクリプトを使ってインストールメディアを作成する.ここで,~/Win10_21H2_Japanese_x64.isoWindowsインストーラーのisoファイルのパス,/dev/sdaはデバイスへのパス.

sudo ./woeusb-5.2.4.bash --device ~/Win10_21H2_Japanese_x64.iso /dev/sda

この際mkfs.vfatにおいて,/dev/sdx1が存在せず失敗するとき,Linuxカーネルmake menuconfigにおいて,Enable the block layer -> Partition Types -> PC BIOS (MSDOS partition tables) supportを有効にする.

なお,単にddを使って焼くと失敗する.詳細は以下の記事に記載されている.

qiita.com

また,こちらのページも参考にした.

https://www.cyberciti.biz/faq/create-a-bootable-windows-10-usb-in-linux/

*1:ちなみにsteamVRはインストールしたWindows10でもうまく行かなかった.そもそもOculus Quest 2の接続がコンピュータのOculusアプリに認識されず,現在サポートに問い合わせている

*2:一応Windowsでのみ使用可能なソフトウェアが存在するので,学術的な意味もあることをここで示しておく