Using an iPod Classic with gtkpod on Ubuntu 20.04

In the age of streaming services and their terrible royalities, especially for smaller artists, I am moving a step backward into the direction of purchasing music again on sites like Bandcamp and curate it personally.

That’s why I’ve been moving back into using an iPod Classic.
I really enjoy the distraction free listening and focusing on my own music collection, without being owned by a streaming service like Spotify or Apple Music.

However, there are not many up-to-date tutorials on how to transfer music on Linux using GTKPod today.
That’s why I am sharing my notes, how my workflow is on Ubuntu 20.04 and how I transferring music without iTunes.

Installing gtkpod on Ubuntu 20.04

# hfsprogs is Apple's HFS utils, ported and patched for Linux.
sudo apt-get update
sudo apt-get install hfsprogs gtkpod

Connecting the iPod Classic

Before mounting the iPod, make sure it’s connected via the USB data transfer cable.

Mount iPod Classic to file system

In order to prepare the iPod Classic for the data transfer, the device must be mounted as a file system.

# Switch to root shell
sudo -i

# Create Mount Directory
mkdir -p /media/<your-username>/ipod

# Show available file systems to get the one from the iPod
fdisk -l

Example output:
Disk /dev/sdb: 111,62 GiB, 119832539136 bytes, 29255991 sectors
Disk model: iPod            
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x20202020


# Mount the iPod
mount /dev/sdb1 /media/<your-username>/ipod

Transferring music to iPod Classic

Since we’ve mounted the iPod on an only root accessible path, we need to also run gtkpod as root.

# Open gtkpod in root shell
sudo -i
gtkpod

Now use the drag and drop functionality in GTKPod to transfer files. Also, properly save it and eject the iPod on the UI once you’re done.

Disconnecting the iPod Classic

It’s super important to properly disconnect the iPod. If a sync has not been finished properly it might corrupt it’s database, which can lead to data loss.

# Eject the iPod (use it according to your device)
eject /dev/sdb1

Once the screen of the iPod shows that it’s okay to connect, you can disconnect the data cable and music should be ready for playing.