How to fix “mount_apfs: volume could not be mounted: Permission denied”, on macOS

fix mount apfs error
The error "mount_apfs: volume could not be mounted: Permission denied"
typically occurs on macOS when trying to mount an APFS (Apple File System) volume, often during disk repairs, external drive access, or system recovery attempts. This issue is usually related to permissions, System Integrity Protection (SIP), or disk corruption.
Here’s how to troubleshoot and fix it:
Step by step fix “mount_apfs: volume could not be mounted: Permission denied”: –
Step 1: Verify the Context
- Where are you seeing this error?
- In Terminal (e.g., using
diskutil
ormount
commands)? - When connecting an external drive?
- During macOS Recovery Mode?
- What are you trying to do? Mount a specific volume, repair a disk, or access data?
Let me know the specifics if possible, but I’ll provide general solutions below that cover common scenarios.
Step 2: Basic Checks
1- Check Disk Status:
- Open Terminal and run:
diskutil list
- Identify the disk/volume causing the issue (e.g.,
disk1s2
for an APFS volume). - Try mounting it manually:
diskutil mount disk1s2
- If you see “Permission denied,” proceed to the next steps.
2- Ensure Admin Privileges:
- If running commands in Terminal, prepend
sudo
to ensure you have sufficient permissions:sudo diskutil mount disk1s2
- Enter your admin password when prompted.
3- Check Physical Connection:
- For external drives, unplug and replug the drive, then retry mounting.
Step 3: Run First Aid in Disk Utility
- Open Disk Utility (from
Applications > Utilities
or Recovery Mode). - Select the affected volume or disk in the sidebar.
- Click First Aid and let it check and repair disk errors.
- After repair, try mounting again:
diskutil mount diskXsY
- If it fails with the same error, move to the next step.
Step 4: Check System Integrity Protection (SIP)
SIP can restrict mounting operations, especially in Recovery Mode or for system volumes.
1- Check SIP Status:
- Boot into Recovery Mode (restart, hold
Command + R
until the Apple logo appears). - Open Terminal from the Utilities menu and run:
csrutil status
- If it says “enabled,” SIP might be blocking the mount.
2- Temporarily Disable SIP:
- In Recovery Mode Terminal, run:
csrutil disable
- Restart your Mac (
reboot
in Terminal or via the Apple menu). - Try mounting the volume again in normal mode:
sudo diskutil mount diskXsY
3- Re-enable SIP (After Fixing):
- Boot back into Recovery Mode and run:
csrutil enable
- Restart.
Step 5: Fix Permissions Manually
If the volume’s permissions are corrupted, you might need to adjust them.
1- Check Ownership:
- Run:
sudo diskutil info diskXsY
- Look for the “Owner” and “Mount Point” fields. If ownership is incorrect, proceed.
2- Reset Permissions:
- Unmount the volume if it’s partially mounted:
sudo diskutil unmount diskXsY
- Change ownership (replace
username
with your actual user):sudo chown username:staff /dev/diskXsY
- Mount again:
sudo diskutil mount diskXsY
Step 6: Handle APFS Container Issues
If the volume is part of an APFS container, the container itself might be the issue.
1- List APFS Containers:
- Run:
diskutil apfs list
- Identify the container (e.g.,
disk1
) and the specific volume (e.g.,disk1s2
).
2- Repair the Container:
- Run:
sudo diskutil apfs repairContainer disk1
- Then try mounting the volume again.
Step 7: External Drive-Specific Fixes
If this is an external drive:
- Check Encryption: If the volume is encrypted (e.g., FileVault or APFS encrypted), unlock it first:
diskutil apfs unlockVolume diskXsY
- Enter the password or recovery key when prompted.
- Reformat (Last Resort): If nothing works and you don’t need the data, erase and reformat the drive in Disk Utility (choose APFS or another format).
Step 8: Advanced Debugging (if Needed)
If the issue persists:
- Check Logs:
log show --predicate 'subsystem == "com.apple.diskmanagement"' --last 1h
- Look for detailed error messages about the mount failure.
- Force Mount (Risky):
sudo mount -t apfs /dev/diskXsY /Volumes/MyMountPoint
- Create the mount point first:
sudo mkdir /Volumes/MyMountPoint
.