AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 789225
Accepted
Tim Brigham
Tim Brigham
Asked: 2016-07-12 13:20:55 +0800 CST2016-07-12 13:20:55 +0800 CST 2016-07-12 13:20:55 +0800 CST

重新映像 Hyper V Gen 2 / UEFI VM

  • 772

所以我们终于硬着头皮开始在我们的桌面上使用 UEFI。它非常适合我们的 Hyper V 映像——我们可以整天创建第 2 代虚拟机。在我们需要重新成像之前,这是真的。如何将具有现有操作系统的第 2 代 VM 设置为从 PXE 启动?

对于我的一生,我无法更改引导顺序以允许我从网络引导。在系统设置下的固件界面中,它只列出了 Windows 启动管理器。每次我们想尝试新的映像变体时,都必须删除和重新创建虚拟机,这既痛苦又缓慢。我们该如何解决这个问题?我猜我需要用 Powershell 编辑的 VM 中有一些隐藏的标志,但是缺少文档。

hyper-v uefi
  • 2 2 个回答
  • 5931 Views

2 个回答

  • Voted
  1. Best Answer
    Erik
    2017-03-15T06:23:05+08:002017-03-15T06:23:05+08:00

    我和 Tim Brigham 有同样的问题/问题。您(Grigory)确实有选择权,并不意味着我们确实有这些选择。这是我在 VM 中的启动选项的屏幕截图: 按住 shift 也不起作用。这似乎确实有效。缺少启动选项

    如何更改引导顺序(首先是 NIC):
    我做了一些研究,似乎您只能使用 powershell 更改在 Windows Server 2012 R2 或更高版本上运行的第 2 代 VM 的引导顺序。我使用以下 powershell 命令来更改引导顺序:

    $VM = Get-VM "VmName"
    $network = $VM | Get-VMFirmware |select -ExpandProperty BootOrder | where {$_.FirmwarePath.EndsWith("MAC(000000000000)")}
    $VM | Set-VMFirmware -FirstBootDevice $network
    

    现在虚拟机将从网络启动。之后,您可能需要/想要将引导顺序更改回作为第一个引导设备的文件。您还可以选择将网络保留为第一个引导设备。

    2017 年 3 月 15 日更新
    警告
    每次重新映像 UEFI 机器时,固件列表中都会添加一个额外的“bootmgfw.efi”。删除过时的 bootmgfw 文件并不是一个简单的过程;您需要在 VM 本身中使用 BCDEDIT 来清理它们。可以在此处找到有关如何执行此操作的指南。使用本指南时,请注意不要删除链接到 EFI 引导设备的 GUID

    如何更改引导顺序(文件优先):
    如果您使用上述指南删除了过时的固件条目,则可以使用以下 powershell 代码将引导顺序更改回文件优先:

    $VM = Get-VM "VmName"
    $file = $VM | Get-VMFirmware |select -ExpandProperty BootOrder | where {$_.FirmwarePath.EndsWith(".efi")}
    $VM | Set-VMFirmware -FirstBootDevice $file
    

    注意:我发现在 Windows 2012 R2 及更高版本上运行的 Gen2 VM 固件只显示“文件”选项很奇怪。我想知道:这是设计使然还是错误?

    • 2
  2. Grigory Sergeev
    2016-07-14T02:10:01+08:002016-07-14T02:10:01+08:00

    我在启用了安全启动的 Windows 8.1 和 Windows 10 Hyper-V 下运行 Windows 10 VM,我能够将网络适配器视为启动源,并且可以将其移到两台机器上的启动队列中,更进一步,我实际上可以启动到我的 WDS 映像。

    虚拟机设置

    PXE 引导

    另一种选择 - 在按住 shift 键(任何 UEFI Windows)的同时从控制台重新启动客户机,它为您提供故障排除和启动选项,您可以在其中选择从网络启动。

    使用设备进行引导

    EFI 网络启动

    但正如我测试过的那样,我收到了 TFTP 下载超时,这是通过调整 WDS 属性 -> TFTP -> 最大块大小:1024 而不是默认的 0 来修复的。

    • 0

相关问题

  • Hyper-V 企业许可 - 包含的 CAL 是否应用于每个 VM 或每个 VM?[复制]

  • Hyper-V 和 Drobo Pro

  • 小型企业的服务器虚拟化/RAID 配置

  • 交换服务器 2003 在 hyper-v 上

  • 在同一台机器上将域控制器作为 1 个 VM 和一个 RODC 作为另一个 VM 运行,它会工作吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve