使用wtakuo/xv6-env Docker镜像执行make qemu时遇权限拒绝错误
解决xv6-env容器中
make qemu的fs.img: Permission denied问题 问题分析
挂载宿主机目录到容器后,执行make qemu时需要创建fs.img文件,但当前容器用户没有该目录的写入权限,导致权限拒绝错误。
解决方案
方案1:以root用户启动容器
修改Docker启动命令,添加-u root参数以root身份进入容器,获得完全权限创建文件:
docker run -it --rm -u root -v $(pwd):/home/xv6/xv6-riscv wtakuo/xv6-env
进入容器后直接执行make qemu即可。
方案2:匹配宿主机与容器内用户权限
- 进入容器,查看当前用户的UID和GID:
docker run -it --rm -v $(pwd):/home/xv6/xv6-riscv wtakuo/xv6-env id
输出示例:uid=1000(xv6) gid=1000(xv6) groups=1000(xv6)
- 退出容器,在宿主机当前目录执行权限修改命令(替换为上述输出的UID/GID):
sudo chown -R 1000:1000 .
- 重新启动容器并执行
make qemu即可。
方案3:临时修改容器内目录权限
进入容器后,先修改挂载目录的权限:
sudo chown -R $(whoami):$(whoami) /home/xv6/xv6-riscv
再执行make qemu。
内容的提问来源于stack exchange,提问作者Haj-Rezvan
相关产品推荐
相关产品推荐

