如何修复M1 Mac上Lima VM的只读文件系统报错
运行环境
- 硬件:搭载Apple M1芯片的MacBook Air
- 已部署工具:Lima虚拟化工具
问题现象
创建Docker本地仓库过程中触发只读文件系统错误,执行chown命令修改文件归属时返回如下报错:
chown: changing ownership of 'oracle-19c/.DS_Store': Read-only file system chown: changing ownership of 'oracle-19c/oradata': Read-only file system chown: changing ownership of 'oracle-19c/': Read-only file system
已尝试无效操作
- 选中目标文件夹,通过系统自带的「显示简介(getInfo)」选项将权限修改为读写,问题仍存在。
问题根因
该报错和Mac宿主机本地文件夹权限无关,是Lima虚拟化工具默认挂载宿主机目录时采用只读挂载参数导致的——虚拟机内部对挂载的宿主机目录默认没有写入、修改文件属主的权限,仅在宿主机端修改文件夹权限不会同步变更Lima的挂载规则,因此操作无效。
解决步骤
- 停止当前运行的Lima实例,执行命令:
limactl stop <你的实例名>,默认实例名为default - 编辑对应Lima实例的配置文件,找到
mounts(挂载)配置段,为存放oracle-19c文件的目录添加可写权限配置,参考配置如下:
注意:无需将整个用户根目录或磁盘根目录设置为可写,仅给实际存放容器数据的目标目录开放权限即可,避免安全风险mounts: - location: "~/你存放oracle-19c的上级目录路径" writable: true - 启动Lima实例加载新配置:
limactl start <你的实例名> - 进入Lima虚拟机后执行
mount | grep 目标目录路径,检查挂载参数中是否存在ro(只读)标识,无该标识则说明挂载权限配置正常 - 回到Mac宿主机,进入oracle-19c目录执行
find . -name ".DS_Store" -delete,清理系统自动生成的缓存文件,避免这类文件干扰权限操作 - 重新执行chown修改属主、创建Docker本地仓库的操作即可正常运行。
内容的提问来源于stack exchange,提问作者Achala Kumarai
相关产品推荐
相关产品推荐

