How can I mount an iPhone as a drive on OS X

When I plug my iPhone in on Windows, it automatically detected as a USB mass-storage device and mounts as a disk. How can I set this up in Finder under OS X?


You can't by default, since iOS in combination with OS X won't allow you to. iOS will only present the iPhone as a camera, so Image Capture can pull the pictures stored under /var/mobile/Media/DCIM, using the PTP (Picture Transfer Protocol).

Two options:

  • You can jailbreak your iPhone and use the USB Drive app from Cydia to turn the device into an actual USB drive. The "Drive only" mode would allow you to do what you want, if I read your question correctly.

  • You could install PhoneDisk for OS X, which will monitor any plugged in devices and mount them as drives

    Note though that PhoneDisk has been discontinued as of July 2012 and its features have been merged in to iExplorer.


There the handy plug-n-play tool iExplorer that slhck mentioned.. but I am not a fan of paying $35-50+ for a one time use just to mount a filesystem; especially when I already paid a ton of money to buy my Mac. Thanks iExplorer for all your work.. but there's a much better solution here.

The free answer because god bless the open source (which Apple has made billions on top of already):

  • install homebrew and open a terminal on your Mac to do the rest

After some quick research, iExplore is built on top of osxfuse and uses common protocols to exchange file information from the device. If you want to see your device, I'd recommend installing lsusb to discover the 40-digit uuid (aka serial).

To get lsusb working on OSX:

brew tap jlhonora/lsusb
brew install lsusb

After you type lsusb you will see your device listed as:

Bus $bus_num Device $dev_num: ID $vendor:$product Apple Inc. iPhone  Serial: $serial

Steps to mount the file system without jailbreaking:

  • brew tap osxfuse/osxfuse
  • brew install osxfuse
  • brew tap Homebrew/homebrew-fuse
  • brew install ifuse

Now that ifuse is installed you can mount the device like this:

cd ~
mkdir ~/iPhone
ifuse ~/iPhone/ -u $serial

This will mount the viewable apple filesystem.. but it probably won't give you everything you see in iExplorer ..like all the apps and their app data.. well no fear, ifuse can do that too. You need one more application to get all the APPID (bundle names). That would be ideviceinstaller.

brew install ideviceinstaller
ideviceinstaller -l

The output will be:

Total: $number_of apps:
$bundle_name - $bundle_version
..

Now if you already mounted the device, I should mention that you first run sudo umount ~/iPhone or click the eject link in Finder next to ~/OSXFUSE <whatever> to unmount that before continuing.

To mount a particular App Container, run:

ifuse ~/iPhone/ -u $serial --container $bundle_name

You can then either navigate to the folder in Finder or use that good 'ole BSD tool cp while you're still in your terminal.