7

After updating to big sur, I can no longer mount the root as writable (even with SIP disabled):

sudo mount -uw /
mount_apfs: volume could not be mounted: Permission denied
mount: / failed with 66

How can I fix this?

7
  1. Disable FileVault
  2. Reboot into recovery mode and run:
    csrutil authenticated-root disable
    
  3. Reboot back into MacOS
  4. Find your root mount's device - run mount and chop off the last s, e.g. if your root is /dev/disk1s2s3, you'll mount /dev/disk1s2
  5. Create a new directory, for example ~/mount
  6. Run sudo mount -o nobrowse -t apfs DISK_PATH MOUNT_PATH, using the values from above
  7. Modify the files under the mounted directory
  8. Run sudo bless --folder MOUNT_PATH/System/Library/CoreServices --bootefi --create-snapshot
  9. Reboot your system, and the changes will take place
| improve this answer | |
  • DISK_PATHis /dev/disk1s2, MOUNT_PATH is ~/mount, I assume? – nohillside Jul 6 at 6:17
  • Is csrutil authenticated-root disable needed even if you’ve already run csrutil disable? – Wowfunhappy Jul 6 at 14:29
  • @Wowfunhappy, RE: "Is csrutil authenticated-root disable needed even if you’ve already run csrutil disable?" -- The first sentence in the question states "After updating to big sur, I can no longer mount the root as writable (even with SIP disabled):" -- So with it already disabled, it also required the use of: csrutil authenticated-root disable – user3439894 Jul 8 at 18:00
  • @user3439894 I was just confirming because it seemed super odd based on how csrutil has worked up until now. – Wowfunhappy Jul 9 at 14:59
  • 1
    @Wowfunhappy, Things have changed with macOS Big Sur due to the system volume now being cryptographically signed to prevent tampering. Note, prevent, not stop all together. – user3439894 Jul 9 at 15:32
0

Our company requires to read/write environment informations under /data/webapps/appenv. Therefore, this workaround shared by a colleague of mine might not answer this question directly, but it is super useful if you want to write something under your root path!

  1. Create a file: sudo vim /etc/synthetic.conf.

  2. Write content: <dir> /System/Volumes/Data/<dir>. Notice: the space between is a tab!

    In my case, it looks like this: data /System/Volumes/Data/data

  3. Go to /System/Volumes/Data and do sudo mkdir <dir>.

  4. Then do sudo chmod -R 777 <dir>.

  5. Reboot, and your directory should now be accessible at /<dir>/.

| improve this answer | |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .