How to manage Ext2/Ext3 disks in OS X

OS X cannot natively read the popular Ext2 and Ext3 filesystems, though support for these filesystems can be implemented if needed.

Topher Kessler MacFixIt Editor
Topher, an avid Mac user for the past 15 years, has been a contributing author to MacFixIt since the spring of 2008. One of his passions is troubleshooting Mac problems and making the best use of Macs and Apple hardware at home and in the workplace.
Topher Kessler
4 min read

The primary filesystem format in OS X is Apple's HFS Plus (or Mac OS X Extended), which is the default used for any newly formatted disk. However, to increase cross-platform support Apple has included support for several other filesystem types, including FAT32, UDF, UFS, and NTFS (in read only mode), in addition to several networking filesystem protocols such as AFP, NFS, and SMB. While this support does allow a decent amount of flexibility in what disks can be handled by OS X, it does leave out support for some popular alternatives such as the ext2 and ext3 formats used in Linux.

While Apple's cross-platform support is provided primarily for compatibility with Windows systems, there are instances when people may wish to use Linux disks with their Mac systems. Apple discussion poster "rcb4" asks:

"I was wondering since I want to dual boot Linux and OS X, putting each respective OS on their own smaller partition and creating a large /home partition for all my data"

In addition to those who might wish to dual boot OS X with Linux and manage files in both environments, there are those who might simply have an Ext2- or Ext3-formatted external drive that they need to read on their OS X systems.

There are several approaches that can be taken to manage Ext2 and Ext3 filesystems in OS X. Since the Linux OS will be the most compatible option for reading such a drive format, the first methods include simply installing Linux and using it as the filesystem management interface:

  1. Install Linux to a secondary drive
    If you have a secondary drive in your system or have partitioned your primary drive, you can install Linux to this drive and dual boot your computer. This will be the most compatible option for reading an Ext2 or Ext3 drive, but will also require you use a common filesystem format (ie, FAT32) as a transfer intermediary between the Linux and OS X installations.
  2. Install Linux to a virtual machine
    A second approach is to use a virtual machine package as an interface to a Linux installation. If you have Parallels Desktop or VMWare Fusion installed, you can easily create a virtual machine of most Linux distributions (Ubuntu is widely supported) and use that to interface with the Ext2/Ext3 disk and then either network-transfer the files to the OS X host or likewise use an external FAT32 disk as a transfer intermediary.

These options will work to view and manage your files; however, they do require setting up a full operating system installation and the use of virtual machine software.

An alternative approach to these is to use the FUSE system (Filesystem in Userspace), which is a method of bypassing the need for full filesystem support by using a bridging system that allows users to run filesystem interpreter code within their user accounts, which will access a specified filesystem and translate it into a usable storage device.

FUSE has been available for OS X in the MacFUSE project, but development for this has halted and FUSE is now available in the "FUSE for OS X" or "OSXFUSE" project, which derived from MacFUSE and shares much of its code base. To use the FUSE system to mount and manage Ext2 and Ext3 filesystems, you will need to install the FUSE system along with a plug-in for Ext2/Ext3, and then mount the drives manually within your user account.

  1. Install either MacFUSE or OSXFUSE (the latter is preferred).
  2. Install the Ext2 FUSE module.
  3. Attach your Ext2/Ext3 disk and Use Disk Utility to locate the device name of the drive. This can be done by enabling the viewing of all drive partitions, and then selecting the Ext2/Ext3 partition and getting information on it to get its device name, which will be something like "disk2s2."
  4. Create a new folder somewhere to use as a mount point (a folder in the hidden /Volumes directory is recommended, but it can be anywhere you desire).
  5. Mount the Ext2/Ext3 drive using the following Terminal command, and replacing the device name and mount path with that of your disk and your specified path:

    fuse-ext2 /dev/disk2s2 /Volumes/mountpoint

    This will by default mount the drive as read-only, but you can use the "-o force" flag to implement write support in the following manner:

    fuse-ext2 -o force /dev/disk2s2 /Volumes/mountpoint

When this process is done, the disk should mount and its contents should be made available. However, do keep in mind that there are some limitations. Since FUSE uses a bridging approach with code that runs as the user, drives may not staying mounted when a user logs out. Additionally, read and write performance may not be optimal, but it should work.

If you need ext2/3/4 support with a guarantee behind it, Paragon has a native ext driver for OS X that will provide robust support for the format; however, it will cost about $40 for a license (thanks to MacFixIt reader Rick for this information).

Questions? Comments? Have a fix? Post them below or e-mail us!
Be sure to check us out on Twitter and the CNET Mac forums.