执行ddev start报operation not permitted权限错误的解决方案咨询
DDEV启动chmod权限报错修复方案
故障原因
报错路径/mnt/d/说明项目存放在WSL挂载的Windows NTFS分区上,WSL默认挂载NTFS盘符时不支持Linux原生的权限位操作,所有chmod、chown指令都会返回operation not permitted,这也是手动执行sudo chmod无效的核心原因——和sudo权限无关,是文件系统层面不支持该操作。
DDEV官方不推荐将项目放在Windows挂载盘运行,除了权限问题外还会带来数倍的性能损耗,优先选择将项目迁移到WSL原生ext4目录运行。
可行修复方案
方案1(官方推荐,体验最好):迁移项目到WSL原生目录
- 首先执行命令关闭所有运行中的DDEV实例:
ddev poweroff
- 将整个项目目录从Windows挂载盘迁移到WSL用户主目录下,示例:
# 先创建存放项目的目录 mkdir -p ~/projects # 迁移项目 mv /mnt/d/xxx/你的项目文件夹 ~/projects/
- 进入迁移后的项目目录重新启动即可:
cd ~/projects/你的项目文件夹 ddev start
该方案除解决权限问题外,DDEV运行、文件同步的速度会比在挂载盘快5-10倍,是长期使用的最优选择。
方案2(无需迁移项目的兼容方案):开启WSL的NTFS权限支持
如果暂时不想迁移项目,可以修改WSL挂载配置,开启NTFS分区的权限元数据支持,让chmod操作正常生效:
- 打开Windows管理员模式的PowerShell,执行命令关闭所有WSL实例:
wsl --shutdown
- 重新进入WSL终端,编辑WSL挂载配置文件:
sudo nano /etc/wsl.conf
- 写入以下配置内容:
[automount] options = "metadata,umask=0022,fmask=0011" mountFsTab = false
- 按
Ctrl+O回车保存,再按Ctrl+X退出编辑器,再次在管理员PowerShell执行wsl --shutdown重启WSL让配置生效。 - 回到项目目录,清理之前异常生成的缓存文件后重启DDEV:
cd /mnt/d/xxx/你的项目文件夹 sudo rm -rf .ddev/.global_commands .ddev/.homeadditions ddev start
之前手动chmod无效的补充说明
你之前执行的chmod命令本身参数有误:-rwxr-xr-x开头的-是ls命令输出里的文件类型标识,不是chmod的合法参数,对应rwxr-xr-x的正确权限参数是755,但在未开启NTFS元数据支持的情况下,哪怕命令写法正确、加了sudo,依然会触发权限报错。
内容的提问来源于stack exchange,提问作者Joel Alemaida
相关产品推荐
相关产品推荐

