Назад | Перейти на главную страницу

Можно ли отключить PXE-загрузку виртуальных машин Hyper-V?

Виртуальные машины Hyper-V имеют возможность загрузки PXE. Очевидно, загрузка PXE вызывает некоторые проблемы с безопасностью. Проблема в том, что, в отличие от прошивки типичной физической машины, нет очевидного способа полностью отключить загрузку PXE.

Диспетчер Hyper-V показывает каждый сетевой адаптер виртуальной машины в Settings=>Firmware=>Boot Order:

Вы можете переместить сетевой адаптер в нижнюю часть порядка загрузки, но вы не можете полностью удалить его с этого экрана. Поэтому, если по какой-то причине Hyper-V не может загрузиться с любого из других дисков, виртуальная машина все равно пытается выполнить загрузку PXE и ​​показывает этот экран:

Я обыскал Settings=>Network Adapter для способа отключить загрузку PXE безрезультатно.

Итак, мои вопросы:

  1. Как отключить загрузку PXE на виртуальной машине Hyper-V?
  2. Если вы не можете отключить загрузку PXE, есть ли веская причина для этого?

Я использую Windows Server 2012 R2

Используйте Powershell для удаления сетевых загрузочных устройств из порядка загрузки

Вы можете использовать PowerShell для удаления Network BootTypes из порядка загрузки виртуальных машин.

Извлечь текущий порядок загрузки

Используя 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 загрузочные устройства:

Установите новый порядок загрузки

Чтобы установить новый порядок загрузки для виртуальной машины, используйте эту команду:

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 может сообщить об ошибочном (устаревшем) порядке загрузки. Смотрите также этот технет поток.