How to Enable Write Access on Root Volume on macOS Big Sur and Later

EliteMacx86

Administrator
Staff member
Joined
Jul 22, 2018
Motherboard
Supermicro X11SPA-T
CPU
Intel Xeon W-3275 28 Core
Graphics
2xAMD RX 580 8GB
OS X/macOS
11.0.x
Bootloader
  1. OpenCore
Mac
  1. MacBook Pro
Mobile Phone
  1. Android
  2. iOS
How to Enable Write Access on Root Volume in macOS Big Sur

An EliteMacx86 Exclusive Guide - This guide covers mounting of system root volume on macOS Big Sur. By following this guide, you'll be able to have write access onto the system's root volume.

Overview


Recently, Apple announced their new macOS lineup i.e macOS Big Sur 11.0 which is Apple's newest and most awaited OS. Catalina adding massive updates and improvements from its predecessor, Mojave.

Packed with new features and functionality, the most noticeable update can be seen and experienced is the new GUI. Featuring a much more "iOS" look and feel and as smooth as butter. Along with this, Apple has introduced some security protection which prevents the writing to system's root volume. Since macOS Catalina, Apple has split the OS and user data into two volumes where the system volume is "read-only" by default which prevents modification of system root volume.

A very quick way to mount system volume was to use "sudo mount -uw /" in Terminal. However, with Big Sur, this doesn't works and the command throws an error. If you've attempted to make the root volume as writable using the command which works on macOS Catalina, you might be familiar with the following error.
Code:
mount_apfs: volume could not be mounted: Permission denied
mount: / failed with 66

With macOS Big Sur, Apple added some more protection and unfortunately the system root volume cannot be mounted. The error is very normal on Big Sur and the above command will not allow you to mount the system's root volume. In macOS Big Sur, the "System" directory has been completely sealed and it will not accept any changes. All the kexts which you used to install into S/L/E, now gets installed onto L/E instead. Even if you attempt to install Mojave or Catalina and you have some third party kexts on S/L/E and proceed with an update, the system will remove those kexts and you'll have those kexts in a folder at your Desktop after the upgrade. However, installing the same kexts to L/E directory will work and will load too. But there are kexts which must be installed in S/L/E to be particular and as Big Sur doesn't gives you the option, you're out of luck.

Why writing to System's Root Volume is Required?


The real question comes that why do you need to mount the system's root volume and modify it when Apple doesn't allows it? A simple answer is in some environments, this can be needed for some special purpose such as Hackintosh where you may have a need to modify the kexts in S/L/E directory or even for the real Mac users who are willing to run macOS Big Sur on their unsupported Macs.

Mounting System's Root Volume


Interestingly, there is an actual workaround for mounting the system's root volume and having write access to it. Where you can modify the files and make the changes. To enable write access onto your system's volume, follow the steps outlined below.

⚠️ WARNING:

Due to the update functionality in macOS Big Sur, changing the system volume can break OS updates. By using this guide, you understand all the risks involved and EliteMacx86 shall not be liable for any of the damages that might occur and takes no responsibility for any of your action. Please proceed with caution!

Creating Mount Point for the volume
The very first step is to create a mount point for the volume where the system's root volume will be mounted. To create the mount point, execute the commands below.

1. Open Terminal.
2. Type:
Code:
mkdir ~/livemount

Finding the required Disk Identifier
The next step is to find the target disk name for mounting. To find the disk name, follow the steps below.

1. Open Terminal.
2. Type:
Code:
diskutil list
3. This will list all the connected drives on the system. You'll find something similar like the screenshot attached below. The disk name are hidden for the privacy reasons.

Screen Shot 2021-03-15 at 2.17.48 AM.png


4. The /dev/disk2 is the actual disk and the capacity is 250GB. The APFS container has been created on disk2 as /dev/disk5 which is the system. A very quick way to determine the disk identifier is finding one with "synthesized" and look for the system's volume name. In our case, it's Macintosh HD, your's could be different from ours. Once you locate the volume name, just check for the identifier. In our case, the volume name is "Macintosh HD" and the identifier is "disk5s5" and that's the disk name we're looking for.

Mounting Drive
The next step is to mount the drive into the directory "livemount" we created in the very first step. To mount the drive, follow the steps below.

1. Open Terminal.
2. Type:
Code:
sudo mount -o nobrowse -t apfs  /dev/disk5s5 ~/livemount
3. You'll be prompted for the password. Simply enter your system's password and press enter.

Finding Mounted Volume
Now, as you have mounted the volume, you'll need to open the mounted volume for write access. To open the mounted volume, there are two ways.

1. Open Finder.
2. Type:
Code:
~/livemount

The other way is to manually find the path. The path for the mounted volume is
Macintosh HD/Users/Yourusername/Macintosh HD

Notes:
  • The Macintosh HD may differ from your actual system's volume name.
  • "Yourusername" is your user name.

Rebuilding Kernel Cache
If you have edited either S/L/Kernel, S/L/E directory, you'll also need to rebuild a kernel cache
Code:
sudo kmutil install --volume-root ~/livemount --update-all

Creating Snapshot
Once you have finished editing the system volume, you'll need to create a new snapshot. To create a new snapshot, follow the steps below.

1. Open Terminal.
2. Type:
Code:
sudo bless --folder ~/livemount/System/Library/CoreServices --bootefi --create-snapshot
 
Last edited:

drumeau973

New member
Joined
Jun 10, 2021
Motherboard
Apple
CPU
Apple
Graphics
Apple
OS X/macOS
11.0.x
Bootloader
  1. Clover (UEFI)
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Thank you so much for this! I have been able to get all the way through your amazing directions but unfortunately I am stuck at creating a new snapshot. I attached a screenshot with the error I am receiving. Any ideas of what I need to do?
Screen Shot 2021-06-10 at 1.39.53 PM.png
 

EliteMacx86

Administrator
Staff member
Joined
Jul 22, 2018
Motherboard
Supermicro X11SPA-T
CPU
Intel Xeon W-3275 28 Core
Graphics
2xAMD RX 580 8GB
OS X/macOS
11.0.x
Bootloader
  1. OpenCore
Mac
  1. MacBook Pro
Mobile Phone
  1. Android
  2. iOS
Thank you so much for this! I have been able to get all the way through your amazing directions but unfortunately I am stuck at creating a new snapshot. I attached a screenshot with the error I am receiving. Any ideas of what I need to do? View attachment 3529
Make sure you're using sudo.
 

drumeau973

New member
Joined
Jun 10, 2021
Motherboard
Apple
CPU
Apple
Graphics
Apple
OS X/macOS
11.0.x
Bootloader
  1. Clover (UEFI)
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
I am using sudo and continuing to receive the "operation not permitted" error.
 

EliteMacx86

Administrator
Staff member
Joined
Jul 22, 2018
Motherboard
Supermicro X11SPA-T
CPU
Intel Xeon W-3275 28 Core
Graphics
2xAMD RX 580 8GB
OS X/macOS
11.0.x
Bootloader
  1. OpenCore
Mac
  1. MacBook Pro
Mobile Phone
  1. Android
  2. iOS
I am using sudo and continuing to receive the "operation not permitted" error.
Attach the Terminal output for the command and the error.
 

Forum statistics

Threads
505
Messages
4,680
Members
4,265
Latest member
echozerimad1212