昨晚我将 Windows 2008 Hyper-V 主机服务器升级到 Windows 2008 R2。升级过程非常顺利,但当它稳定为新版本时,我发现 Hyper-V 控制台 UI 中缺少 17 个虚拟机中的两个。
从 Hyper-V 事件日志中我看到
Log Name: Microsoft-Windows-Hyper-V-VMMS-Admin
Source: Microsoft-Windows-Hyper-V-VMMS
Date: 6/4/2011 2:31:26 AM
Event ID: 16300
Task Category: None
Level: Error
Keywords:
User: SYSTEM
Computer: elune
Description:
Cannot load a virtual machine configuration: General access denied error (0x80070005) (Virtual machine ID 5185AC13-4148-4AFE-9024-6E74FE3C9754)
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-Hyper-V-VMMS" Guid="{6066F867-7CA1-4418-85FD-36E3F9C0600C}" />
<EventID>16300</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x8000000000000000</Keywords>
<TimeCreated SystemTime="2011-04-05T18:31:26.432942100Z" />
<EventRecordID>641</EventRecordID>
<Correlation />
<Execution ProcessID="1964" ThreadID="2064" />
<Channel>Microsoft-Windows-Hyper-V-VMMS-Admin</Channel>
<Computer>elune</Computer>
<Security UserID="S-1-5-18" />
</System>
<UserData>
<VmlEventLog xmlns:auto-ns2="http://schemas.microsoft.com/win/2004/08/events" xmlns="http://www.microsoft.com/Windows/Virtualization/Events">
<VmName>
</VmName>
<VmId>5185AC13-4148-4AFE-9024-6E74FE3C9754</VmId>
<ErrorMessage>%%2147942405</ErrorMessage>
<ErrorCode>0x80070005</ErrorCode>
</VmlEventLog>
</UserData>
</Event>
这些“丢失”的虚拟机没有任何与之关联的在线快照。即使对于那些有的,我也根据以下情况删除并合并了快照微软的建议,并且它们“幸存了下来”。
谈到“一般访问被拒绝错误 (0x80070005)”时,似乎有很多讨论开始虚拟机。但我的情况是 Hyper-V 服务甚至无法加载配置,因此 Hyper-V 知道这些 VM 配置位置,但没有权限访问它们?
这三个 Hyper-V 服务都是使用 LOCAL SYSTEM 帐户启动的,并且这些虚拟机的“虚拟机”文件夹确实授予了完全控制权限。我从其他虚拟机观察到,它们的文件夹有虚拟机组和虚拟机 GUID 本身的额外 ACE?
我尝试复制此 ACE 结构,但 Windows 无法找到这些缺失虚拟机的 GUID 主体。是什么原因导致了此问题?
答案1
嗯,这是一个奇怪的手段。
关键是 Windows/Hyper-V 引用了某个地方的“列表”,以告诉它哪些虚拟机已在服务器上注册。我的虚拟机分散在多个驱动器上,因此有成为一个集中式存储库。结果是
C:\ProgramData\Microsoft\Windows\Hyper-V\虚拟机
有指向实际配置 XML 文件的物理位置的符号链接。我注意到有问题的 VM 链接有一个“锁”图标。
我编辑了有问题的符号链接的安全 ACL。果然,它没有像其他的一样拥有 NT 虚拟机帐户,所以我将它的完全控制权授予了用户组。重新启动 Hyper-V 虚拟机管理服务,它可以再次加载丢失的虚拟机。它似乎可以正常工作没有虚拟机帐户。
我仍然没有得到我所寻求的完整而深入的答案来解释 Hyper-V 对这些虚拟机帐户的要求,但至少可以重复使用原始虚拟机配置。