Apple Partition Map

Die Apple Partition Map, kurz APM, bezeichnet eine Partitionstabelle für m68k- und PowerPC-basierte Computer des US-amerikanischen Unternehmens Apple. Sie wurde mit dem Macintosh II 1987 eingeführt und 2006 mit dem Übergang zur Intel-Architektur durch die GUID Partition Table (GPT) ersetzt.[1]

Zur Adressierung wird ein Speichermedium in logische Blöcke von üblicherweise 512 Bytes aufgeteilt, wobei der erste Datenblock Block 0 die Apple-spezifische “Driver Descriptor Map”[2] enthält und ab dem zweiten Datenblock die eigentliche Partitionstabelle beginnt. In dieser sind die einzelnen Blöcke über 32-Bit breite Adressen definiert, woraus sich eine partitionierbare Gesamtgröße von maximal 2 TiB ergibt.[3]

Als eine Besonderheit der Apple-Partitionstabelle gilt, dass sie sich selbst ebenfalls als Partition definiert, ebenso wie freier Speicher auf dem Speichermedium als spezielle Partition definiert ist. Damit ist mit der Ausnahme des Block 0 jeder logische Block auf dem Medium einer Partition zugehörig.

Auch auf Hybrid-CDs findet APM gemeinsam mit dem ISO-9660-Dateisystem Verwendung, um (wie Microsoft mit der Joliet-Erweiterung) Interoperabilität bei gleichzeitig voller Funktionalität zu bieten.

Intel-basierte Macs

Für den Zugriff auf Partitionen und die enthaltenen Dateisysteme können ab Mac OS X Tiger (ab 10.4.2, 2005) sowohl APM- als auch GPT-partitionierte Speichermedien in üblicher Weise verwendet werden. Für den Betriebssystemstart (Booten) ist jedoch auf PowerPC-basierten Macs APM Voraussetzung[4], wohingegen auf Intel-basierten Macs GPT verwendet wird.[1]

Macintosh-Computer, die mit Mac OS X Tiger (10.4, 2005) oder Mac OS X Leopard (10.5, 2007) ausgeliefert wurden, können sowohl von APM- als auch von GPT-partitionierten Speichermedien starten, sofern die Methode unterstützt ist und ein passendes Betriebssystem enthalten ist. Dieser Umstand ist der Kompatibilität der Betriebssysteme für sowohl PowerPC- als auch Intel-Macs geschuldet, da die Installationsmedien dieser Mac-OS-X-Versionen eine APM-Partitionierung verwenden (müssen) um auf PowerPC-basierten Macs startfähig zu bleiben. Auf Intel-basierten Macs verwehrt das Installationsprogramm dennoch die Auswahl einer APM-Partition als Installationsziel. Einzig für externe Speichermedien existiert eine offizielle Anleitung von Apple, wie man ein Mac-OS-X-Leopard-(10.5)-Betriebssystem so auf einer APM-partitionierten externen Festplatte installiert, dass es auf beiden Architekturen startfähig ist.[5]

Aufbau

Ein Eintrag in der Partitionstabelle hat jeweils eine Größe von einem Datenblock, was normalerweise 512 Bytes entspricht.[6][7] Jeder Eintrag in die Partitionstabelle belegt somit 512 Bytes oder einen Sektor. Da die Partitionstabelle selbst auch einen Eintrag darstellt, gibt die Größe der ersten Partition die mögliche Anzahl an Partitionen an sich vor.

Normalerweise umfasst die Partitionstabelle selbst 63 Blöcke (Sektoren), kann also 62 zusätzliche Partitionen beherbergen.[8] Zusammen mit der Driver Descriptor Map sind im Normalfall also die ersten 64 Sektoren (64 × 512 = 32 kB) belegt.

Jeder Eintrag in der Partitionstabelle enthält neben dem Startsektor und der Größe auch einen Namen, einen Typ, die Position des Datenbereichs und eines etwaigen Startprogramms auch die gesamte Anzahl der Partitionen in der Partitionstabelle.[9] So weiß z. B. die Firmware bereits beim Einlesen des ersten Partitionseintrags, wie viele weitere Sektoren à 512 Bytes noch eingelesen werden müssen, damit alle Einträge verarbeitet wurden.

AdresseGröße
in Byte
InhaltErforderlich?
BytesHex
0-10x00002Signatur (0x504D, ASCII „PM“)Nein
2-30x00022reserviertNein
4-70x00044Anzahl Partitionen (gesamt)Ja
8-110x00084Startsektor der PartitionJa
12-150x000C4Größe der Partition (in Sektoren)Ja
16-470x001032Name der Partition (in ASCII)Nein
48-790x003032Typ der Partition (in ASCII)Nein
80-830x00504Startsektor des Datenbereichs auf der PartitionNein
84-870x00544Größe des Datenbereichs auf der Partition (in Sektoren)Nein
88-910x00584Status der PartitionNein
92-950x005C4Startsektor des Startprogramms (englisch boot code)Nein
96-990x00604Größe des Startprogramms (englisch boot code) (in Bytes)Nein
100-1030x00644Adresse des Bootloaders (englisch boot loader code)Nein
104-1070x00684reserviertNein
108-1110x006C4englisch boot code entry pointNein
112-1150x00704reserviertNein
116-1190x00744Prüfsumme des Startprogramms (englisch boot code)Nein
120-1350x007816ProzessortypNein
136-5110x0088376reserviertNein

Partitionstypen

Identifier / TypInhalt / DateisystemName (typisch)Beschreibung / Bemerkungen
Apple_BootBootloaderMOSX_OF3_Booter, eXternal booterDa zum Starten ein Dateisystem benötigt wird, das von der Open Firmware (“New World”: Open Firmware 3.0 und neuer) gelesen werden kann, wird diese Partition für BootX verwendet, wenn sich die Installation von Mac OS X nicht auf einem von der Open Firmware lesbaren Dateisystem befindet. Das ist z. B. bei Software-RAID-Konfigurationen der Fall oder wenn ein UFS-Dateisystem oder ein HFS+-Dateisystem, welches “case-sensitive” ist, verwendet wird.
Apple_Boot_RAIDBootloaderRaid Partition
Apple_BootstrapNewWorld bootblockDiese allgemeine Bootpartition der Open Firmware (New World) wird hauptsächlich von yaboot verwendet. Die Partition beinhaltet ein HFS-Dateisystem, das von der Open Firmware gelesen werden kann.
Apple_DriverGerätetreiberMacintoshTreiber-Partition von Mac OS (Classic).
Apple_Driver43SCSI-Manager 4.3 (Gerätetreiber)MacintoshTreiber-Partition von Mac OS (Classic).
Apple_Driver43_CDSCSI-CD-ROM-TreiberMacintoshTreiber-Partition von Mac OS (Classic).
Apple_Driver_ATAATA-TreiberMacintoshTreiber-Partition von Mac OS (Classic).
Apple_Driver_ATAPIATAPI-TreiberMacintoshTreiber-Partition von Mac OS (Classic).
Apple_Driver_IOKitIOKit-TreiberMacintoshTreiber-Partition von Mac OS (Classic).
Apple_Driver_OpenFirmwareMacintosh
Apple_ExtraunbenutztDieser Partitionstyp kennzeichnet eine unbenutzte Partition.
Apple_Freefreier SpeicherExtraDieser Partitionstyp markiert freien Speicherplatz. Hier zeigt sich deutlich die Besonderheit der Apple Partition Map: selbst freier Speicher ist einer Partition zugeordnet.
Apple_FWDriverFireWire-TreiberMacintoshTreiber-Partition von Mac OS (Classic).
Apple_HFSHierarchical File SystemApple_HFSWird von Mac OS und Mac OS X normalerweise mit dem HFS- oder HFS+-Dateisystem verwendet, kann jedoch auch ein „MS-DOS-Dateisystem“ (File Allocation Table) enthalten, auf das ebenfalls von Mac OS und Mac OS X zugegriffen werden kann.
Apple_HFSXHFS PlusDiese Partition enthält ein HFS+-Dateisystem ohne “HFS wrapper”, wodurch es nicht mehr direkt startbar ist. HFSX wurde mit Mac OS X Panther (10.3, 2003) eingeführt und wird nur in besonderen Fällen verwendet, etwa wenn ein HFS+ in der Variante “case-sensitive” verwendet wird. HFSX ist der Standard-GUID-Partitionstyp auf Intel-basierten Macs.
Apple_LoaderSecondaryLoaderBeinhaltet BootX, den Bootloader für Mac OS X, analog zu Apple_Boot, jedoch für “Old World”-Macs. Diese Partition beinhaltet kein Dateisystem, sondern ausführbaren BootX-Code im XCOFF-Format. Diese Partition wurde unter Mac OS X Server und unter Mac OS X bis Mac OS X 10.2 („Jaguar“, 2002) verwendet, wenn das Betriebssystem auf einem UFS- oder einem HFS+-Dateisystem, welches “case-sensitive” ist, installiert wurde.
Apple_MFSMacintosh File SystemDieser Partitionstyp wird von Mac OS für das Dateisystem Macintosh File System (MFS), wie es 1984 mit dem Macintosh 128k eingeführt wurde, verwendet.
Apple_Partition_MapPartitionstabelleAppleDie Partitionstabelle selbst ist auch eine eigene Partition. Die Größe dieser Partition setzt gleichzeitig das Limit, wie viele Partition insgesamt definiert werden können.
Apple_PatchespatchesPatch PartitionKorrektur-Partition von Mac OS (Classic).
Apple_PRODOSApple ProDOSDieser Partitionstyp wird von Apple ProDOS verwendet.
Apple_RAIDRAIDApple_RAID_OfflineV2Dieser Typ markiert eine Software-RAID-Partition, wie sie von Mac OS X verwendet wird. Normalerweise beinhaltet sie ein HFS, HFS+- oder UFS-Dateisystem.
Apple_Rhapsody_UFSUnix File SystemMac OS X ServerDieser Partitionstyp beinhaltet ein Unix File System (UFS), wie es von Apple für das Rhapsody-Betriebssystem (die Entwicklung von OPENSTEP zu Mac OS X) und auch Mac OS X Server 1.0 bis 1.2v3 verwendet wurde.
Apple_ScratchleerDieser Partitionstyp markiert eine leere Partition.
Apple_SecondDieser Partitionstyp beinhaltet einen Second stage bootloader.
Apple_UFSUnix File SystemMac OS X, Apple_UFSDieser Partitionstyp beinhaltet ein Unix File System (UFS) wie es von Mac OS X und Mac OS X Server (ab Version 10.0) und vielen weiteren unixoiden Betriebssystemen genutzt wird.
Apple_UNIX_SVR2A/UXUrsprünglich stammt dieser Partitionstyp von A/UX (das Apple Unix-Betriebssystem basierend auf System V Release 2, daher SVR2) auf der Rechnerarchitektur m68k, es wurde aber später von MkLinux mit dem ext2-Dateisystem wiederverwendet. Es ist der Standard-Partitionstyp von vielen unixoiden Betriebssystemen wie etwa Linux und NetBSD. Diese Partition enthält ein Dateisystem, welches das Betriebssystem unterstützt oder vorgibt. Wenn es startfähig sein soll, muss ein Dateisystem verwendet werden, das vom Bootloader der Partition Apple_Bootstrap (z. B. yaboot) gelesen werden kann.
Apple_VoidISO 9660 PaddingEine Dummy-Partition zur korrekten Ausrichtung (englisch Padding) auf startfähigen Speichermedien.
Be_BFSBe File SystemDiese Partition beinhaltet ein Be File System (BFS) und wird normalerweise nur von BeOS verwendet.

Partitionsstatus

WertBedeutungSystem
0x00000001Eintrag ist gültig (englisch valid)A/UX
0x00000002Eintrag ist bereitgestellt (englisch allocated)A/UX
0x00000004Eintrag ist in Verwendung (englisch in use)A/UX
0x00000008Eintrag enthält Startinformationen (englisch boot information)A/UX
0x00000010Partition ist lesbar (englisch readable)A/UX
0x00000020Partition ist beschreibbar (englisch writable)Macintosh, A/UX
0x00000040Startprogramm ist positionsunabhängigA/UX
0x00000100Partition enthält chain-ladbaren TreiberMacintosh
0x00000200Partition enthält realen TreiberMacintosh
0x00000400Partition enthält Chain-TreiberMacintosh
0x40000000Partition beim Starten automatisch einbindenMacintosh
0x80000000Partition ist die StartpartitionMacintosh

Einzelnachweise

  1. a b Apple: Technical Note TN2166 – Secrets of the GPT (englisch)
  2. Mac OS: Technical overview of disk volume structures. In: Apple Support. Archiviert vom Original (nicht mehr online verfügbar) am 23. Dezember 2015; abgerufen am 5. November 2023 (englisch).
  3. MacTech Magazine: Apple’s Transition from Apple Partition Map to the GUID Partition Table (2007, Band 23, Ausgabe 03), Autor: Criss Myers (englisch)
  4. Timothy Standing: Re: Apple Partition Scheme or GUID Partition Scheme. In: Apple Mailing Lists. 30. April 2006, archiviert vom Original (nicht mehr online verfügbar) am 6. April 2009; abgerufen am 5. November 2023 (englisch).
  5. Apple: Mac OS X 10.5: Eine startfähige „universale“ externe Festplatte erstellen und pflegen
  6. René Rebe, Susanne Klaus: Creating custom Linux solutions. Apple Partition Map. In: T2 System Development Environment. Abgerufen am 24. Februar 2013 (englisch): „While the original intent was to handle various block sizes, in practice only 512 byte blocks are supported.
  7. Technical Note TN2166. Secrets of the GPT. Apple, abgerufen am 24. Februar 2013: „…a standard block size of 512 bytes… […] Apple did consider extending APM to support larger disks. However, as such a change would break all existing partitioning tools…
  8. Apple Partition Map Appendix A. Partitioning Examples. In: T2 System Development Environment. Abgerufen am 5. November 2023 (englisch, Das Kommando pdisk -l /dev/sda gibt die Größe der Apple_partition_map mit 63 Blöcken aus. Beispiele wie dieses finden sich im Internet zuhauf.).
  9. IOApplePartitionScheme.h. Apple, 2009, abgerufen am 7. August 2016 (englisch).