Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >解决mac根路径/只读问题

解决mac根路径/只读问题

原创
作者头像
liliane
修改于 2023-01-20 08:51:50
修改于 2023-01-20 08:51:50
9.5K10
代码可运行
举报
文章被收录于专栏:liliane随笔liliane随笔
运行总次数:0
代码可运行

导语

macOS Catalina 对根路径(/)设置了只读保护机制,以防止意外覆盖关键的操作系统文件。然而,作为开发人员,我们的程序不可避免会有操作 /xxx/xxx 文件的需求,最常见的如写日志,日志要输出到 /data/log/,因为路径不可执行写操作,无法创建对应的日志路径,会报日志文件不存在,尝试手动创建,会提示:Read-only file system。关于该问题,网上有很多文章,但大多无法直接帮助我们解决问题,在此做个记录,希望有所帮助。

基本思路

  1. 关闭完整性保护机制(SIP)
  2. 将具有读写权限的文件夹软链到根路径指定文件夹

为什么关闭 SIP 后,还要创建 links,不应该是直接就能读写根路径?下文会介绍,关闭 SIP 后,大概率还是无法执行写操作,就算能够写,为了保证安全性,最后还是需要打开 SIP,因此,需要通过步骤2,长期解决问题。

下面介绍具体操作和踩坑点,看看为什么如此简单的问题会卡在许多程序员?

关闭完整性保护机制

  1. 重启 mac
  2. 进入 recovery 模式(关于这一点,网上千篇一律,开机时长按:command + r,或者 command + option + r,或者 command + option + shift + r,自己尝试了 n 次,无法生效,最后,在参考文献2中,找到了答案,Apple M1 Mac 进入recovery 模式的方式是,开机长按电源键,直至出现启动选项。
  3. 选择“磁盘工具”,在左上角,选择“实用工具”>“终端”
  4. 进入终端,执行 csrutil disable
  5. 重启 mac
  6. 查看 csrutil status,显示如下,即为关闭 SIP 成功。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
System Integrity Protection status: disabled.

看多数文章中的介绍,关闭 SIP 后,可以通过 sudo mount -uw /,重新以可读可写的方式挂载文件系统,它可以将分区挂载到linux的一个文件夹下,从而将分区和该文件夹关联起来,访问这个文件夹就相当于访问这个分区了。但是,重启挂载会失效,需要重新挂载。可以通过“修改/etc/fstab”,来解决重启失效的问题。

然而,在 mac 下,mount -uw /,并不能成功,提示如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mount_apfs: volume could not be mounted: Operation not permitted
mount: / failed with 77

无法 mount,就尝试绕道 link 解决。

将具有读写权限路径link到/文件夹

关闭 SIP 后,在用户目录下 mkdir ~/data,尝试 sudo ln -s ~/data /data,发现仍然提示:Read-only file system。

查阅资料发现,mac link到根路径,需要通过修改 /etc/synthetic.conf 实现。例如,将 ~/data 连接到 /data。

sudo vim /etc/synthetic.conf,添加记录如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data /Users/$用户名/data

$用户名 为自己的用户名。注意,中间要用 tab 分隔。保存后,查看 / 目录如下:

最后,别忘记重新打开 SIP,方法同步骤1,命令改为 csrutil enable 即可。

参考文献

  1. 关于苹果只读文件系统
  2. 如何解决 command+r 不生效
  3. 解决关闭SIP后仍无法创建文件夹
  4. 如何在根路径创建links文件

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
您好我在users/li/sand 这个文件夹下操作一直提示 没有权限,请问有什么解决办法吗? 上面的方法也试过了 一直报这个错误 mv ./app /binmv: fastcopy: open() failed (to): /bin/app: Read-only file systemmake: *** [install] Error 1
您好我在users/li/sand 这个文件夹下操作一直提示 没有权限,请问有什么解决办法吗? 上面的方法也试过了 一直报这个错误 mv ./app /binmv: fastcopy: open() failed (to): /bin/app: Read-only file systemmake: *** [install] Error 1
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
macOS开启HIDPI解决自定分辨率显示模糊问题
作者:matrix 被围观: 8,685 次 发布时间:2019-02-13 分类:零零星星 | 6 条评论 »
HHTjim 部落格
2022/09/26
1.7K0
macOS开启HIDPI解决自定分辨率显示模糊问题
mac 开启hidpi_开启hidpi的缺点
在macOS10.15之后,系统中存放DisplayProductID和DisplayVendorID的文件夹Overrides变为只读,若有些tool开HiDPI遇到一些麻烦或失灵的情况,可参考下文用one-key-hidpi的简易方法,具体如下:
全栈程序员站长
2022/08/03
3.8K0
mac 开启hidpi_开启hidpi的缺点
mac环境下java、maven、git、rsa等配置
在终端下输入:open .bash_profile 命令,会打开此文件(如果没有则手动创建),添加如下内容。
saintyyu
2022/03/11
1.1K0
靠!安装了macOS Catalina(10.15.4)后,文件系统都乱套了
最近闲来无事,决定将我的两台apple电脑升级成最新的苹果系统(macOS Catalina),当然,由于以前升级过多次mac系统,所以毫不犹豫从app store下载了最新的macOS Cetalina系统,当然,下载很快,安装也很快,过程就不说了,so easy。
蒙娜丽宁
2020/05/04
2.3K0
日常问题——Mac下新建目录报Read-only file system
今天在根目录下,新建目录时出现了Read-only file system提示为只读的错误。电脑最近并没有非正常关机之类可能导致文件损伤的操作,但是最近倒是进行了一次系统更新。
栗筝i
2022/12/01
5K0
macos 借用 ntfs-3g, 使得macos 支持 ntfs 文件系统 读写;- 亲测可用
macos 支持 ntfs文件系统,有商业软件给予支持如: Paragon NTFS for Mac 和 Microsoft NTFS for Mac by Tuxera;但是都是收费产品;
西湖醋鱼
2020/12/30
2.4K0
如何在 Mac 上使用 Xcode LLM / Apple Intelligence 教程
本文旨在不禁用系统完整性保护 (SIP) 或者仅禁用一次的情况下,实现永久在任意 Mac 上使用 Xcode LLM / Apple Intelligence。
轩源
2024/11/22
6660
如何在 Mac 上使用 Xcode LLM / Apple Intelligence 教程
在 MacOS 系统下创建 /home 目录的方法
在「在 MacOS 系统的 /home 目录下创建文件夹的方法」这篇文章中,我们描述了如何在/home目录下创建文件夹的方法,但如果我们的 MacOS 系统连/home目录都没有呢?
CG国斌
2021/12/07
4.2K0
在 MacOS 系统下创建 /home 目录的方法
禁用Mac SIP – System Integrity Protection
全名:System Integrity Protection,中文是:系统完整性保护。它的主要功能是保护系统文件及目录,以免这些文件及目录被没有特定权限的进程修改。
收心
2022/11/18
4.6K0
用 2W+ 的笔记本是一种怎样的体验?
申请的时候,提示有新款 M1 MacBookPro,自然而然就更换新款电脑啦。标配版有现货,升级版(比如 从 16G 升级到 32G 内存,或者 512 SSD 升级到 1T)无库存,需要等一个月左右。
程序猿石头
2022/11/02
6170
用 2W+ 的笔记本是一种怎样的体验?
sudo rm-rf引发的惨案——Linux硬盘的分区和挂载
前不久,刚使用组里的一台服务器,这台服务器平时用的人不多, 没有严格的管理机制,大家都使用同一个用户名进行远程连接,人人都有sudo权限。我因为对Linux不是非常熟悉,使用管理员权限下执行了一个删除文件的操作(sudo rm-rf),直接把系统搞崩,差点给全组造成难以估量的损失,从删库到跑路差点在我身上上演。。
zstar
2022/10/31
3.1K0
sudo rm-rf引发的惨案——Linux硬盘的分区和挂载
Mac下使用Pecl安装PHP的Swoole扩展实践
前段时间把Mac系统重装了,PHP的一些扩展都没了,昨天需要调试一个swoole开发的项目,发现命令行中的PHP是系统自带的,如果安装swoole扩展很不方便;需要自己手动去下载swoole的源码,然后去编译swoole的源码,并自己配置,整个过程非常繁琐;
汤青松
2019/12/03
2.2K0
谁再说不熟悉Linux命令,就把这个给他扔过去!
虽然平时大部分工作都是和Java相关的开发, 但是每天都会接触Linux系统, 尤其是使用了Mac之后, 每天都是工作在黑色背景的命令行环境中. 自己记忆力不好, 很多有用的Linux命令不能很好的记忆, 现在逐渐总结一下, 以便后续查看.
程序员小猿
2021/11/23
5520
原 荐 MAC 读写NTFS硬盘
前两天买了一块1T的硬盘,最近又换了MAC但同时家里电脑又是WIN,可愁坏了用哪种文件系统(HFS+,NTFS)。 最后查了很多资料,最后决定采用四个分区用NTFS,一个分区用HFS+(苹果日志类型)用于Time Machine。 然后在MAC上启用NTFS读写,默认只能读无法写。 硬盘初始化 根据计划方案,无法使用MAC自带磁盘工具或者WIN磁盘工具初始化,所以使用了:Diskgenius. 1、分区类型 删除所有分区,然后手动新建分区,转为GUID类型。 2、第一次新建分区 会提示新建EFI分区,选中所
霡霂
2018/06/04
1.2K0
Mac 上安装 Scrapy 报错,Operation not permitted
前几天在 Mac 上安装 Scrapy,按照官方文档的步骤使用 pip 安装 scrapy 后报一个权限错误
用户9127725
2022/08/08
6130
苹果电脑不能新建文件夹 mac移动硬盘不能新建文件夹
在使用苹果时经常会遇到无权限导致创建文件、文件夹失败,尤其是在系统更新升级后,出现情况的机率更大。导致苹果电脑不能新建文件夹的原因是什么?我们该怎么解决mac移动硬盘不能新建文件夹呢?本文为大家解决苹果电脑无法新建文件夹的问题。
逐梦岛
2024/04/26
1.7K0
苹果电脑不能新建文件夹 mac移动硬盘不能新建文件夹
class dump使用方式和原理
如果这个时候没有发现usr文件夹 说明其隐藏起来了 去查询mac系统下怎么显示隐藏文件
iOS Magician
2023/12/02
5320
class dump使用方式和原理
【Mac】解决无法将 chromedriver 移动到 /usr/bin 目录下问题
原文出处:https://www.cnblogs.com/divebombchen/p/10513139.html
SL_World
2021/09/18
2.1K0
Linux常用命令
我总结了常用的Linux命令,方便你的Linux使用。下面是格式说明,你现在可以跳过,直到遇到疑问时再来查询。 $ 命令行提示符 粗体表示命令 斜体表示参数 filename, file1, file2 都是文件名。有时文件名有后缀,比如file.zip command 命令名 dir 文件夹名 string 字符串 username 用户名 groupname 组名 regex 正则表达式 path 路径 device 设备名 partition 分区名 IP IP地址 doma
Vamei
2018/01/18
1.7K0
Mac免费NTFS支持10.13,解决文件变灰(附加属性)、过期、Finder侧边栏等问题
开机时按 Command+R 键进入恢复模式,在工具菜单中选择终端,在终端中输入下面命令回车并重启 $ csrutil disable 如果没有安装过Command Line Tools,在终端中运行下面命令安装 $ xcode-select --install 在终端中运行下面命令安装brew $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/instal
緣來
2018/09/18
1.4K0
推荐阅读
相关推荐
macOS开启HIDPI解决自定分辨率显示模糊问题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验