Skip to main content

How to disable USB ports on Mac OS X Mavericks, Yosemite or El Capitan ?

We might wonder how to disable the USB ports on Mac to prevent data copy to external USB mass storage devices. The USB kext on os x is loaded at the time of start of the system, this can be loaded / unloaded using kextload or kextunload command. To disable USB port on Mac , follow below steps:

On Macs running Mountain Lion, Mavericks  and Yosemite:

  1. Unmount any connected USB devices to the system by running below command                  $diskutil unmount /Volumes/USBDISK.
  2. Now unload the USB related kernel extensions in the following order using kextunload command.
           sudo kextunload -b com.apple.driver.AppleUSBCardReader

           sudo kextunload -b com.apple.driver.AppleUSBODD

           sudo kextunload -b com.apple.iokit.IOUSBMassStorageClass


       This will unload the USB kext and disable the USB ports for storage devices on Mountain Lion, Mavericks  and Yosemite.

On Mac running El Capitan:

  1. Unmount any connected USB devices to the system by running below command                  $diskutil unmount /Volumes/USBDISK.
  2. Now unload the USB related kernel extensions in the following order using kextunload command.
          sudo kextunload -b com.apple.iokit.IOUSBMassStorageDriver

      
      This should disable the USB ports for external storage devices.




To load back the USB kext or Enable USB ports follow below steps :

      On Macs running Mountain Lion, Mavericks  and Yosemite:

       1. Run the kextload command to load above unloaded kexts in reverse order of unload.

           sudo kextload -b com.apple.iokit.IOUSBMassStorageClass

           sudo kextload -b com.apple.driver.AppleUSBODD

           sudo kextload -b com.apple.driver.AppleUSBCardReader

      This will enable the USB port on the OSX system for storage devices.


    On Macs running El Capitan (11.0.x):

      1. Run the kextload command to load above unloaded kexts in reverse order of unload.
  
           sudo kextload -b com.apple.iokit.IOUSBMassStorageDriver

           sudo kextload -b com.apple.driver.AppleUSBCardReader (If your Mac has card reader)
           sudo kextload -b com.apple.driver.AppleUSBODD


        This will enable the USB port on the OSX system for storage devices.



   
           






Comments

  1. I just tried the command "sudo kextunload -b com.apple.iokit.IOUSBMassStorageDriver" on my Mac running on El-Captain. But the following error is getting.

    a013mdtrv:~ root# sudo kextunload -b com.apple.iokit.IOUSBMassStorageDriver
    (kernel) Kext com.apple.iokit.IOUSBMassStorageDriver not found for unload request.
    Failed to unload com.apple.iokit.IOUSBMassStorageDriver - (libkern/kext) not found.
    a013mdtrv:~ root# sudo kextload -b com.apple.driver.AppleUSBFTDI

    Please help me with this issue.

    ReplyDelete
    Replies
    1. If you are getting error as "Kext com.apple.iokit.IOUSBMassStorageDriver not found for unload request." then the kernel extension is not currently loaded in the system. The kext if loaded only can be unloaded. restart your system to verify whether com.apple.iokit.IOUSBMassStorageDriver kext is loaded or not by running kextstat command

      Delete
  2. Not working in El Capitan.. The USB Storage devices working fine when the Mac is rebooted or even in user logoff/logon.

    Thanks,
    Alex L

    ReplyDelete
    Replies
    1. Please note the kexts unless removed gets reloaded again when system is rebooted. If you dont want the kexts to load on reboot then move the respective kexts to another location on the system. I would not recommend moving device related kexts from their default locations.

      Delete
    2. You can even write a lauchdaemon file to perform unload of these kexts upon boot.

      Delete
  3. This seems great! Is their any solution to control the access of USB drive per user?

    ReplyDelete
    Replies
    1. Per user may not be possible from unloaded kexts , User level apps might come handy here to cotrol USB access.

      Delete
  4. I keep getting a
    "Can't remove kext com.apple.iokit.IOUSBMassStorageDriver; services failed to terminate - 0xdc008018.
    Failed to unload com.apple.iokit.IOUSBMassStorageDriver - (libkern/kext) kext is in use or retained (cannot unload)."

    Is there anyway around that?

    Thanks

    ReplyDelete
  5. after running command ask me for password, how caould i skip this? i will send this command to several computers via LANDESK software.

    ReplyDelete
    Replies
    1. sudo has a option to supply password to it. Please read man page of sudo. man sudo would help!

      Delete
  6. Why iMac Macbook production before Maverick Osx no internet recovery
    this an answer

    ReplyDelete
  7. There is a reason why I bought a Mac, it was not to be one of the cool kids that wanted the best of the best. No it was because of the music production I do on it. Hours and hours sitting in front of my Mac copying, pasting, moving, deleting, hour after hour just beating on my Mac in a endless assault to get my work done. That is the key part, my work. I work from home, it is great, but even if it is from home it is still work and it still needs to get done. So my Mac, I have it because it is fast, gets the job done and comes back for more.

    But what happens when it doesn't want to do those things anymore?

    I move around massive amounts of information and yes even on the almighty Mac this can cause a problem after a while. Things fragment, programs get corrupted issues come up. My light speed Mac slows down to a crawl and all of the sudden I simply can not get any work done. Because I work from home there is no IT guy to call and ask to come fix it. No instead I have to figure out what is wrong. I am lucky, I did, but not after trying everything under the sun first and wasting countless hours looking for one program that can do what I needed instead of ten programs. One program to lead them all….okay that was a lame Lord of the rings reference, but that program was/is Detox My Mac. A simple to use program that did not just fix my issues, it put my Mac on overdrive again. A few clicks and my Mac was clean and ready to rock and roll again.

    Read more here:- http://detox-my-mac.com?vhbshygdf398432

    ReplyDelete

Post a Comment

Popular posts from this blog

How to find firmware or boot ROM version in Mac OS X

Firmware and boot ROM version of your mac can be found in two ways.
Way 1 :
1. From "Apple" menu , choose "About This Mac" menu item. 2. Click " More Info " to open "System Profiler" application. 3. Under Contents -> Select Hardware Tree item.
On the right side panel Under hardware overview section, we can see Boot ROM Version and SMC (Firmware) Version.








Way 2 :
Run the below command in terminal to get boot ROM version and SMC(firmware) version :
$ system_profiler SPHardwareDataType | grep -i "Version" | awk -F ':' '{print $1 $2}'

How to boot into recovery mode on mac without holding Command + R Key on keyboard ?

Generally well known method to boot the mac into recovery mode is by holding the Command + R on keyboard while mac is turned on. However you can force the mac to boot into recovery mode upon next reboot by changing the nvram setting. To do that, Run below command.  

sudo nvram "recovery-boot-mode=unused" sudo reboot