Mount a Raspberry Pi SSD on your Big Sur Mac

Joeri Kassenaar
4 min readAug 13, 2021

--

Wat een gedoe.
This is not for “beginners”, actually probably don’t do any of this at all…
Read it first before attempting to do this on your machine.

Warning: This is all very outdated…

There is a $40,- solution that does this for you: https://www.paragon-software.com/home/extfs-mac/

I’ve already got MacFUSE.
You know, software so you can actually use other disks.

Updating to version 4.1.2 removed my Big Sur install due to update/upgrade issues, Big Sur did not sow me any “allow” buttons. I poked around, and got stuck at a bar fixed at 50%. So be warned. Backup your stuff before going into disk reading stuff.
Anyway, great to have a clean install.

Then… Get Brew.

Then.

From https://github.com/gerard/ext4fuse/issues/66:

Create a file called ext4fuse.rb with the following contents:

class MacFuseRequirement < Requirement
fatal true

satisfy(build_env: false) { self.class.binary_mac_fuse_installed? }

def self.binary_mac_fuse_installed?
File.exist?("/usr/local/include/fuse/fuse.h") &&
!File.symlink?("/usr/local/include/fuse")
end

env do
ENV.append_path "PKG_CONFIG_PATH", HOMEBREW_LIBRARY/"Homebrew/os/mac/pkgconfig/fuse"

unless HOMEBREW_PREFIX.to_s == "/usr/local"
ENV.append_path "HOMEBREW_LIBRARY_PATHS", "/usr/local/lib"
ENV.append_path "HOMEBREW_INCLUDE_PATHS", "/usr/local/include/fuse"
end
end

def message
"macFUSE is required. Please run `brew install --cask macfuse` first."
end
end

class Ext4fuse < Formula
desc "Read-only implementation of ext4 for FUSE"
homepage "https://github.com/gerard/ext4fuse"
url "https://github.com/gerard/ext4fuse/archive/v0.1.3.tar.gz"
sha256 "550f1e152c4de7d4ea517ee1c708f57bfebb0856281c508511419db45aa3ca9f"
license "GPL-2.0"
head "https://github.com/gerard/ext4fuse.git"

bottle do
sha256 cellar: :any, catalina: "446dde5e84b058966ead0cde5e38e9411f465732527f6decfa1c0dcdbd4abbef"
sha256 cellar: :any, mojave: "88c4918bf5218f99295e539fe4499152edb3b60b6659e44ddd68b22359f512ae"
sha256 cellar: :any, high_sierra: "fc69c8993afd0ffc16a73c9c036ca8f83c77ac2a19b3237f76f9ccee8b30bbc9"
sha256 cellar: :any, sierra: "fe8bbe7cd5362f00ff06ef750926bf349d60563c20b0ecf212778631c8912ba2"
sha256 cellar: :any, el_capitan: "291047c821b7b205d85be853fb005510c6ab01bd4c2a2193c192299b6f049d35"
sha256 cellar: :any, yosemite: "b11f564b7e7c08af0b0a3e9854973d39809bf2d8a56014f4882772b2f7307ac1"
end

depends_on "pkg-config" => :build

on_macos do
depends_on MacFuseRequirement => :build
end

on_linux do
depends_on "libfuse"
end

def install
system "make"
bin.install "ext4fuse"
end
end

Lets see if we can create some code:

brew install --cask osxfuse
brew install --formula --build-from-source ./ext4fuse.rb

Check:

$ ext4fuseVersion: ext4fuse-0.1.3
Usage: ext4fuse <disk> <mountpoint>

Seems to work …

Now figure out what disk the Raspberry SD is..

diskutil list

Looks like our Linux disk is on /dev/disk2s2

sudo mkdir /Volumes/rpi
sudo ext4fuse /dev/disk2s2 /Volumes/rpi -o allow_other

Then we go into Apple’s “You’re too stupid to use your computer” shit.
Well actually they are right, but that’s besides the point.

First… turns out we cannot access any disks…
Buy a 4000,- computer that will not let you access folders unless you explicitly tell the OS it’s okay to read and write to folders… So let’s do that.

In preferences we can allow terminal to access disks.

After this we need a reboot.

Because, you know… We have left Linux long ago with macOS.

Hi… back again? Great.

sudo mkdir /Volumes/rpi
sudo ext4fuse /dev/disk2s2 /Volumes/rpi -o allow_other

Oops… Sorry, did you want to use your computer?

Well…
“A program tried to do things for you, but we at Apple would like everyone to release software trough our apple store, so we are making this as hard as possible”

Now for your sake, I hope you are getting the allow button.

Changes are you are not getting this button, if that happens I have no idea what to do. I ended up with a total new install of Big Sur.

And… reboot time again…

Now it should work …

sudo mkdir /Volumes/rpi
sudo ext4fuse /dev/disk2s2 /Volumes/rpi -o allow_other
ls -la /Volumes/rpi

Yay !

Turns out it’s read only…

Hmm…

To unmount the SD card:

sudo umount /Volumes/rpi

So maybe better get fuse-ext2 to work?

https://docs.j7k6.org/mount-ext4-macos/

sudo fuse-ext2 /dev/disk2s2 /Volumes/rpi -o rw+

YES !
Okay… this needs another post.
I no longer know what part of what I did makes this work.

--

--

Joeri Kassenaar
Joeri Kassenaar

No responses yet