Extent for macOS
Get
How-to · Raspberry Pi

Open a Raspberry Pi SD card on a Mac

Short answer

A Mac shows only the card's small bootfs partition, which is FAT. The system and your files are on rootfs, which is ext4, and macOS can't read ext4. Extent (macOS 27, Apple silicon) mounts rootfs in the Finder: free to read, writable after a one-time purchase.

Download on the Mac App Store

Last checked · Extent needs macOS 27 or later on a Mac with Apple silicon.

bootfs and rootfs: why only one shows up

A Raspberry Pi OS card holds two partitions. The first, bootfs, is a small FAT32 partition with the firmware, the kernel and the boot settings; on the running Pi it is mounted at /boot/firmware (before Bookworm, at /boot). The second, rootfs, is ext4 and holds everything else: the system, the programs, and your home folder.

macOS reads FAT, so bootfs mounts the moment you insert the card. It has no ext4 driver, so rootfs simply doesn't appear – without a word, because macOS complains only about a disk on which it can mount nothing at all.

A card or drive with only a Linux partition on it – a USB data drive from a Pi, say – does bring up “The disk you attached was not readable by this computer”. Don't click Initialize: here's what the message means and what to do instead.

The two partitions of a Raspberry Pi OS card (Lite and Desktop alike)
PartitionLabelFile systemOn the PiOn a Mac by itselfWith Extent
1bootfsFAT32, 512 MiB/boot/firmwareMounts, read and writeThe same: macOS handles it
2rootfsext4/Doesn't appearMounts in the Finder; reading free, writing after a one-time purchase

Raspberry Pi OS formats rootfs as ordinary ext4 with a journal and extents; its image builder turns off only the 64bit and huge_file features. That is ext4 Extent reads, and writes once writing is unlocked.

Where things are on the card

Paths as the Pi sees them; on the Mac, rootfs is the root folder of the “rootfs” disk
WhatWherePartition
Boot settingsconfig.txt, cmdline.txtbootfs
Settings from Raspberry Pi Imager (images since November 2025)user-data, network-config, meta-data – read by cloud-init at first bootbootfs
SSH, switched on before first bootAn empty file named sshbootfs
Your files/home/<username> – the name chosen in Imager; there's no default “pi” user since 2022rootfs
The Pi's name/etc/hostnamerootfs
Wi-Fi and network settings/etc/NetworkManager/system-connections/; on Trixie, what Imager or cloud-init set up is in /etc/netplan/rootfs
Scheduled jobs/var/spool/cron/crontabs/rootfs
Logs/var/log. On Trixie the system journal is kept in memory and isn't on the card, unless persistent logging was turned on in raspi-config – then /var/log/journalrootfs

Old guides that put a wpa_supplicant.conf on bootfs to set up Wi-Fi no longer apply: Raspberry Pi OS stopped reading it with Bookworm.

Reading the card on a Mac

  1. Shut the Pi down, then take the card out

    sudo poweroff, or Shutdown in the desktop's menu, and wait until it has stopped. Raspberry Pi warns that cutting the power can corrupt the card. If the Pi won't start any more, just take the card out – see “A card pulled out without shutting down” below.

  2. Install Extent and turn on its extension, once

    Extent is free on the Mac App Store. Turn it on in System Settings › General › Login Items & Extensions › File System Extensions; the banner in Extent's window opens that pane for you.

  3. Insert the card

    In the Mac's SD slot or a USB card reader. bootfs mounts as it always did, and rootfs appears beside it in the Finder, read-only. If rootfs doesn't appear, the card probably went in before the extension was on: eject it and insert it again.

  4. Copy what you need, then eject

    Drag files out as from any disk. Eject the card in the Finder before you take it out.

Extent's window listing connected Linux disks, among them one named rootfs, with the details of a selected disk and its Write to this disk switch
Extent's window lists the Linux disks it has mounted – here among others a Pi card's rootfs – with what each one allows.

Editing files on the card

Files on bootfs – config.txt, cmdline.txt, an ssh file – need nothing extra: macOS writes FAT itself. Files on rootfs need writing turned on:

  1. Unlock writing

    A one-time purchase, under Extent › Unlock Writing…. It covers every disk and every Mac signed in to your Apple Account.

  2. Turn it on for the card

    Select rootfs in Extent's window and turn on “Write to this disk” in its details. Writing is a switch per disk, so a card you only read can't be changed by accident.

  3. Eject the card and insert it again

    A file system is mounted either read-only or read and write; the switch takes effect the next time the card is connected.

  4. Edit, then eject

    Save your changes as on any disk, and eject before you take the card out. Every change goes through rootfs's journal, as on Linux.

  • A new file or folder takes the owner and group of the folder it's created in, so a file you add to /home/<username> belongs to that user on the Pi – not to a user ID that exists only on your Mac.
  • macOS keeps a folder of its own, .fseventsd, on any disk it writes to, and the Finder may leave .DS_Store files in folders you open. Linux ignores both.

A card pulled out without shutting down

Linux writes every change to rootfs's journal first and moves it to its final place afterwards. A card taken out of a running Pi – or one whose Pi lost power – can hold changes that reached the journal and never their final place; the file system is marked as needing recovery. Linux finishes them, replaying the journal, the next time it mounts the card.

Software that reads the card elsewhere has to replay the journal too, or it shows the files as they were before those changes. Extent does:

  • Read-only, as a card mounts by default, Extent replays the journal in memory: you see the files as Linux will once it has finished, and nothing is written to the card. Its window says “Linux didn't finish writing to this disk – it wasn't ejected properly.”
  • With writing on, Extent replays the journal onto the card as it mounts it, as Linux would at the next boot, and finishes what the interruption left half-deleted.
  • If the journal itself can't be read, Extent says the last changes made on Linux may be missing. If Linux had recorded damage on the card, Extent mounts it read-only and won't write to it until it has been checked with e2fsck -f on Linux.

Extent's replay was tested on a real card pulled out of a running Pi, with 274 transactions waiting in its journal.

A card that has started to fail – a Pi that keeps crashing, read errors – is best copied to an image once, before anything else, and the image opened instead. See the next section.

Back up the card as an .img, and open it

A copy of the whole card, both partitions, in one file the size of the card. In the Terminal:

  1. Find the card

    diskutil list shows it as, say, /dev/disk4: a disk the size of the card, with a Windows_FAT_32 partition named bootfs and a Linux partition. Check the number twice.

  2. Unmount its partitions, without ejecting

    diskutil unmountDisk /dev/disk4

  3. Copy the card into a file

    sudo dd if=/dev/rdisk4 of=$HOME/Desktop/raspberrypi.img bs=4m status=progress – rdisk4 is the same card, read as a raw device. It takes as long as reading the whole card.

  4. Eject the card

    diskutil eject /dev/disk4

  5. Open the image

    In Extent, File › Open Disk Image…, or drop the .img on its window. macOS attaches it like a card: bootfs mounts by itself and rootfs through Extent, with the same folders as on the Pi.

diskutil list
diskutil unmountDisk /dev/disk4
sudo dd if=/dev/rdisk4 of=$HOME/Desktop/raspberrypi.img bs=4m status=progress
diskutil eject /dev/disk4

The image's rootfs has the card's file system UUID, and Extent keeps the writing switch per file system, so with writing on for the card the image can mount writable too. Turn it off in the image's details to keep the backup as it was.

On the Pi itself, Raspberry Pi OS with the desktop has SD Card Copier, which clones the card to another card or USB drive.

What Extent doesn't do

  • It doesn't write Raspberry Pi OS to a card or format one – Raspberry Pi Imager does.
  • It doesn't repair a damaged rootfs. That is e2fsck's job, on Linux – another Pi with a USB card reader will do; when a card needs it, Extent says so and gives you the command.
  • It leaves bootfs to macOS, which reads and writes FAT itself.
  • It runs on macOS 27 or later on a Mac with Apple silicon only. For other Macs and other ways to read ext4, see how to read and write ext4 on a Mac.

Frequently asked questions

Why does my Mac only show the boot partition of my Raspberry Pi's SD card?

Because the boot partition, bootfs, is FAT, which macOS reads, and the partition with the system and your files, rootfs, is ext4, which it doesn't. Extent mounts rootfs in the Finder on macOS 27.

Can I switch on SSH or set up Wi-Fi for a Pi from a Mac?

Yes, on bootfs, which macOS writes without extra software. An empty file named ssh switches SSH on. Raspberry Pi Imager writes user, Wi-Fi and SSH settings into the user-data and network-config files that cloud-init reads at first boot. A wpa_supplicant.conf no longer works since Bookworm.

Can I get my files off a Raspberry Pi that won't boot?

Yes. Take the card out and insert it in the Mac: Extent mounts rootfs read-only for free, with the journal replayed in memory, so your home folder is at /home/<username>. If the card is failing, copy it to an image first and open the image.

Is it safe to write to a Pi's SD card from a Mac?

With Extent, writes go through the card's journal, as on Linux, so a card pulled out mid-write comes back consistent. Writing stays off until you turn it on for that card, and a card on which Linux recorded damage stays read-only. Eject before you take the card out.

How do I back up a Raspberry Pi SD card on a Mac?

Copy the whole card to an image with dd: find it with diskutil list, unmount it with diskutil unmountDisk, then sudo dd if=/dev/rdiskN of=raspberrypi.img bs=4m status=progress. Extent opens the image like the card itself.

Your Pi's card, in the Finder.

Extent mounts the ext4 partition of a Raspberry Pi card on macOS 27. Reading is free; writing to it is a one-time purchase.

Sources

Facts on this page were checked against these pages on 2 November 2026.