我有一台安装了 Hyper-V 的 Windows 8 Pro 计算机。现在,开发人员想改用 Vagrant 进行虚拟化,但遇到了 64 位计算机抛出错误的问题。这似乎是因为安装了 Hyper-V。
当我通过 Windows 功能对话框卸载 Hyper-V 时,系统提示我重新启动。在重新启动过程中,我短暂地看到一条类似于“致命错误 C00000d4”的消息,但机器启动速度太快,我没来得及读到其他内容。
不幸的是,我在这里主要是 Linux 系统管理员,所以我不知道该怎么做。我搜索了事件查看器,但我唯一能看到的可能相关的是一个错误:
Log Name: System
Source: Service Control Manager
Date: 2013-03-11 4:30:34 PM
Event ID: 7023
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: Renegade
Description:
The Windows Modules Installer service terminated with the following error:
The system cannot move the file to a different disk drive.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Service Control Manager" Guid="{555908d1-a6d7-4695-8e1e-26931d2012f4}" EventSourceName="Service Control Manager" />
<EventID Qualifiers="49152">7023</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x8080000000000000</Keywords>
<TimeCreated SystemTime="2013-03-11T20:30:34.831647800Z" />
<EventRecordID>6314</EventRecordID>
<Correlation />
<Execution ProcessID="520" ThreadID="600" />
<Channel>System</Channel>
<Computer>Renegade</Computer>
<Security />
</System>
<EventData>
<Data Name="param1">Windows Modules Installer</Data>
<Data Name="param2">%%17</Data>
<Binary>540072007500730074006500640049006E007300740061006C006C00650072000000</Binary>
</EventData>
</Event>
这看起来它可能与在 Windows 安装期间将 ProgramData 移动到非 SSD 驱动器有关,但我不知道它是否与 Hyper-V 功能卸载失败有关。
有人能给我指点一下吗?要么获取我收到的真正错误,要么强制 Hyper-V 卸载或...其他什么?
答案1
我最终解决了这个问题。
转到恢复控制台(或使用某种方式在不运行 Windows 的情况下编辑文件系统)。将 ProgramData 文件夹移动到 C 盘,并在其原始所在的驱动器上创建指向它的符号链接(这可以防止一切别的重新启动,然后运行卸载。它应该会成功。返回恢复控制台并将 ProgramData 文件夹移回其
我最终所做的是将 ProgramData 移回 C 盘(使用恢复控制台),将其符号链接回它原来的驱动器,运行卸载(成功),然后返回恢复控制台将其移回。
由于这有效,因此可以安全地假设卸载程序中的某处有一个硬编码的 C:\ProgramData 路径(而不是从注册表项中读取它)。