Mounting OSX hard-drive on linux

I believe the motherboard on my macbook died, so I'm trying to recover the information on the disk. I pulled the hard drive from the macbook and plugged it into one of my SATA ports on my Ubuntu machine. Unfortunately, I can't seem to mount it:

mgilson@iris:~$ sudo fdisk -l

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       38914   312571223+  ee  GPT

Disk /dev/sdc: 251.0 GB, 251000193024 bytes
255 heads, 63 sectors/track, 30515 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005ee8d

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1   *           1       29274   235141120   83  Linux
/dev/sdc2           29274       30516     9973761    5  Extended
/dev/sdc5           29274       30516     9973760   82  Linux swap / Solaris

Disk /dev/sdd: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0008695d

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1      243201  1953512001   83  Linux

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000efe53

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1      243202  1953514583+  8e  Linux LVM

It's the 320Gb disk, so it should be on /dev/sda1 if I understand this stuff correctly. Unfortunately, when I try to mount it:

sudo mkdir /media/Mac
sudo mount -t hfsplus /dev/sda1 /media/Mac

I get the following error:

mount: wrong fs type, bad option, bad superblock on /dev/sda1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

Looking at the output of tail, I get:

[ 1325.009342] hfs: unable to find HFS+ superblock

So, perhaps this isn't an HFS+ partition. Is there any way to detect what kind of partition it is?


Solution 1:

fdisk is for hard drives that are still using the old legacy Master Boot Record (MBR) partition table format.
GParted is for hard drives that are using the modern GUID Partition Table (GPT).

Hard drives that use GPT often have a "Protective MBR" (PMBR); a fake MBR to try to keep old school MBR-centric formatting/partitioning software from thinking the hard drive is unformatted. The PMBR basically lies and claims that the whole hard drive is allocated as one huge partition.

Macs with Intel processors (read: since 2006) have required or at least strongly preferred GPT for internal/bootable hard drives.

The copy of fdisk you ran was at least smart enough to detect that it was looking at a PMBR on a GPT drive, and print a big warning on the first line of output that you needed to use GPT instead.

Using an MBR-only utility like fdisk to try to figure out the partition table of a GPT drive is an exercise in futility, since the PMBR doesn't even try to stay in sync with the authoritative info in the GPT.