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?
Post not yet marked as solved Up vote post of jichi_zhang Down vote post of jichi_zhang
32k views

Replies

Just got my first Mac ever, with the release of the Apple M1 Macbook Pro. While it's understandable that a shift to a new architecture would come with certain frustrations that require patience, it seems that some of the frustrations are not related to a shift in architecture. I'm still trying to figure out how to remount the rootfs in read-write mode. Going from Windows to Linux, due to variety, freedom, powerful tools, I guess I wasn't expecting not to be able to do what I want with my computer. The technology and design of this system is fascinating and beautiful, but I'm starting to question if this purchase was a huge mistake now.



You may have missed this up thread, so I’m repeating it here…

I'm still trying to figure out how to remount the rootfs in read-write
mode.

Most folks can achieve their goals using synthetic.conf (see its man page).

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@apple.com"
I have configured the latest Apache server on my Big Sur mac. I can start it using apachectl start, and it runs great.

I would like to start it automatically each time the machine boots, even if I have not logged on. That means that it must run as a Launch Daemon (not as a Launch Agent).

Apparently, the plists for all Launch Daemons must be in /System/Library/LaunchDaemons, and Big Sur will not permit me to delete the system supplied org.apache.httpd.plist (which does not work) from this directory or install my own copy of org.apache.httpd.plist into this directory, nor does it allow me to sudo launchctl load a plist that is not in this directory.

That is why I want to modify the root volume. But I would be happy with any other solution that allows me to automatically start my Apache server when I boot my Big Sur mac.
I think it is exactly what I need right now!! I need to try that solution

https://developer.apple.com/forums/thread/649832?answerId=659546022#659546022

for pasting the vendor I need for my screen to /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-*

can you please fxgst explain me how to run your writeable_root on GitHub??

You explain this: Build the program using clang writeable_root.c -o writeable_root and run it with ./writeable_root

I am not familiar with github and I don' t now what should I do with these instructions! can you help me please??

Trust me: you really don’t want to do this in Big Sur. As explained above, in order to do this you have to break the seal on the System volume. You can’t then reseal it. Ever.

That's not entirely true. I for example needed to modify the /usr directory, so I followed the tutorial and, yes, had to leave SIP disabled afterwards. However, you can reenable SIP after you install an official Apple update which tinkers with the root volume. At least that worked for me. I suppose that makes the checksum kosher again, or something.

That said, this locking down of the OS is becoming obnoxious. If I work on a desktop, it's also because I need to access the system freely, something that, say, iOS would be woefully inadequate for. By all means, throw up all kinds of dire warnings if we try and do stuff that might be dangerous but please, Apple, don't castrate macOS any further.

I need to install a driver, but when I add the code: "sudo mount -uw /" it denies me that the code replaces it in Big Sur since I have old, but very expensive software that I need to install