Virtualization

可以禁用 Hyper-V VM 的 PXE 引導嗎?

  • September 11, 2021

Hyper-V 虛擬機能夠進行 PXE 引導。顯然,PXE 引導引發了一些安全問題。問題是,與典型的物理機韌體不同,沒有明顯的方法可以完全禁用 PXE 引導。

Hyper-V 管理器在以下位置顯示每個 VM 的網路適配器Settings=>Firmware=>Boot Order

在此處輸入圖像描述

您可以將網路適配器移至引導順序的底部,但不能將其從該螢幕中完全刪除。因此,如果由於某種原因,Hyper-V 無法從任何其他驅動器啟動,VM 仍會嘗試 PXE 啟動並顯示此螢幕:

在此處輸入圖像描述

我已經Settings=>Network Adapter搜尋了一種禁用 PXE 引導的方法,但無濟於事。

所以我的問題是:

  1. 如何在 Hyper-V VM 中禁用 PXE 引導?
  2. 如果您無法禁用 PXE 引導,是否有充分的理由?

我正在使用 Windows Server 2012 R2

使用 Powershell 從引導順序中刪除網路引導設備

您可以使用 PowerShellNetwork BootType從 VM 引導順序中去除 s。

提取目前引導順序

使用 Powershell,您可以使用此命令提取目前引導順序:

$old_boot_order = Get-VMFirmware -VMName testvm -ComputerName MyHyperVHost `
                 | Select-Object -ExpandProperty BootOrder

如果您檢查$old_boot_order,您應該會看到testvm. 像這樣的東西:

在此處輸入圖像描述

剝離網路引導設備

Network BootType您可以使用以下命令從引導列表中刪除引導設備:

$new_boot_order = $old_boot_order | Where-Object { $_.BootType -ne "Network" }

檢查$new_boot_order應該看起來像這樣,沒有更多的Network引導設備:

在此處輸入圖像描述

設置新的引導順序

要為 VM 設置新的引導順序,請使用以下命令:

Set-VMFirmware -VMName testvm -ComputerName MyHyperVHost -BootOrder $new_boot_order

確認新的引導順序

要確認您所做的Get-VMFirmware再次使用第一個命令:

Get-VMFirmware -VMName testvm -ComputerName MyHyperVHost `
| Select-Object -ExpandProperty BootOrder

注意:如果您同時使用 PowerShell 和 Hyper-V 管理器來更改啟動順序,PowerShell 可能會報告錯誤(過期)的啟動順序。另請參閱此 technet 執行緒

引用自:https://serverfault.com/questions/619763