自宅PCのブートドライブをケチってHDDにしたせいで起動の遅さに苛立っていました。後日Hyper-Vの仮想マシン用に増設した、SSDからブートできないかなーと思いたつものの、BIOSの設定とか、ISOをDVDに焼いたりとかは億劫なので、ホストOSで作成したVHDXからなんとかブートできないか考え始めたのがキッカケ。
環境
ホストOS:Windows 10(1803)
VHDブートするOS:Windows 10(1703)
参照
このURLの手順を流したらSSDからブートできるようになりました。英語なので一応やったことをメモ程度に書きます。
手順
1.ISOイメージを用意
- ブートしたいWindows OSが入ってるISOのご用意を。
2.PowerShellのスクリプトをインストール
- このサイトからConvert-WindowsImage.ps1をインストール。
3.スクリプトを実行!
- PowerShellを管理者として立ち上げる。
- ExecutionPolicyをRemoteSignedにする。
- 流すスクリプトは以下の通り
Convert-WindowsImage.ps1 -SourcePath "ISOが格納されているパス" -VHDFormat VHDX -SizeBytes 50GB -VHDPath "VHDXを格納したいファイルパス"
引数:VHDFormatには「VHD」と入力してもおkです。
引数:SizeBytesは適宜作りたいファイルのサイズを指定してあげてください。固定サイズになります。
引数:VHDPathには"G:¥BootWindows¥BootWindows.vhdx"のような値を渡しました。もちろんGドライブはSSDです。
4.作成したVHDXをマウントする。
- 作成したVHDXを右クリックし、マウントを選択します。
- 適当なドライブにVHDXがマウントされます。ここではFドライブにマウントされたとします。
5.VHDXファイル内にブートファイルを作成する。
- コマンドプロンプトを管理者として起動。
- 以下のコマンドを打ち込む(ドライブ名は適宜読み替えてください)。
bcdboot F:\Windows
6.再起動すると作成したVHDXがブートの候補としてあがってきます。
見つかった問題点
ドライバの再適用が必要
起動してみると、キーボードが英字配列になっていました。また、ドライバの設定を確認するとエラーを出力していました。
Windows Updateをかけることができない
Windows 10 (Version 1803)のアップデートをかけようとしたところ、「仮想ドライブ上にはWindowsをインストールできません」というエラーメッセージが。。。VHDXからブートすると、大型アップデートをあてることができないらしい(KBはおkでした)。そこで、元ホストOSから作成したVHDXをHyper-Vに食わせて仮想マシンを作成し大型アップデートができました。
VHDXのサイズを元ホストOSからしか変更できない
こちらも、先ほど作成した仮想マシンからHyper-V Management Systemのディスクの編集からディスクの拡張を行い、サイズの変更ができました。Windows PEのブートディスクからdiskpart使って直接拡張でも良いと思います。
SSDの読み書きが遅くなる(らしい)
ググッた感じ読み書きが遅くなるらしいです。ただ、ブート目的なら遅くなった感覚を感じませんでした。
感想
意外にお手軽です。勇気はいりますが、起動速度が段違いだしやってよかった!
最後に
常套句ですが、自己責任でお願いします!!