Externe Festplatten mit HFS+ und NTFS

Da ich sowohl im Apple- als auch im Windows-Lager mit Begeisterung aktiv bin, wollte ich gerne jeweils eine HFS+ und NTFS-Partition auf meiner externen Festplatte einrichten – mehr oder weniger gerecht geteilt natürlich.
Wen wunderts: mit den GUI-Tools der beiden Betriebssystem war das natürlich nicht möglich.
Ich wollte NTFS haben, um auf der Platte auch große Dateien wie DVD-Images ablegen zu können. Unter OS X sind NTFS-Volumes zur Zeit nur lesbar – es ist also Abwägungssache, ob man lieber FAT32 haben möchte.

Für FAT32 und HFS+ fanden sich mehrere Anleitungen, ein wenig versteckter auch ergänzende Anweisungen für NTFS und HFS+ auf einer Festplatte. Die interessantesten Informationen fand ich hier,
aber auch als mehrjähriger Linux-User musste ich bei der Durchführung meinen Denkkasten ein wenig anstrengen, daher gebe ich hier nochmal meine eigenen Erfahrungen auf deutsch wieder.

Ich garantiere nicht, dass diese Schritte bei Euch genauso funktionieren, eine Nachahmung erfolgt natürlich auf eigene Gefahr. Wem nicht klar ist, dass bei diesen Vorgängen sämtliche Daten auf der Festplatte gelöscht werden, sollte gefälligst die Finger davon lassen, für entstehende Schäden ist jeder selbst verantwortlich.
Ich habe meine Platte übrigens unter Mac OS X 10.4 (Tiger) partitioniert, evtl. funktionieren die angegebenen Schritte mit älteren Systemversionen nicht.

Herausfinden, hinter welchem Device die Festplatte steckt

Im Terminal kann man mit dem folgenden Befehl eine Liste der aktiven Disks anzeigen. Das macht man einmal, ohne dass die externe Platte angeschaltet ist:

ls /dev/rdisk?

Wenn man danach die externe Platte anschaltet und das Ganze wiederholt, ist die externe Festplatte jetzt mit von der Partie. Merk dir die Nummer des neuen Device, z.B. rdisk2.

Partitionen erstellen

Falls sie gemountet ist, wirf die Platte im Finder aus. Um nun die Platte in zwei Partitionen aufzuteilen (HFS+ für den Mac und Fat32 für Windows), kann man z.B. folgenden Befehl benutzen:

diskutil partitionDisk diskX 2 HFS+ Mac 30G MS-DOS PC 30G

Das „X“ muss natürlich durch die Device-Nummer ausgetauscht werden. Die Fat32-Partition kann später als NTFS formatiert werden – direkt erzeugen lässt sich diese am Mac nicht. Wirf die frisch erzeugten Partitionen im Finder wieder aus, dann gehts weiter:

Partitionstabelle für Windows

Mit dem Kommando „pdisk“ im Terminal werden die Informationen zu den Partitionen angezeigt (das wird noch wichtig). Mit „l“ (kleines L) wird pdisk zum „Listen“ aufgefordert und möchte das Device der Platte wissen (in meinem Beispiel „/dev/disk3“).

Partition map (with 512 byte blocks) on '/dev/disk3'
#:                type name                     length   base      ( size )
1: Apple_partition_map Apple                        63 @ 1
2:          Apple_Free                          262144 @ 64        (128.0M)
3:           Apple_HFS Apple_HFS_Untitled_1  155975680 @ 262208    ( 74.4G)
4:          DOS_FAT_32 DOS_FAT_32_Untitled_2 156343904 @ 156237888 ( 74.6G)
5:          Apple_Free                              16 @ 312581792

Device block size=512, Number of Blocks=312581808 (149.1G)
DeviceType=0x0, DeviceId=0x0

Tja, da war ich wohl zu faul, den Speicherplatz genau auszurechnen: 128 Megabyte bleiben ungenutzt – möge es der Nachahmer besser machen. Mit „q“ wird pdisk wieder verlassen. Mit dem Programm fdisk erstellen wir jetzt einen Master Boot Record, damit Windows auch „seine“ Partition findet:

fdisk -e /dev/rdisk3

Nachdem mit „y“ bestätigt wurde, geht es ans Einrichten der Partitionstabelle, dafür werden die Informationen aus „pdisk“ benötigt. Nacheinander geben wir nun die Apple_partition_map und die beiden Daten-Partitionen für Mac und Windows ein. Der Partitionstyp „af“ steht für HFS+, im Falle der Partition-Map ist das aber nur ein Notanker – dem Windows-System ist eine Apple-Partition herzlich egal, woran sich wahrscheinlich auch mit Longhorn auch nichts ändern wird 😉

edit 1
partition id: af
edit in CHS mode? n
partition offset: 1 (der "base"-Wert aus der Zeile "Apple_partition_map")
partition size: 63 (die Länge der "Apple_partition_map")

Weiter gehts mit der HFS+-Partition (übrigens erlaubt das Terminal von OS X copy & paste):

edit 1
partition id: af (ja, das ist nun wirklich eine HFS+-Partition)
edit in CHS mode? n
partition offset: 262280
partition size: 155975680

Und nun die Fat32-Partition, für die die gesamte Partitionstabelle ja gedacht ist:

edit 3
partition id: c (entspricht Win95 FAT32L)
edit in CHS mode? n
partition offset: 156237888
partition size: 156343904

Mit dem Befehl „print“ kann man das soeben eingegebene kontrollieren:

#: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
1: AF    0   0   2 -    0   1   1 [         1 -         63] HFS+
2: AF   16  82   3 - 1023  91  30 [    262208 -  155975680] HFS+
3: 07 1023  91  31 - 1023  80  47 [ 156237888 -  156343904] Win95 FAT32L
4: 00    0   0   0 -    0   0   0 [         0 -          0] unused

Erst mit dem Befehl „write“ wird die Partitionstabelle auch geschrieben, danach kann fdisk mit „quit“ verlassen werden. Um je eine HFS+ und FAT32-Partition zu erhalten war das schon alles.

HFS+ und NTFS statt HFS+ und FAT32

Wie war das noch? Ich wollte lieber NTFS statt FAT32 gemeinsam mit HFS+ auf meine Platte bringen, um große Dateien wie DVD-Images von Wintel-PCs am Mac wenigstens lesen zu können (nicht vergessen: NTFS ist unter OS X noch nicht beschreibbar). Also wurde die Platte an einen PC mit Windows XP gestöpselt und die FAT-Partition kurzerhand mit NTFS formatiert. Das funktioniert für den PC wunderbar, der Mac jedoch glaubt dank seiner Partition-Map noch immer, es handele sich um eine FAT32-Partition und kann diese nicht mehr mounten.

Also die Platte nochmal an den Apfel stöpseln und der Platte wieder mit pdisk zu Leibe rücken. Mit „e“ wird die Platte ausgewählt, „p“ zeigt die Landkarte der Festplatte – hier sollte die Wintel-Partition noch als „DOS_FAT_32“ aufgelistet sein. Mit „t“ lässt sich der Partitionstyp auf „Windows_NTFS“ ändern.

Hiernach müssen die Änderungen mit „w“ auf die Platte geschrieben werden, bevor man mit „q“ das Programm verlässt und vermutlich zusieht, wie beide Partitionen gemountet werden. Fertig!