Apple Partition Map – Wikipedia

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

[Bearbeiten | Quelltext bearbeiten]

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]

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.

Adresse Größe
in Byte
Inhalt Erforderlich?
Bytes Hex
0-1 0x0000 2 Signatur (0x504D, ASCII „PM“) Nein
2-3 0x0002 2 reserviert Nein
4-7 0x0004 4 Anzahl Partitionen (gesamt) Ja
8-11 0x0008 4 Startsektor der Partition Ja
12-15 0x000C 4 Größe der Partition (in Sektoren) Ja
16-47 0x0010 32 Name der Partition (in ASCII) Nein
48-79 0x0030 32 Typ der Partition (in ASCII) Nein
80-83 0x0050 4 Startsektor des Datenbereichs auf der Partition Nein
84-87 0x0054 4 Größe des Datenbereichs auf der Partition (in Sektoren) Nein
88-91 0x0058 4 Status der Partition Nein
92-95 0x005C 4 Startsektor des Startprogramms (englisch boot code) Nein
96-99 0x0060 4 Größe des Startprogramms (englisch boot code) (in Bytes) Nein
100-103 0x0064 4 Adresse des Bootloaders (englisch boot loader code) Nein
104-107 0x0068 4 reserviert Nein
108-111 0x006C 4 englisch boot code entry point Nein
112-115 0x0070 4 reserviert Nein
116-119 0x0074 4 Prüfsumme des Startprogramms (englisch boot code) Nein
120-135 0x0078 16 Prozessortyp Nein
136-511 0x0088 376 reserviert Nein

Partitionstypen

[Bearbeiten | Quelltext bearbeiten]
Identifier / Typ Inhalt / Dateisystem Name (typisch) Beschreibung / Bemerkungen
Apple_Boot Bootloader MOSX_OF3_Booter, eXternal booter Da 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_RAID Bootloader Raid Partition
Apple_Bootstrap NewWorld bootblock Diese 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_Driver Gerätetreiber Macintosh Treiber-Partition von Mac OS (Classic).
Apple_Driver43 SCSI-Manager 4.3 (Gerätetreiber) Macintosh Treiber-Partition von Mac OS (Classic).
Apple_Driver43_CD SCSI-CD-ROM-Treiber Macintosh Treiber-Partition von Mac OS (Classic).
Apple_Driver_ATA ATA-Treiber Macintosh Treiber-Partition von Mac OS (Classic).
Apple_Driver_ATAPI ATAPI-Treiber Macintosh Treiber-Partition von Mac OS (Classic).
Apple_Driver_IOKit IOKit-Treiber Macintosh Treiber-Partition von Mac OS (Classic).
Apple_Driver_OpenFirmware Macintosh
Apple_Extra unbenutzt Dieser Partitionstyp kennzeichnet eine unbenutzte Partition.
Apple_Free freier Speicher Extra Dieser Partitionstyp markiert freien Speicherplatz. Hier zeigt sich deutlich die Besonderheit der Apple Partition Map: selbst freier Speicher ist einer Partition zugeordnet.
Apple_FWDriver FireWire-Treiber Macintosh Treiber-Partition von Mac OS (Classic).
Apple_HFS Hierarchical File System Apple_HFS Wird 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_HFSX HFS Plus Diese 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_Loader SecondaryLoader Beinhaltet 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_MFS Macintosh File System Dieser 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_Map Partitionstabelle Apple Die 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_Patches patches Patch Partition Korrektur-Partition von Mac OS (Classic).
Apple_PRODOS Apple ProDOS Dieser Partitionstyp wird von Apple ProDOS verwendet.
Apple_RAID RAID Apple_RAID_OfflineV2 Dieser 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_UFS Unix File System Mac OS X Server Dieser 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_Scratch leer Dieser Partitionstyp markiert eine leere Partition.
Apple_Second Dieser Partitionstyp beinhaltet einen Second stage bootloader.
Apple_UFS Unix File System Mac OS X, Apple_UFS Dieser 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_SVR2 A/UX Ursprü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_Void ISO 9660 Padding Eine Dummy-Partition zur korrekten Ausrichtung (englisch Padding) auf startfähigen Speichermedien.
Be_BFS Be File System Diese Partition beinhaltet ein Be File System (BFS) und wird normalerweise nur von BeOS verwendet.

Partitionsstatus

[Bearbeiten | Quelltext bearbeiten]
Wert Bedeutung System
0x00000001 Eintrag ist gültig (englisch valid) A/UX
0x00000002 Eintrag ist bereitgestellt (englisch allocated) A/UX
0x00000004 Eintrag ist in Verwendung (englisch in use) A/UX
0x00000008 Eintrag enthält Startinformationen (englisch boot information) A/UX
0x00000010 Partition ist lesbar (englisch readable) A/UX
0x00000020 Partition ist beschreibbar (englisch writable) Macintosh, A/UX
0x00000040 Startprogramm ist positionsunabhängig A/UX
0x00000100 Partition enthält chain-ladbaren Treiber Macintosh
0x00000200 Partition enthält realen Treiber Macintosh
0x00000400 Partition enthält Chain-Treiber Macintosh
0x40000000 Partition beim Starten automatisch einbinden Macintosh
0x80000000 Partition ist die Startpartition Macintosh

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  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).