问题现象

启动 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.vhdx
  • smol-bin.vhdx
  • sessiondata.vhdx
  • vmlinuz
  • initrd

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