I have been using a MacBook for a while now but was shocked to learn that the Mac OS can’t mount ext2/ext3/ext4 file systems by default. Unbelievable. I mean, at its core, Mac OS and Linux both belong to the Unix family of operating systems (proof) and ext is the default filesystem of Linux. So if the Mac OS can mount the filesystems of Windows (NTFS and FAT32) by default, it should be able to mount the ext filesystem too, right? Wrong. So I consulted Google for a solution but found that there was no quick, pretty and free software for this. Even the paid solutions I read about were not totally reliable and were known to corrupt people’s storage devices. Nevertheless, here is the best info I found about how you can mount an ext2/ext3/ext4 partition on a Mac.
Mounting an ext2/ext3/ext4 partition on Mac OS
When trying to mount an ext2/3/4 partition on your Mac, you have at least two options:
- Option 1: Mount the partition as read-only (RO). With this option, you can only access the files on your partition, you cannot modify them. You can copy your movies, photos etc out of the partition but you cannot delete, rename, cut or add any files/directories. I recommend this option because it poses an almost zero risk of corrupting your files or the partitions they are stored in. If this suits you, here are the steps you need to take to achieve it:
- Make sure you have a good internet connection.
- Make sure you have Homebrew installed. If you don’t, visit this page to set it up.
- Make sure you have administrator rights for the machine you want to work on. If you don’t, get someone who has those rights to do the rest of these steps for you.
- Open a terminal (or command prompt) on your machine.
- Install the package
ext4fuse
with the following commands:brew cask install osxfuse brew install ext4fuse
- Plug in the hard disk drive or storage device whose partition you want to mount.
- In the terminal, enter the command below to see a list of all the storage devices attached to your computer:
diskutil list
- Take note of the id of the partition you wish to mount. You’ll have to identify that partition by yourself based on its size, name etc as listed by
diskutil
. - Let’s say the desired partition has an id of
disk3s1
, and it is mounted on/dev
. Use the command below to mount it as a drive namedMY_EXT_PARTITION
in thetmp/
directory of your home directory:sudo ext4fuse /dev/disk3s1 ~/tmp/MY_EXT_PARTITION -o allow_other
Note that the command above uses
sudo
, so it requires administrator privileges to work. After entering it, you might be asked to enter an admin account’s password. - It is also possible to mount more than one ext partition from your hard disk drive. If, for example, the id of the second partition you want to mount is
disk3s2
, then you can mount it as a drive namedMY_SECOND_EXT_PARTITION
in thetmp/
directory with this command:sudo ext4fuse /dev/disk3s2 ~/tmp/MY_SECOND_EXT_PARTITION -o allow_other
- Now use Finder to navigate to your home directory and then your
tmp/
directory. You should see a device namedMY_EXT_PARTITION
in that location. PRO TIP: You can also achieve do this step by entering the following command in the terminal:open ~/tmp/
- Note that you can mount the partition anywhere you like and use any name you wish for the mounted drive. Using the
tmp/
directory is only for the sake of convention, as that directory is meant for temporary data. But if, for example, you wish to mount the partition in yourDocuments/
directory and want to call itfoo_bar
, you’ll use the following command:sudo ext4fuse /dev/disk3s1 ~/Documents/foo_bar -o allow_other
- Option 2: Mount the partition as read-write (RW). You will be able to both access your files/directories and modify them with this option. So, you will be able to add, rename, delete or move the files/directories stored on your partition along with being able to access them. Unfortunately I have not found a stable, reliable and free way to do this. Even the paid software I read about that claim to be able to do this are buggy and have been reported to cause damage to people’s files/partitions. So, I do not recommend this option. You may use Google to find out how people have done it but please proceed with caution.
I do hope that mounting ext2/3/4 partitions will become easier in the future. In the meantime however, these are the ways you can mount such partitions on your Mac.
Thanks for this article, I was wondering about how to deal with my mixed environment. All the laptops are Macs the media centre is Linux. Can you update the article if you ever find a R/W solution you’d recommend?
Sure thing Paul! I will update this article if I come across a R/W solution. However, I suspect that the days of such solutions will not come around any time soon. So I suggest you look for an alternative solution in the meantime. You can ask this same question on the Unix Stack Exchange or the Apple Stack Exchange in a bid to find an alternative solution. You are free to share this article in your question as one of the solutions you have already tried. Hope this response is helpful?
PS: I’m sorry for the late response.
Maybe not the easiest way, but if you totally need to write to your ext drives from a mac, a work around is to install a Linux Windows machine and pass the usb external device to the vm.
As you have noted, that may not be the easiest way, especially for someone who wants to mount the EXT partition fast and quickly get what he/she needs. However, thanks for sharing this. It may turn out to be the most viable option for someone out there.
Why not simply transfer files via (W)LAN ?
Transferring files over LAN is for the case of transferring files between at least two computers. In the case of this article, I provided instructions for transferring files between a single computer and a storage medium of some kind e.g external HDD, external SSD, USB flash drive etc.
Folusho Oladipo, how would this work if the ext4 disk is encrypted? Thanks for this article.
Hi Christoper,
I am not sure of the exact steps for mounting an encrypted ext4 disk, but these are the steps I advise you to try:
– use the steps outlined in the article above to install and set up ext4fuse so that the Mac OS at least can recognize the desired partitions.
– use
diskutil list
to get the ID of your target drive. The ID should look like/dev/disk2
.– get the Logical Volume UUID (LV-UUID) of your target drive using
diskutil coreStorage list
. The value you’re looking for should look like ‘B807C2A0-577F-3DB0-9002-F82B9137696C’.– run
diskutil coreStorage unlockVolume<LV-UUID>
. That command should prompt you for a password and if you enter a correct one it should unlock the drive for you.As I said earlier though, I’m not sure of the above steps. So if you try them out, let me know how it went.
PS: I got additional info from this post too: https://apple.stackexchange.com/a/190967. So you may consult that entire discussion for more potential solutions.
That worked thank you
You’re very welcome Scott!
I have an ext3 format disk to access ext4fuse will not access it any other suggestions please?
Hi Colin. I’m sorry to hear that you’re having difficulties mounting your disk. My other suggestions for how to mount your ext3 disk can be found in my post below. Goodluck and let me know if you have any further problems.
https://hackmylinux.com/2019/02/09/top-5-ways-to-read-ext2-3-4-devices-on-mac-os/
It’s disconcerting that Mac OS provides such poor support for mounting drives with non-apple files formats. Alternatively, Linux OS’s can read and write Mac and Windows file formats (e.g., ntfs, HFS+) and easily mount android devices. I suspect Apple’s limited file format support is its way of discouraging people from using non-Apple products. I would be in favour of enhancing anti-monopoly legislation to force Apple to make it’s OS more compatible with non-Apple products, such as Android and Window phones and Ext USB drives.
Hi Sam. Yes, I agree with you that Apple’s most probable reason for this poor support is to strongly discourage people from using non-Apple products. And this philosophy is not unique to preventing users from easily mounting drives with non-Apple formats. Sigh. That’s one of the reasons why I am personally not an Apple fan. I can use their products when it’s the best tool for achieving some goal, but I am not a fan of a lot of the company’s policies.
Great tutorial, thanks. Works well on MacOS Catalina with a Ubuntu 18.04 ext4 partition.
Thanks for your comment Augusto! I’m glad to hear that you found the tutorial useful.
Hi Folusho,
the installation and mounting went fine, even for an absolute Linux newbie! However, when I tried to access my Home directory on the Linux partition I got an error saying I didn’t have the rights. So I tried by booting on Linux and changing the Home directory’s permissions to 777. Booted on OS X again and mounted again but it didn’t work. Do you know how to solve this? Thanks in advance!
Hi Nik,
Ordinarily, setting the home directory’s permissions should have done the trick. But since it didn’t, my best guess is that it’s something in the Mac OS that’s preventing you from accessing that directory. So instead of trying to use “cd EXT3_HOME_DIR” to access the ext3 drive’s home directory when it’s mounted on your Mac, please try logging into your Mac as the root user and using “sudo cd EXT3_HOME_DIR” and let me know how it went.
Best regards,
Folusho.
Hi Folusho,
Thanks for the tip. It did work to some extent. So, I can access the home directory now but there are only two alias files in it: „Access-Your-Private-Data.desktop“ and „README.txt“. When I try to open them an error occurs saying the original object couldn‘t be found. Any ideas? If not, no worries. It‘s actually not that important 🙂
Check your security settings in your MacOS. I noticed you have to allow it to run the first time.
@Nic: yes you might need to check your security settings and grant permissions to ext4fuse the first time you run it, just like cocotu said. So please try that and let me know how it went.
Hi.
I come across a paid software: https://www.paragon-software.com/home/extfs-mac/#
Have you tried that?
Thank you.
Hi Tuan,
No, I have not tried Paragon’s ext Reader. However I have come across articles about it on the Internet a few times. So I suggest you google around and you will be able to find many people’s reviews of that software. Thanks.
Best regards,
Folusho.
Hi,
I tried this on macos 12.7.6
After compiling got:
# diskutil list
[SNIP]
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *1.0 TB disk2
1: Linux 1.0 TB disk2s1
# mkdir /tmp/mnt
# ext4fuse /dev/disk2s1 /tmp/mnt -o allow_other
# # df
df: getattrlist failed: Input/output error
df: getattrlist failed: Input/output error
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk1s5s1 976695384 30117312 55252224 36% 502388 276261120 0% /
devfs 744 744 0 100% 1288 0 100% /dev
/dev/disk1s4 976695384 4196560 55252224 8% 3 276261120 0% /System/Volumes/VM
/dev/disk1s2 976695384 1132768 55252224 3% 3279 276261120 0% /System/Volumes/Preboot
/dev/disk1s6 976695384 17248 55252224 1% 17 276261120 0% /System/Volumes/Update
/dev/disk1s1 976695384 883476328 55252224 95% 1392327 276261120 1% /System/Volumes/Data
map auto_home 0 0 0 100% 0 0 100% /System/Volumes/Data/home
ext4fuse@macfuse0 0 0 0 100% 0 0 100% /private/tmp/mnt
# ls /tmp/mnt /private/tmp/mnt
ls: /private/tmp/mnt: Input/output error
ls: /tmp/mnt: Input/output error
Stopped at this point. Have you got any suggestions on how I could troubleshoot this further?
Hi,
Unfortunately I don’t know why this is happening to you. The best suggestion I have is that you double-check that your account has the right permissions for what you want to do.
Cheers.