Restore An iPod Without Windows, iTunes Or A Net Connection

This is a continuation of an earlier post about getting music onto my iPod in Linux.

After all the to-ing and fro-ing with various music software, my iPod went a bit strange. It showed all my music files on there, with album art where I had added it. But if I tried to play a track, the ‘play’ symbol would appear in the top right, but the time bar would not move from 0:00 and no sound would come out. After pressing ‘pause’ and ‘play’ a couple of times, the iPod would crash, showing the Apple logo before restarting and showing all my tracks again.

I decided that doing a hard reset and wiping the iPod clean (called a “restore” in Apple-speak) would be a good idea. How to do that. Well, according to the help files, you need the following:

  • either a Windows PC or a Mac
  • the latest version iTunes
  • a net connection

Cassie has a Mac, but from what I understand, I didn’t want to restore my iPod to Mac format, because I need it to be formatted as FAT32 to allow Linux to connect to it. So I needed a Windows PC.

I have admin rights on my work WinXP laptop, so I brought it home, installed iTunes and tried to connect the iPod. Unfortunately, probably because of the way the laptop has been set up to access the company WAN, I couldn’t get a net connection at home. So I tried it at work, and still couldn’t get a net connection, despite being able to access the web.

The most frustrating thing about problems like this is searching for your error message, and finding forums at the manufacturers site overflowing with people with the same problem, but no way to fix it, and the manufacturer not stepping in to help.

So, how do you restore your iPod when you aren’t running Windows or a Mac, you “don’t have a net connection” and you don’t have iTunes. After some searching, I found this great set of instructions: Jose Mousetrap: How to repair / restore iPod firmware on linux.

I followed the instructions, and apart from a couple of minor quirks, they seem to work. I have reproduced what I did here, with the minor changes I had to make.

First unplug your iPod and run this command:

% sudo fdisk -l

Then plug your iPod in, wait for it to mount, then run:

% sudo fdisk -l

again, and note what has changed. You should have another drive added to the list, such as “/dev/sde”.  Now run the following, and select the options as described:

% fdisk /dev/sd* [where * is the device representing you iPod, as noted above]
n   [make new partition]

At this stage I could not create a new partition, becase it said there was something already there. What the hell, I thought. I opened Gnome Partition Editor, selected /dev/sde and wiped it. Back to fdisk. I ran the following commands, then selected the commands as below to create the partitions.

% fdisk /dev/sd* [where * is the device representing you iPod, as noted above]
n   [make new partition]
p   [primary]
1   [first partition]
[just press enter -- default first sector is 1]
5S  [5 sectors -- big enough to hold 32MB]
n   [make new partition]
p   [primary]
2   [second partition]
[just press enter -- default first sector is 6]
[just press enter -- default size uses all remaining space]
t   [modify type]
1   [first partition]
0   [first partition has no filesystem; ignore warning]
t   [modify type]
2   [second partition]
b   [second partition is FAT32]
p   [show partition map]

Device Boot    Start       End    Blocks   Id  System
/dev/sd*1          1         5     40131    0  Empty
/dev/sd*2          6      3647  29254365    b  Win95 FAT32

w   [commit changes to disk]

This creates two partitions on your iPod, sd*1 for the firmware and sd*2 for storage.

Then download the right firmware for your iPod from this site. The file you download will be an IPSW file, which can be opened with an Archive Manager. Extract it somewhere convenient. Note the name of the firmware file.

To install the firmware to the iPod type this command:

% sudo dd if=FIRMWAREFILENAME of=/dev/sd*1

BE 100% CERTAIN YOU TYPE THE RIGHT SD*1 NAME! For example, don’t try to install iPod firmware on your computer hard disk by accidentally typing ‘sda1’ instead of ‘sde1’, unless you like reinstalling your operating system.

To format the storage partition type this command:

% mkfs.vfat -F 32 -n "ipod" /dev/sd*2

This creates a vfat partition of F32 type named “ipod”.

Unplug your iPod. Reboot if necessary. You should see a picture on the screen telling you to plug it back in for charging. Do so – hopefully all should be fixed, it will automatically mount.

(end of instructions)

All seemed to be well. I had an empty iPod, which mounted nicely in Banshee, my new music player of choice. Banshee is now the default in Ubuntu, and it works fine, and fits in well with the scheme of the OS, without adding extra weird controls and stuff. I’m not bothered about skins.

Time to do a sync, after some quick housekeeping.

  1. Run Songbird to organize tracks
  2. Run MusicBrainz Picard to tag untagged tracks
  3. Run Songbird again to be sure – use the Find Duplicates and Find Ghost Tracks tools to clean up the database
  4. Run Banshee, updating the library from scratch to ensure I had a clean sheet.

I ran Banshee and tried to sync the tracks across. Banshee looked like it was working – about half an hour to sync 7500 tracks across. Then I clicked the ‘Eject iPod’ button. “Ejecting iPod” appeared. But then Banshee decided it needed to sync everything all over again. Another half an hour.

When it had finished, and the iPod was ejected, I checked to see what tracks were on the iPod.

Nothing. Empty. Godammit.

To be continued again. Fun this, isn’t it?