Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

wwwonka

macrumors newbie
Original poster
Jan 11, 2024
14
5
As some of you certainly know, since macOS Sequoia 15.4.1, we lost official support for our beloved iPod classics

Yesterday I got lucky while brute-forcing my way to access the files without the use of a Windows VM or restore the iPod and found out that I could use it just like before updating macOS.
So here is my solution Possibly although the pre-requisite, possibly, is for your iPod to have disk mode already enabled.
Basically, by mounting it as a drive, the music syncing will re-work again with Swinsian, WALTR or even iTunes 10.7, provided that these have Full Disk Access in your System Settings.

Step by step:
1. Launch the System Information app, and go to the USB tab, then locate your iPod and copy the Volume UUID of your partition:

Screenshot 2025-08-19 at 13.56.27.png


2. Open a Terminal and modify this script by pasting your Volume UUID on line 3, then run it:

#!/bin/bash

# 🔧 Set your iPod's Volume UUID here (no need for quotes or brackets)
VOLUME_UUID=ADCE7BAE-16DB-380C-8203-8FCB9D2C5791

# Clean it up (remove quotes/braces if pasted accidentally)
VOLUME_UUID=$(echo $VOLUME_UUID | tr -d '"{}')

# Find the device node for this UUID
DRIVE_IDENTIFIER=$(diskutil info -plist $VOLUME_UUID | \
plutil -extract DeviceNode xml1 -o - - | \
sed -n 's:.*<string>\(.*\)</string>.*:\1:p')

# Get the volume name dynamically
VOLUME_NAME=$(diskutil info -plist "$DRIVE_IDENTIFIER" | \
plutil -extract VolumeName xml1 -o - - | \
sed -n 's:.*<string>\(.*\)</string>.*:\1:p')

# Get the filesystem type (e.g. msdos, hfs)
FS_TYPE=$(diskutil info -plist "$DRIVE_IDENTIFIER" | \
plutil -extract FilesystemName xml1 -o - - | \
sed -n 's:.*<string>\(.*\)</string>.*:\1:p')

# Mountpoint under /Volumes
MOUNTPOINT_DIR="/Volumes/$VOLUME_NAME"

echo "Device: $DRIVE_IDENTIFIER"
echo "Volume name: $VOLUME_NAME"
echo "Filesystem: $FS_TYPE"

# Safety check: is it already mounted?
if mount | grep -q "on $MOUNTPOINT_DIR "; then
echo "⚠️ $VOLUME_NAME is already mounted at $MOUNTPOINT_DIR"
exit 0
fi

# Make sure the mountpoint exists
sudo mkdir -p "$MOUNTPOINT_DIR"

# Mount based on detected filesystem
case "$FS_TYPE" in
"MS-DOS FAT32"|"MS-DOS"|"FAT32")
echo "Mounting as FAT32..."
sudo mount_msdos "$DRIVE_IDENTIFIER" "$MOUNTPOINT_DIR"
;;
"Journaled HFS+"|"HFS+"|"Mac OS Extended")
echo "Mounting as HFS+..."
sudo mount_hfs "$DRIVE_IDENTIFIER" "$MOUNTPOINT_DIR"
;;
*)
echo "❌ Unsupported filesystem: $FS_TYPE"
exit 1
;;
esac

echo "✅ Mounted at $MOUNTPOINT_DIR"

There you go.
You should see the iPod pop up in your Finder! I just have a Windows formatted iPod so I'm not 100% sure it works with Mac-formatted ones since I havent tried. But the script takes that into account, so I hope it works for whoever find it.

Since trying to mount it with `diskutil` fails, but doing it with the more low-level `mount` command does work, all of this sure taste like Apple just blocks iPods from connecting as external drives deliberately since Sequoia. Let's all have a collective sight while remembering the magic word:

courage.jpeg


Cheers & long live your iPod!
 
Last edited:
Actually, here is a script that should 'just work™' for everyone:
#!/usr/bin/env bash
#
# iPod Auto-Mounter for macOS Sequoia 15.4 and up
# ---------------------------
# Looks for connected iPods (Vendor ID = Apple 0x05ac),
# matches them against known Product IDs,
# detects the filesystem, and mounts them under /Volumes/<VolumeName>.
#

# ---------------------------
# Prevent Finder from showing "Restore iPod" popup
killall AMPDeviceDiscoveryAgent 2>/dev/null
# ---------------------------

# ---------------------------
# CONFIG: Supported iPod Product IDs (hex, lowercase, no 0x prefix) source:https://theapplewiki.com/wiki/USB_Product_IDs
IPOD_PRODUCT_IDS=(
"1201" # iPod with dock connector (3rd generation)
"1202" # iPod (1st and 2nd generation)
"1203" # iPod with Click Wheel (4th generation)
"1204" # iPod Photo / iPod with color display
"1205" # iPod mini (1st and 2nd generation)
"1209" # iPod with video (5th generation)
"120A" # iPod nano
"1220" # iPod nano (2nd generation) (DFU Mode)
"1221" # iPod shuffle (2nd generation) (DFU Mode)
"1223" # iPod classic (6th gen, DFU Mode) / iPod nano (3rd gen, DFU Mode)
"1225" # iPod nano (4th generation) (DFU Mode)
"1231" # iPod nano (5th generation) (DFU Mode)
"1232" # iPod nano (6th generation) (DFU Mode)
"1234" # iPod nano (7th generation) (DFU Mode)
"1240" # iPod nano (2nd generation) (WTF Mode)
"1241" # iPod classic (6th generation) (Late 2007, WTF Mode)
"1242" # iPod nano (3rd generation) (WTF Mode)
"1243" # iPod nano (4th generation) (WTF Mode)
"1245" # iPod classic (6th generation) (Late 2008, WTF Mode)
"1246" # iPod nano (5th generation) (WTF Mode)
"1247" # iPod classic (6th generation) (Late 2009, WTF Mode)
"1248" # iPod nano (6th generation) (WTF Mode)
"1249" # iPod nano (7th generation) (Late 2012, WTF Mode)
"124A" # iPod nano (7th generation) (Mid 2015, WTF Mode)
"1250" # iPod classic (6th generation) (Late 2012, WTF Mode)
"1260" # iPod nano (2nd generation)
"1261" # iPod classic (6th generation)
"1262" # iPod nano (3rd generation)
"1263" # iPod nano (4th generation)
"1265" # iPod nano (5th generation)
"1266" # iPod nano (6th generation)
"1267" # iPod nano (7th generation)
"1300" # iPod shuffle (1st and 2nd generation)
)
APPLE_VENDOR_ID="0x05ac" # All iPods report Apple’s USB Vendor ID
# ---------------------------

echo "🔍 Scanning for connected iPods..."

# ---------------------------
# Capture all matching BSD names into a variable
MATCHES=$(system_profiler SPUSBDataType | awk -v vids="$APPLE_VENDOR_ID" '
/Product ID:/ {pid=$3}
/Vendor ID:/ {vid=$3}
/BSD Name:/ {bsd=$3; if (vid!="" && pid!="" && bsd!="") print vid, pid, bsd}
')
# ---------------------------

# ---------------------------
# If no matches found, print message and exit
if [[ -z "$MATCHES" ]]; then
echo "⚠️ No iPod detected."
exit 0
fi
# ---------------------------

# ---------------------------
# Process each matched iPod
echo "$MATCHES" | while read -r VENDOR_ID PRODUCT_ID BSD_NAME; do
# Only continue if Vendor is Apple
[[ "$VENDOR_ID" != "$APPLE_VENDOR_ID" ]] && continue

# Only continue if BSD name is a partition (diskXsY, not diskX)
[[ "$BSD_NAME" =~ s[0-9]+$ ]] || continue

# Check if PRODUCT_ID matches one of the iPod IDs in our list
for PID in "${IPOD_PRODUCT_IDS[@]}"; do
if [[ "$PRODUCT_ID" == "0x$PID" ]]; then
DRIVE_IDENTIFIER="/dev/$BSD_NAME"
echo "✅ Found iPod (Product ID $PID) at $DRIVE_IDENTIFIER"

# ---------------------------
# Extract volume metadata
VOLUME_NAME=$(diskutil info -plist "$DRIVE_IDENTIFIER" | \
plutil -extract VolumeName xml1 -o - - | \
sed -n 's:.*<string>\(.*\)</string>.*:\1:p')

FS_TYPE=$(diskutil info -plist "$DRIVE_IDENTIFIER" | \
plutil -extract FilesystemName xml1 -o - - | \
sed -n 's:.*<string>\(.*\)</string>.*:\1:p')

MOUNTPOINT="/Volumes/$VOLUME_NAME"

echo " Volume name: $VOLUME_NAME"
echo " Filesystem: $FS_TYPE"
# ---------------------------

# Skip if already mounted
if mount | grep -q "on $MOUNTPOINT "; then
echo "⚠️ $VOLUME_NAME already mounted at $MOUNTPOINT"
continue
fi

# Ensure mountpoint exists
sudo mkdir -p "$MOUNTPOINT"

# ---------------------------
# Mount depending on filesystem
case "$FS_TYPE" in
"MS-DOS FAT32"|"MS-DOS"|"FAT32")
echo "📀 Mounting $VOLUME_NAME as FAT32..."
sudo mount_msdos "$DRIVE_IDENTIFIER" "$MOUNTPOINT"
;;
"Journaled HFS+"|"HFS+"|"Mac OS Extended")
echo "📀 Mounting $VOLUME_NAME as HFS+..."
sudo mount_hfs "$DRIVE_IDENTIFIER" "$MOUNTPOINT"
;;
*)
echo "❌ Unsupported filesystem: $FS_TYPE"
;;
esac

echo "✅ Mounted $VOLUME_NAME at $MOUNTPOINT"
fi
done
done
# ---------------------------
 
Fantastic work, thank you for sharing! I will try it as soon as I am somehow forced onto an OS past 15.3.2
This also means that the Apple Music won’t work for syncing anymore, correct? Time for me to finally make the switch then…
 
  • Like
Reactions: wwwonka
Fantastic work, thank you for sharing! I will try it as soon as I am somehow forced onto an OS past 15.3.2
This also means that the Apple Music won’t work for syncing anymore, correct? Time for me to finally make the switch then…

It actually does work. ... Quite surprising heh.


Screenshot 2025-08-24 at 22.19.54 2.png
 
  • Wow
Reactions: johnnytravels
Actually, here is a script that should 'just work™' for everyone:
Thank you for this. I was able to get my 3rd gen classic to work using your script. Unfortunately no luck on my 4th gen mono and 2nd gen mini so far.
 
Hey @Jerryipod,

You are very welcome.

Out of curiosity, when you plug your recalcitrant ipods in your machine, do they at least appear in the USB section of System Information? If so, there is still hope. Maybe try the script and method in the first post of this thread…

Also, are these iPods modded? 👀
 
@johnnytravels,

If it fails, try using disk mode.

Honestly as long as it's recognized within the USB section of System Information, it should be mountable. The ipod is pretty much a glorified external hard drive from a hardware perspective.

~ On the rockbox front, I tried using it some time ago and remember that the iPod was getting recognized with a different name in Windows Device Manager. Something like "Rockbox music device" I'm guessing rockbox alters the Product and/or Vendor IDs during its installation to take full control of the device. Its fairly plausible that my script does not work yet with rockbox iPods. But to make it work should in theory not be very hard.

Bottom line is you should still have the choice of the OS on your iPod. 🙃

What a pain though.. 🙄
 
Last edited:
@wwwonka
Hey @Jerryipod,

You are very welcome.

Out of curiosity, when you plug your recalcitrant ipods in your machine, do they at least appear in the USB section of System Information? If so, there is still hope. Maybe try the script and method in the first post of this thread…

Also, are these iPods modded? 👀
All my iPods are modded. Below are the status of each one:
7th Gen Classic - This has Been able to sync up to the current Mac OS, no issues.
5.5th gen iPod with Video - This has Been able to sync up to the current Mac OS, no issues.
4th Gen Mono - Was able to sync until 15.4.1, iPod mounts the iPod share (cal, contacts, notes) and iPod shows in finder to sync. When Sync settings are selected, I get loading for a couple of minutes then displays "The selected device cannot be found". The UUID shows in System settings. I've also tried the script in the first post.
3rd Gen Classic - This iPod stopped syncing after 15.4.1, but after running your script and several reboots, is syncing with the Music app.
2nd Gen iPod Mini - I either see the same behavior as the 4th generation mono iPod or this iPod will mount then immediately unmounts. The iPod shows in system settings but does not display a UUID.

For the 2 iPods that do not sync, I've tried multiple different 30 pins cables (OG apple branded, 3rd party USB C etc) and reboot the devices multiple times including disk mode.

Edited to say these iPods will sync in Windows with iTunes. I just don't want to maintain 2 libraries.
 
@johnnytravels,

If it fails, try using disk mode.

Honestly as long as it's recognized within the USB section of System Information, it should be mountable. The ipod is pretty much a glorified external hard drive from a hardware perspective.

~ On the rockbox front, I tried using it some time ago and remember that the iPod was getting recognized with a different name in Windows Device Manager. Something like "Rockbox music device" I'm guessing rockbox alters the Product and/or Vendor IDs during its installation to take full control of the device. Its fairly plausible that my script does not work yet with rockbox iPods. But to make it work should in theory not be very hard.

Bottom line is you should still have the choice of the OS on your iPod. 🙃

What a pain though.. 🙄
Thanks.
Regarding Rockbox: yeah this would mean that I would stop using iPod syncing altogether and just start dragging and dropping folders.
What a pain indeed, maybe it’s time to move on to a different player (or I might just start using windows 😅). What I did do is unsubscribe from Apple Music, just so they don't get rewarded for making vintage tech obsolete. The thing is that I was so ready to start purchasing from the iTunes Store again...
 
Thanks so much for the script to get Sequoia 15.6.1 to mount and allow me to 1) restore my 5th Gen iPod and 2) sync my music library.
 
  • Love
Reactions: wwwonka
@Jerryipod
Edited to say these iPods will sync in Windows with iTunes. I just don't want to maintain 2 libraries.

Yes… what an irony, for me too the iPod has been working flawlessly with any Windows machine as long as iTunes is not too updated. In my humble opinion, syncing from Swinsian has become the best and simplest option on macOS.

Syncing from iTunes 10.7 installed through Retroactive will still work (though a little unstable) under Sequoia. If you are really attached to iTunes 12 there is a way to set things up with symlinks, so that you have your iTunes library accessible from macOS and a Parallels Windows Virtual Machine to sync.

I’ve managed to do this in the past but now resorbed to Swinsian for syncing; I still miss the native feel of iTunes but the hassle of not being able to add FLAC files and being tied to Apple’s stuff in general made me go away.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.