MacOS – VeraCrypt after Sierra upgrade: mount_osxfuse: the OSXFUSE file system is not available (255)

macostruecrypt

After upgrading my 2015 MBP to Sierra this past weekend, I've had a lot of issues with Samba, Veracrypt, and even VMware Fusion.

VeraCrypt will frequently give the error in the title, mount_osxfuse: the OSXFUSE file system is not available (255), when I attempt to mount a valid encrypted volume. There's nothing wrong with the volume itself, and sometimes if I reboot, I can get VeraCrypt to work properly, but it's certainly touch and go.

OSXFUSE documentation and googling hasn't suggested any fixes for this issue.

I've attempted to uninstall and reinstall OSXFUSE without any luck. Whether it works or not seems random after restarts. Obviously, restarting this often sucks. I restarted on average 3-4 times a year on Yosemite, and I've restarted about a dozen times since upgrading to Sierra dealing with these problems. I'd like to know if there's a permanent fix for this, otherwise I'll be dealing with my encrypted volumes on a Win 10 VM (when VM Fusion works, anyway…yeesh).

Best Answer

The following script from this link fixes the problem: https://github.com/osxfuse/osxfuse/issues/315

I called this kextclean:

#!/bin/bash

function status() {
    kextstat | grep org.virtualbox.kext > /dev/null 2>&1 ;
    vbox=$((1-$?))
    kextstat | grep com.github.osxfuse > /dev/null 2>&1 ;
    fuse=$((1-$?))
}

status

if [ "$1" == "vbox" ] ; then
    if [ $vbox == 1 ] ; then
    echo "Already vbox"
    else
        sudo kextunload -b com.github.osxfuse.filesystems.osxfuse
        sudo kextutil "/Library/Application Support/VirtualBox/VBoxDrv.kext" -r "/Library/Application Support/VirtualBox"
        sudo kextutil "/Library/Application Support/VirtualBox/VBoxNetAdp.kext" -r "/Library/Application Support/VirtualBox"
        sudo kextutil "/Library/Application Support/VirtualBox/VBoxNetFlt.kext" -r "/Library/Application Support/VirtualBox"
        sudo kextutil "/Library/Application Support/VirtualBox/VBoxUSB.kext" -r "/Library/Application Support/VirtualBox"
    fi
elif [ "$1" == "fuse" ] ; then
    if [ $fuse == 1 ] ; then
    echo "Already fuse"
    else
        sudo kextunload -b org.virtualbox.kext.VBoxUSB -b org.virtualbox.kext.VBoxNetFlt -b org.virtualbox.kext.VBoxNetAdp
        sudo kextunload -b org.virtualbox.kext.VBoxDrv
        sudo kextutil /Library/Filesystems/osxfuse.fs/Contents/Extensions/10.12/osxfuse.kext
    fi
elif [ "$1" == "status" ] ; then
    echo "vbox = $vbox"
    echo "fuse = $fuse"
else
    echo "Run $0 <vbox|fuse|status>"
fi