--- libparted/labels/mac.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) Index: parted-3.3/libparted/labels/mac.c =================================================================== --- parted-3.3.orig/libparted/labels/mac.c +++ parted-3.3/libparted/labels/mac.c @@ -468,7 +468,7 @@ _rawpart_is_void (MacRawPartition* raw_p return _rawpart_cmp_type (raw_part, "Apple_Void"); } -/* returns 1 if the raw_part represents a partition that is "unused space", or +/* returns 0 if the raw_part represents a partition that is "unused space", or * doesn't represent a partition at all. NOTE: some people make Apple_Free * partitions with MacOS, because they can't select another type. So, if the * name is anything other than "Extra" or "", it is treated as a "real" @@ -531,6 +531,13 @@ _rawpart_analyse (MacRawPartition* raw_p if (!part) goto error; + /* Check for Apple_Free and set type to PED_PARTITION_FREESPACE */ + if (_rawpart_cmp_type (raw_part, "Apple_Free") + && (strcmp (raw_part->name, "Extra") == 0)) + part->type = PED_PARTITION_FREESPACE; + else + part->type = PED_PARTITION_NORMAL; + mac_part_data = part->disk_specific; strncpy (mac_part_data->volume_name, raw_part->name, 32);