Notes about iPod mini (1st generation) partitions

{{~~  /-----\
{{~~ /       \
{{~~|         |
{{~~| S T O P |
{{~~|         |
{{~~ \       /
{{~~  \-----/
Will be this an advice ?! :)

Ipod has OpenSSL crypto support. I suppose that this is to decrypt iTunes Music Store purchased songs.

Notes about iPod mini HFS+ formatted

Your linux kernel have to have the option "File systems -> Partition Types -> Macintosh partition map support". enabled. When you plug iPod in USB port, you can see with dmesg:

usb 1-3: new high speed USB device using ehci_hcd and address 3
scsi0 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 3
usb-storage: waiting for device to settle before scanning
  Vendor: Apple     Model: iPod              Rev: 1.62
  Type:   Direct-Access                      ANSI SCSI revision: 00
SCSI device sda: 7999488 512-byte hdwr sectors (4096 MB)
sda: Write Protect is off
sda: Mode Sense: 64 00 00 08
sda: assuming drive cache: write through
SCSI device sda: 7999488 512-byte hdwr sectors (4096 MB)
sda: Write Protect is off
sda: Mode Sense: 64 00 00 08
sda: assuming drive cache: write through
 sda: [mac] sda1 sda2 sda3
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0,  type 0
usb-storage: device scan complete

Let's see the partition table:

# fdisk -l /dev/sda
Disk /dev/sda: 4095 MB, 4095737856 bytes
126 heads, 62 sectors/track, 1024 cylinders
Units = cylinders of 7812 * 512 = 3999744 bytes

Disk /dev/sda doesn't contain a valid partition table

Upps, we can't dump it. But in Mac OS X, we can do:

$ sudo pdisk /dev/disk3 -dump
/dev/disk3  map block size=512
   #:                 type name                length   base    ( size )
   1:  Apple_partition_map partition map           62 @ 1      
   2:           Apple_MDFW firmware             65536 @ 63      ( 32.0M)
   3:            Apple_HFS disk               7933888 @ 65599   (  3.8G)

Device block size=512, Number of Blocks=7999480
DeviceType=0x0, DeviceId=0x0

Making the backups:
# dd if=/dev/sda of=ipod_boot_sector_backup count=1
# dd if=/dev/sda1 of=ipod_os_partition_backup

Notes about iPod mini FAT32 formatted


$ dmesg
usb 1-4: new high speed USB device using ehci_hcd and address 4
scsi1 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 4
usb-storage: waiting for device to settle before scanning
  Vendor: Apple     Model: iPod              Rev: 1.61
  Type:   Direct-Access                      ANSI SCSI revision: 00
SCSI device sda: 7999488 512-byte hdwr sectors (4096 MB)
sda: Write Protect is off
sda: Mode Sense: 64 00 00 08
sda: assuming drive cache: write through
SCSI device sda: 7999488 512-byte hdwr sectors (4096 MB)
sda: Write Protect is off
sda: Mode Sense: 64 00 00 08
sda: assuming drive cache: write through
 sda: sda1 sda2
Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi1, channel 0, id 0, lun 0,  type 0
usb-storage: device scan complete

Partition table:
# fdisk -l /dev/sda

Disk /dev/sda: 4095 MB, 4095737856 bytes
255 heads, 63 sectors/track, 497 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1           5       40131    0  Empty
/dev/sda2   *           6         497     3951990    b  W95 FAT32

Now we extract the partition table and the original firmware:
# dd if=/dev/sda of=boot count=1
# dd if=/dev/sda1 of=firmware


$ ls -l boot firmware
-rw-r--r--  1 root root   512 2005-05-02 22:46 boot
-rw-r--r--  1 root root 32768 2005-05-02 22:53 firmware