LinuxでWindows PEのLive USBを作る
BIOSの更新プログラムや、CPUのファームウェアの更新プログラムはWindowsしかサポートしていないものが多い。
PC環境がLinuxしかない場合、以下のような記事に従い、isoをUSBに書き込むことでBIOSのアップデートができる。
How to update Lenovo BIOS from Linux without using Windows - nixCraft
しかし、ベンダーから exe しか提供されていない場合に詰む。
そこで、USBから起動できるWindows PE(プレインストール)環境を使って、exe を実行する環境を構築する。
なお、作業環境はArchLinuxのため、パッケージのインストール方法などは各ディストリビューションのものに置き換えること。
必要なパッケージをインストールする。
$ yay -S fuse2 cdrtools cabextract wimlib $ yay -S syslinux mtools
Windows PEのイメージ(KB3AIK_EN.iso)を以下からダウンロードする。
Download The Windows® Automated Installation Kit (AIK) for Windows® 7 from Official Microsoft Download Center
(Windows PE - ArchWiki)
Windows PEのLive USBを以下の手順で作成する。
$ sudo mkdir /mnt/waik $ sudo mount KB3AIK_EN.iso /mnt/waik $ mkwinpeimg --waik-dir=/mnt/waik --overlay=${USER_DIR} :: Copying primary boot files from the Windows Automated Installation Kit (/mnt/waik, X86 :: Extracting boot.wim from "/mnt/waik/WinPE.cab" :: Overlaying "/home/ryo/Downloads/bios/mod_bios" on the Windows PE filesystem :: Rebuilding WIM with changes made :: Making disk image "winpe.img" The image (winpe.img) is 139730944 bytes. $ sudo umount /mnt/waik $ sudo dd if=winpe.img of=/dev/sdb bs=64K 2132+1 records in 2132+1 records out 139730944 bytes (140 MB, 133 MiB) copied, 15.3978 s, 9.1 MB/s $ sync
以下の --overlay=
オプションでディレクトリを指定することで、そこに含まれるファイルがWindows PEのXドライブ直下に配置される。
$ mkwinpeimg --waik-dir=/mnt/waik --overlay=${USER_DIR}
ThinkPad X220の場合、作成したUSBを挿したまま電源を入れ、起動画面でF12を押して起動ディスクにUSBを指定するとWIndows PEが立ち上がる。
Xドライブ直下まで移動し、適宜実行ファイルを実行する。
なお、以下のコマンドでWindows PEの電源を落とせる。
> wpeutil shutdown