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:
- Unmount any connected USB devices to the system by running below command $diskutil unmount /Volumes/USBDISK.
- 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:
- Unmount any connected USB devices to the system by running below command $diskutil unmount /Volumes/USBDISK.
- 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.
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.
ReplyDeletea013mdtrv:~ 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.
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
DeleteNot working in El Capitan.. The USB Storage devices working fine when the Mac is rebooted or even in user logoff/logon.
ReplyDeleteThanks,
Alex L
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.
DeleteYou can even write a lauchdaemon file to perform unload of these kexts upon boot.
DeleteThis seems great! Is their any solution to control the access of USB drive per user?
ReplyDeletePer user may not be possible from unloaded kexts , User level apps might come handy here to cotrol USB access.
DeleteI keep getting a
ReplyDelete"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
after running command ask me for password, how caould i skip this? i will send this command to several computers via LANDESK software.
ReplyDeletesudo has a option to supply password to it. Please read man page of sudo. man sudo would help!
DeleteWhy iMac Macbook production before Maverick Osx no internet recovery
ReplyDeletethis an answer