问题现象
启动 Claude Cowork 沙箱时报错:
Failed to start Claude's workspace
HCS operation failed:
HRESULT 0x80070005
拒绝访问
核心错误信息:
Synthetic Storage
无法打开附件 smol-bin.vhdx
错误:拒绝访问
这说明 Claude 的 Cowork VM 已经下载完成,但 Hyper-V 虚拟机账户没有权限读取虚拟磁盘文件。
修复步骤
1. 确认 Hyper-V 服务正常
检查服务状态:
Get-Service vmcompute
Get-Service vmms
正常情况下两项服务都应为:
Running
2. 关闭 Claude
避免文件被占用:
taskkill /F /IM claude.exe
3. 修复 VM 文件所有权
VM bundle 目录示例:
C:\Users\000\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\vm_bundles
执行:
takeown /F "C:\Users\000\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\vm_bundles" /R /D Y
这会把以下文件的所有权恢复到当前用户:
rootfs.vhdxsmol-bin.vhdxsessiondata.vhdxvmlinuzinitrd
4. 给管理员完全权限
执行:
icacls "C:\Users\000\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\vm_bundles" /grant *S-1-5-32-544:F /T
5. 给 SYSTEM 权限
执行:
icacls "C:\Users\000\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\vm_bundles" /grant *S-1-5-18:F /T
6. 给 Hyper-V 虚拟机账户权限
这是解决 0x80070005 拒绝访问 的关键步骤。
执行:
icacls "C:\Users\000\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\vm_bundles" /grant *S-1-5-83-0:F /T
其中:
S-1-5-83-0
对应:
NT VIRTUAL MACHINE\Virtual Machines
这是 Hyper-V 启动虚拟机时使用的账户。
7. 检查权限
执行:
icacls "C:\Users\000\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\vm_bundles\claudevm.bundle"
正确结果中应包含:
NT AUTHORITY\SYSTEM:(F)
BUILTIN\Administrators:(F)
NT VIRTUAL MACHINE\Virtual Machines:(F)
看到:
NT VIRTUAL MACHINE\Virtual Machines:(F)
说明 Hyper-V 已经可以读取虚拟磁盘。
8. 重启 Hyper-V 和 Cowork 服务
执行:
Restart-Service vmcompute -Force
Restart-Service CoworkVMService -Force
检查:
Get-Service CoworkVMService
结果应为:
Running
原因总结
原始问题链如下:
Claude 下载 VM 镜像
↓
rootfs.vhdx / smol-bin.vhdx 创建成功
↓
Hyper-V 创建 Cowork VM
↓
读取虚拟磁盘
↓
没有 NT VIRTUAL MACHINE 权限
↓
HCS 0x80070005 拒绝访问
↓
VM 启动失败
修复结果
完成上述权限修复后:
- Hyper-V 正常
CoworkVMService正常- VM 文件完整
rootfs.vhdx正常smol-bin.vhdx正常- Hyper-V 虚拟机账户获得完整访问权限
- Cowork 沙箱恢复运行
以后遇到类似错误:
HCS operation failed
0x80070005
Synthetic Storage
拒绝访问
优先检查 VM bundle 目录权限:
icacls "VM目录"
确认是否包含:
NT VIRTUAL MACHINE\Virtual Machines:(F)
如果没有,补充权限即可:
icacls "VM目录" /grant *S-1-5-83-0:F /T