How to make root volume writeable in Big Sur?

In Catalina, the root volume could be mounted as read/write by disabling SIP and entering the following command:

Code Block language
sudo mount -uw /

This command doesn't seem to be working under Big Sur:

Code Block language
mount_apfs: volume could not be mounted: Permission denied
mount: / failed with 66

What should I do now?

34 Replies

Try changing your Secure Boot option to "Medium Security" or "No Security" if you are on a computer with a T2 chip.
Why do you need to modify the root volume? Given the read-only system volume change we announced last year, and its further evolution this year, that’s something best avoided where possible.

My experience is that most of the common use cases for this are covered by synthetic symlinks (see the synthetic.conf man page).

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + ""
I have a 34 inch ultrawide monitor with a 3440x1440 resolution, just below the threshold for native HiDPI support. At its native resolution, the text is very small and difficult to read. Therefore, I usually use my custom display profile to enable HiDPI support at 2560x1080, which requires access to /System/Library/Displays/Contents/Resources/Overrides/

Therefore, I usually use my custom display profile to enable HiDPI support at 2560x1080, which requires access to /System/Library/Displays/Contents/Resources/Overrides/.

Thanks for the explanation.

Does the equivalent path in /Library work for this? If not, you should definitely file a bug about that. Please post your bug number, just for the record.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + ""
Try the directions below:

csrutil authenticated-root disable

sudo mount -uw /Volumes/Macintosh\ HD\ 1

sudo /System/Library/Filesystem/apfs.fs/Contents/Resources/apfssystemsnapshot -s "SnapshotName" -v /Volumes/Macintosh\ HD\ 1

sudo /System/Library/Filesystem/apfs.fs/Contents/Resources/apfs
systemsnapshot -r "SnapshotName" -v /Volumes/Macintosh\ HD\ 1

Does the equivalent path in /Library work for this? If not, you should definitely file a bug about that. Please post your bug number, just for the record.

I tested this and can confirm it works, no need to disable SIP, change the boot security or mount the system files as read-write.
FYI, I found <> most enlightening.

@jichi_zhang, I’m still interested to know if switching to the /Library directory works.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + ""
I tried the directions by Sarassine.
Didnt worked for me.
Is there any way actually to get this.
We have a legacy testing system for our products and this will create a huge change which will impact our work too much.
As for security I am not concerned much as we use our macs in a local network.
Hey all!

I have the same problem as the OP. I got a 1440p screen, the LG 27GL850, on Big Sur Beta 4.
In Catalina, I solved the issue of small UI by using a tool on GitHub called one-key-hidpi. It
makes MacOS think a display is a Retina display, making the scaling settings the Retina monitors get show in the Display options System Preferences for my 1440p.

In Big Sur, the tool no longer works since it doesn't have access to the root volume anymore.

Like everyone else here, I discovered that you have to as it is said in:


In the mounted directory, I placed necessary file at /System/Library/Displays/Contents/Resources/Overrides/ to add a display option.

By the way, I used this site: to generate the file. The site is in Chinese but the file generation part is at the bottom.

When I rebooted the system, I used a tool called RDM (download link is at very bottom of site), which gives you more options for display settings to check if the changes took effect, they didn't. However, I suspect it was fault on my part. Perhaps I made an error and put the file into the wrong Library. I will try this again tomorrow, I feel like this method is promising.

If anyone is also stuck, feel free to try this method and post your findings here, thanks.

I will also submit a feedback since I'm on the beta, but it likely won't be addressed any time soon since people have been asking for lower resolution displays to have scaling setting for years now. For now, I will be doing the real work in Catalina.
Update: my suspicions were correct, mission success!

I didn't actually use the files that were newly generated. Because I installed Big Sur on a separate partition, I replaced everything in /System/Library/Displays/Contents/Resources/Overrides/ with the old ones from Catalina which have already been modified by a tool that I used which I mentioned called one-key-hidpi.
Another update: just use this fork which uses /Libary instead

Got it working by using /Library instead of /System/Library. No need to disable SIP.
I have the same problem and I tried pretty much everything, SIP disabled, adding to /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-#/DisplayProductID-*
RDM does not let me to select the 1090x1080 with HIDPI it does not take effect after clicking on it, same with SwithResX
SIP enabled and trying the one-key-hidpi github tool writting into /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-#/DisplayProductID-*. (which btw this directory does not exist, we do have to create it I assume ? )
This is like an April fools joke that we have to spend time fixing an external monitor which is something a VERY basic laptop can do efficiently but our macbooks can't handle it.
Is apple going to fix this issue ?
Anybody facing the same issue using Catalina 10.15.7 ?
To enable HiDPI on Big Sur (11.0.1):

You need to get all the files/folders that are in /System/Library/Displays copied over to /Library. Then you can copy your resolution .plist file.

To make things easier you can just copy/paste this command into terminal:
Code Block language
sudo cp -R /System/Library/Displays /Library/

Now copy over your generated file. Here is an example:
Code Block language
sudo cp ~/Downloads/DisplayProductID-413a.plist /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-10ac/DisplayProductID-413a

Hope this helps!

Code Block
Disable FileVault
Reboot into recovery mode and run:
csrutil authenticated-root disable
Reboot back into MacOS
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
Create a new directory, for example ~/mount
Run sudo mount -o nobrowse -t apfs DISK_PATH MOUNT_PATH, using the values from above
Modify the files under the mounted directory
Run sudo bless --folder MOUNT_PATH/System/Library/CoreServices --bootefi --create-snapshot
Reboot your system, and the changes will take place


Code Block
sudo mount -o nobrowse -t afps /dev/disk1s5 ~/mount 
mount: exec /Library/Filesystems/afps.fs/Contents/Resources/mount_afps for /Users/user/mount: No such file or directory
mount: /Users/user/mount failed with 72