几天前服务器中hyper-v中的一个虚拟机突然出错启动,具体错误为:帐户没有权限打开附件“D:\重要数据\hyper-v\dev-backup\Virtual Hard Disks\win_server_2022.vhdx”。错误:“拒绝访问。”(0x80070005)。(虚拟机 ID F2E2BDBB-DF66-4D03-B09A-DA8A7EEFCCA4),如下图所示:
备注:我的物理机和虚拟机系统皆为windows server 2022数据中心版
回想了一下,也没有做过什么骚操作,都是正常的关机开机,谁知第二天开机后就这样了,具体原因不再深究。
从错误信息来看,是权限相关的问题,看上去应该不难修复,于是根据Hyper-V virtual machine doesn't start with error 0x80070005 - Windows Server | Microsoft Learn
中的指示按部就班即可,非常简单,具体步骤如下:
1. 从错误信息中得知虚拟机id为:F2E2BDBB-DF66-4D03-B09A-DA8A7EEFCCA4
2. 从错误信息中得知打开时出现权限错误的虚拟磁盘为:D:\重要数据\hyper-v\dev-backup\Virtual Hard Disks\win_server_2022.vhdx
3. 于量执行以下命令即可:
icacls "D:\重要数据\hyper-v\dev-backup\Virtual Hard Disks\win_server_2022.vhdx" /grant "NT VIRTUAL MACHINE\f2e2bdbb-df66-4d03-b09a-da8a7eefcca4":F
4. 虚拟机可以重新打开了。
!!!重要!!!
(1)该命令要在cmd下执行,不要在Powershell下执行,否则会出现错误:无效参数“NT VIRTUAL MACHINE\F2E2BDBB-DF66-4D03-B09A-DA8A7EEFCCA4”
(2)该命令最后有:F 请勿忽略。