Linux tip, Fedora tip / howto: converting an iPod from HFS+ (Mac) to FAT32 (Windows) format using Linux

back to notes and tips index

Try my online puzzle page with Calcudoku, Killer Sudoku and online Sudoku.

converting an iPod from HFS+ (Mac) to FAT32 (Windows) format using Linux

A friend gave me a 2GB iPod Nano (2nd generation, silver, model MA477), which unfortunately had its disk in Mac HFS+ format. To get it to work with gtkpod, for example, it had to be converted to Windows FAT32 format, which can be done with iTunes running on Windows (click on "restore iPod", note this will erase all data on it). I had no Windows machine available, so had to do the conversion using Linux, which turns out to be possible!

If you first want to back up the music that's already on your iPod, connect and mount it, and back up all music files in /mnt/ipod/iPod_Control/Music/F00, F01, F02, etc. (assuming you mounted it under /mnt/ipod). The filenames will be cryptic (for example, "QRST.mp3"), but hopefully once you import them back into your iPod, it will pick up artist & song info from the tags inside the MP3 file.

I mostly followed the instructions at this very useful page on using an iPod with Linux (send me a note if this page is gone), but with the following important differences (all as root):

  • the firmware turned out to be 160MB in size, not the 32MB mentioned on the above page, so in the fdisk steps, when creating the first partition, type +160M instead of the +33M shown there
  • the sector size on this iPod is different from the "normal" 512 bytes: after the iPod is hooked up, do dmesg | tail, you'll see a line like:
    sd 9:0:0:0: [sdc] 991232 2048-byte hardware sectors (2030 MB)
    Note the 2048, then, in the mkdosfs step, use:
    mkdosfs -F 32 -S 2048 -n "my iPod" /dev/sdc2
    (assuming your iPod is at /dev/sdc, this may differ in your case. You may have to unmount this partition first)

I installed gtkpod (yum install gtkpod) and GNUpod. Before GNUpod would compile, I had to install a few Perl packages:
yum install perl-Digest-SHA1 perl-Unicode-String perl-MP3-Info

I also disconnected the iPod and reset it (not sure if this was necessary): switch the hold switch to "hold" and back, then hold the "menu" and center button for about 8 seconds.

The little Asus Eee I was using auto-mounted the iPod at /media/disk. gtkpod didn't see the iPod for some reason, but did after I initialized it with GNUpod: -m /media/disk

And from then on: gtkpod -m /media/disk
works great now :-). Do send me a note if something didn't work for you.

← back to notes and tips index
Please do not copy the text of this tip (© Patrick Min) to your web site.