Mounting and Ejecting
Mounting makes an iPod’s filesystem accessible so podkit can read and write to it. Ejecting flushes pending writes and unmounts the volume safely before you disconnect the cable.
When mounting is handled automatically
In most cases you don’t need to think about mounting. When you run podkit sync, podkit expects the device to already be mounted. macOS mounts standard iPods automatically when you plug them in.
For iFlash-modified iPods (SD card storage replacements), macOS may refuse to automount the volume. In that case, podkit device add will detect this and guide you through mounting — see Adding a Device and the macOS Mounting Troubleshooting guide.
macOS
Mounting a registered device
If a registered device is not mounted (e.g. you dismissed the macOS dialog, or it’s an iFlash device you’ve mounted before), you can mount it with:
# Mount the default devicepodkit device mount
# Mount a specific devicepodkit device mount -d classicpodkit identifies the device by its volumeUuid and mounts it to the expected mount point.
Ejecting
Always eject your iPod before disconnecting the cable to avoid database corruption:
# Eject the default devicepodkit device eject
# Eject a specific devicepodkit device eject -d nanounmount is an alias for eject — podkit unmount and podkit device unmount work identically.
Ejecting flushes all pending filesystem writes, unmounts the volume, and detaches the disk so it’s safe to disconnect.
If the device is temporarily busy (e.g. macOS’s Finder or Spotlight is holding a reference), podkit retries the eject automatically up to 3 times before giving up. You’ll see progress output:
Ejecting iPod...Device busy, waiting 2s before retry...Retrying eject (attempt 2/3)...iPod ejected. Safe to disconnect.If all retries fail, use --force to force the unmount:
podkit eject --forceAuto-eject after sync
Use --eject to automatically eject the device when a sync completes:
podkit sync --ejectpodkit sync --device nano --ejectThis is convenient for a plug-sync-unplug workflow.
iFlash devices
iFlash-modified iPods use SD cards in place of the original hard drive. macOS refuses to automatically mount large FAT32 volumes above an undocumented size threshold, so these devices often don’t mount on their own.
When you run podkit device add -d myipod without specifying a path, podkit scans for both mounted and unmounted devices. If it finds an unmounted iFlash device, it will:
- Assess the device (block size, capacity, USB model) before attempting anything
- Show you what it found
- Attempt
diskutil mount(works for normal unmounted devices) - If that fails, explain why and tell you to re-run with
sudo
Found iPod: TERAPOD (1.0 TB) — not mounted Model: iPod Classic 5th generation Storage: iFlash confirmed — 2048-byte block size; Capacity exceeds iPod Classic maximum
Attempting to mount...macOS cannot automatically mount this device.
iFlash confirmed by: • 2048-byte block size: 2048 iFlash adapters emulate optical media sectors; standard iPod HDDs use 512-byte sectors • Capacity exceeds iPod Classic maximum: 1.0 TB Original iPod Classic maximum was 160 GB
macOS refuses to mount large FAT32 volumes through its normal mechanisms.Elevated privileges are required to mount this device directly.
Run: sudo podkit device add -d myipodRe-running with sudo uses mount -t msdos directly, which bypasses macOS’s automount restrictions.
For the full iFlash troubleshooting guide — including manual workarounds and a shell alias — see macOS Mounting Troubleshooting.
Linux
podkit supports mounting and ejecting iPods on Linux (Debian, Ubuntu, Alpine, and other distributions).
Automatic Mount
podkit mountpodkit tries the best available method:
- udisks2 (if installed) — mounts without root via
udisksctl mount. The mount point is chosen by udisks2 (typically/media/$USER/LABEL). - Manual mount — falls back to
mount -t vfat, which requires root. podkit will prompt you to re-run withsudo.
The default mount point for manual mounts is /tmp/podkit-{volumeName}. Override it with --mount-point:
podkit mount --mount-point /mnt/ipodEject
podkit ejectpodkit eject --force # Lazy unmount if device is busyLike mounting, eject tries udisksctl unmount first (followed by udisksctl power-off to safely detach the device), falling back to umount. If the device is busy, podkit retries automatically up to 3 times. The --force flag uses umount -l (lazy unmount) which detaches even if files are open.
Manual Commands
If you prefer to use system tools directly:
# Find your devicelsblk -o NAME,UUID,LABEL,FSTYPE,SIZE,MOUNTPOINT
# Mount (with udisks2, no root needed)udisksctl mount -b /dev/sdX1
# Mount (without udisks2, requires root)sudo mount -t vfat /dev/sdX1 /tmp/podkit-ipod
# Unmountudisksctl unmount -b /dev/sdX1# orsudo umount /mnt/ipodRequirements
lsblk(fromutil-linux) is required for device detection. It’s pre-installed on Debian/Ubuntu. On Alpine:apk add util-linux.udisks2is optional but recommended for unprivileged mount/eject. Install withapt install udisks2(Debian) orapk add udisks2(Alpine).
See Also
- Adding a Device — register devices, including iFlash auto-detection
- macOS Mounting Troubleshooting — iFlash devices, manual workarounds
- Managing Devices — working with multiple devices