I'm using an M3 silicon macbook running macOS 14.4 Sonoma.
I want to write files to an external USB hard drive formatted with an ext4 filesystem.
Related questions
- This 2020 answer links to a solution that uses VirtualBox. But, VirtualBox doesn't work on 14.4; Also, in the comments users report that the linked VirtualBox setup instructions did not even work on earlier version. Comments also warn not to use the "Paragon" paid solution as this may result in data loss.
- This 2022 answer ultimately links to macfuse, which gives your read but not write acess to ext4 drives.
- I can corroborate this question, which notes that configuring QEMU by hand to reach the ext4 drive via a VM is… tricky. It's answer seems to say use macfuse, but I have only been able to get read-only mounts this way.
- The 2022 answer to a similar question on the M1 platform has
ext4fuse
as a solution, but this only gives read access. - A decade ago, this answer says
ext4fuse
via homebrew (again the read-only solution for M3 in 2024). This 2016 answer confirms thatext4fuse
does not have write support. - Inspired by This 2017 question I decided to put aside my concerns of data loss and try pairing the
-o rw+
command line mount option with ext4fuse. But, as documented, ext4fuse does not support this option yet.
Where I've gotten so far:
These steps worked for read-only access, for me.
(Mac/osx/ext4)fuse-based solutions no longer work for M3 macs, and there's no stable solution on the horizon. Building something from scratch with unstable ext4 write support isn't in the cards, as I can't afford data loss.
I opted to try to mount via a Linux virtual machine. I spent a day failing to manually get a linux VM running via QEMU (installed via homebrew). I gave up up and loaded up a Debian 12 VM via the UTM app.
This is where I'm stuck.
So, on an M3 mac I can't use (mac)fuse, or VM solutions that rely on VirtualBox. I can't find an up-to-date walkthrough doing this manually with qemu
, but I can run UTM prebuilt Debian images.
Further research
- I'm not sure what's going on in this thread, but maybe it's not possible to see USB devices in Linux VMs on M3 macs? The thread mentions terms I don't see in my own UTM interface so maybe it is outdated.
- This page says "Only jailbroken or exploit-based installs of UTM support USB sharing. UTM SE does not support USB sharing." This implies I will not be able to see my ext4 USB drive from the Debian VM? But, it's not clear to me that I need this. The USB drive is evidently accessible, as
ext4fuse
can mount it read-only. Surely there is some way to mount it RW on the Debian VM without trying to get a jailbroken UTM install working? - This page seems to indicate USB sharing options used to be available in the UTM configuration dialog. These are absent in mine, presumably for reasons noted above.
Puzzling through
- Returning to the comments section for the read-only macfuse tutorial, there is a small ray of hope in that some users report UTM Linux VMs being able to detect USB drives on M2 macs. But, this is not working for me presently.
diskutil list
(I pulled diskutil from hombrew IIRC) confirms the drive is available as a device in macOS, at/dev/disk4
on my system. So I have a device I can access, no rooting the macbook required. I just need to get this device file into/dev/
in the UTM Debian VM, but how?
I believe the next step is figuring out how to get /dev/disk4
on macOS mounted within the Debian VM in UTM. But, I'm at a loss as to how to do this. If it's not possible in UTM, then perhaps I need a more hand-holding walkthrough for getting a VM working in qemu
directly?
This page says "Only jailbroken or exploit-based installs of UTM support USB sharing.
- This refers to the iOS version of UTM only, otherwise known as UTM SE. USB sharing is most definitely supported in the desktop version. I currently have a ExFAT stick connected to a Debian 11 VM (QEMU 7.2 Arm) running on UTM 4.5.3. With some extra config I'd share it back to the Mac via SMB, if I needed to follow your approach of accessing ext4.