25

After the installation of Catalina all User created folders from root are moved into a separate folder and the root folder is made readonly, containing only system default folders.

How is it possible to undo this and to make the root folder writeable again?

  • Are you looking to persist this change across reboots of the OS or just gain permission one time to make some changes? – bmike Oct 14 '19 at 11:03
  • Can you explain exactly what you want to achieve? Are there specific files that you want to add to the root? Any reason that these files cannot operate from another location? Or do you want to modify existing system files? – benwiggy Oct 31 '19 at 11:57
  • @benwiggy My use case is that I simply want to create a shorter path for the files I use for development. It's much easier to type cd /devel/myproj than cd /Users/medington/devel/myproj. The synthetic directories are exactly what I want to do that. – Mark Edington Nov 23 '19 at 18:27
8

Found this thread at Apple Developer Forums, where they do make their root directory writable again. This is not persistent across reboots, so you might want to create an script that runs at startup to make the change be permanent (don't think this is necessary but would be a way out).

Original Answer:

  1. Disable SIP (recovery mode, csrutil disable).

  2. Restart.

  3. Mount drive for read and write (sudo mount -uw /).

  4. Assign rights for read and right ([sudo] chmod - R 775 /your/folder/).

  5. Delete it ([sudo] rm -rf /your/folder/).

  6. Restart.

  7. Enable SIP (recovery mode, csrutil enable).

"sudo" in square brackets means it may be required (like in my case) while others report they managed to get result without it.

  • After doing sudo mount -uw / I was able to happily hide system protected apps like Chess. My Mac is happy again ^_^ – Eric Majerus Dec 15 '19 at 22:40
29

You can create a symbolic in root directory via synthetic.conf, as an example see below the creation of a symbolic link named bar at /, which points to System/Volumes/Data/bar, a writeable location at the root of the data volume.

echo -e 'bar\tSystem/Volumes/Data/bar' | sudo tee -a /etc/synthetic.conf

After executing the command above, you need to reboot to see effects.

SEE ALSO

man synthetic.conf
  • 3
    Really oversubtle to call this "... your root volume will be writeable again" considering that the man explicitely mentions that: The synthetic entities [...] are not physically present on the disk, but when the system is booted, they behave as if they were within certain parameters..." – klanomath Oct 14 '19 at 11:43
  • 2
    Safer solution than disabling SIP – Saisurya Kattamuri Oct 16 '19 at 3:28
  • 5
    The question asked was "How to make root volume writeable again in Catalina?" - This does not make the root volume writable again! – user3439894 Oct 16 '19 at 16:23
  • 3
    I think this is the right solution proposed by Apple to be able to write in the root volume. So I would accept the question as valid. Thanks @Shawyeok for sharing it. – Peter Gibbons Oct 17 '19 at 11:35
  • 2
    @JustinKaz it's not hidden, but nor is it present under /System/Volumes/Data. If you run ls -l / you'll see dev listed. It's apparently already a "system defined" synthetic directory. – Mark Edington Nov 23 '19 at 18:31
-1

How to create a /bar directory you can write to:

  1. echo 'bar' | sudo tee -a /etc/synthetic.conf
  2. reboot
  3. Run the following commands:
sudo diskutil apfs addVolume disk1 APFSX Bar -mountpoint /bar
sudo diskutil enableOwnership /bar
sudo chflags hidden /bar  # Don't show the Bar volume on the desktop
echo "LABEL=Bar /bar apfs rw" | sudo tee -a /etc/fstab

You might need to use a different diskX number. Check diskutil list for more.

Credit to @callahad on the NixOS/nix issue tracker: https://github.com/NixOS/nix/issues/2925#issuecomment-539570232

You must log in to answer this question.

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