Introduction

備忘録。
Hyper-V において、同一の第二世代の仮想マシンで OS のインストールを繰り返すと、 ブート順 の一覧に EFI ファイル が出現されることに気づく。

boot order

この一覧をきれいにする。

How to resolve?

まず、このブート一覧を列挙してみる。

1
2
3
4
5
6
7
8
9
10
11
$ Get-VMFirmware -VMName "999.Playground-Gen2" | ForEach-Object { $_.Bootorder }

VMName BootType Device
------ -------- ------
999.Playground-Gen2 File
999.Playground-Gen2 Drive DvdDrive (Name = 'DVD ドライブ on SCSI controller number 0 at location 1', VMName = '999.Playground-Gen2') [Id = 'Microsoft:67280186-1FBF-4D65-B654-6DE8E5E1E23F\6D8AB7A1-E882-433D-A0A7-559F3B5E8114\0\1\D', VMId = '6...
999.Playground-Gen2 File
999.Playground-Gen2 File
999.Playground-Gen2 Drive HardDiskDrive (Name = 'ハード ドライブ on SCSI controller number 0 at location 0', VMName = '999.Playground-Gen2') [Id = 'Microsoft:67280186-1FBF-4D65-B654-6DE8E5E1E23F\6D8AB7A1-E882-433D-A0A7-559F3B5E8114\0\0\D', V...
999.Playground-Gen2 File
999.Playground-Gen2 Network VMNetworkAdapter (Name = 'ネットワーク アダプター', VMName = '999.Playground-Gen2') [VMId = '67280186-1fbf-4d65-b654-6de8e5e1e23f']

一覧が取得できたので、この中から BootTypeFile 以外のみを残せばよい。

注意

次のコマンドを実行すると、 EFI ファイルが消えてしまうので、仮想マシンが立ち上がる無くかもしれないので細心の注意を払うこと。
自分の場合、インストール済みの Windows Server は仮想ディスクから立ち上がったので問題はないが保証はない。

1
$ Get-VMFirmware -VMName "999.Playground-Gen2" | ForEach-Object {Set-VMFirmware -BootOrder ($_.Bootorder | Where-Object { $_.BootType -ne "File" }) $_ }

確認してみる。

1
2
3
4
5
6
7
$ Get-VMFirmware -VMName "999.Playground-Gen2" | ForEach-Object { $_.Bootorder }

VMName BootType Device
------ -------- ------
999.Playground-Gen2 Drive DvdDrive (Name = 'DVD ドライブ on SCSI controller number 0 at location 1', VMName = '999.Playground-Gen2') [Id = 'Microsoft:67280186-1FBF-4D65-B654-6DE8E5E1E23F\6D8AB7A1-E882-433D-A0A7-559F3B5E8114\0\1\D', VMId = '6...
999.Playground-Gen2 Drive HardDiskDrive (Name = 'ハード ドライブ on SCSI controller number 0 at location 0', VMName = '999.Playground-Gen2') [Id = 'Microsoft:67280186-1FBF-4D65-B654-6DE8E5E1E23F\6D8AB7A1-E882-433D-A0A7-559F3B5E8114\0\0\D', V...
999.Playground-Gen2 Network VMNetworkAdapter (Name = 'ネットワーク アダプター', VMName = '999.Playground-Gen2') [VMId = '67280186-1fbf-4d65-b654-6de8e5e1e23f']

boot order

無事に消えたことが確認できた。