Sonntag, 14. April 2013

Fusion Drive im Eigenbau

Fusion Drive und Windows


Ziel meines Versuches war es herauszufinden ob es möglich ist, ein Fusion Drive auch über Partitionen zu erstellen und gleichzeitig eine Partition der SSD als Installationsort für Windows zu wählen. Um es vorweg zunehmen: Es geht. 

Ein Backup der Daten ist obligatorisch, genauso das ich davon ausgehe das ihr wisst was ihr macht. Wie immer alles auf eigene Gefahr.

Fusion Drive und eine Windows-Partition anlegen


Es sei vorausgesetzt, dass eine SSD an dem ersten Port und eine HDD am zweiten Port installiert ist. Anleitungen wie das geht gibt es zu genüge im Netz.

Um das Fusion Drive zu erstellen von einem Backup oder einem Bootstick starten. Exemplarisch sei auf das "Apple OS X Recovery Disk Assistant"-Tool verwiesen. Beim Start des Mac die "alt"-Taste gedrückt halten und das zu bootende Medium auswählen. Anschliessend geht ihr in das Festplatten-Dienstprogramm und legt auf der SSD zwei Partitonen an. Wenn ihr auch nur von der HDD einen bestimmten Teil in das Fusion Drive mit einbeziehen wollt hier analog vorgehen. Anschliessend ein Terminal starten und per

diskutil list

herausfinden welche Kennung eure Partitonen haben. Eure SSD sollte disk0 haben und die HDD disk1. Findet nun die beiden Partitonen oder gar ganze physikalischen Datenträger heraus, welche ihr als Fusion Drive verwenden wollt. Bei mir war dies disk0s2 und disk1. Ich habe also eine Partition von der SSD verwendet und die gesamte Festplatte. Nun per

diskutil coreStorage create MacFusion disk0s2 disk1

eine logische Volumengruppe anlegen (für mehr Infos einfach mal die man-page lesen!) und per

diskutil coreStorage createVolume ID jhfs+ MacFusion 100%

das Fusion Drive formatieren. ID steht hierbei für die ID der gerade erstellten logischen Gruppe. Zu finden per

diskutil coreStorage list

unter "Logical Volume Group". MacFusion ist ein frei wählbarer Name und 100% steht dafür dass der gesamte Platz verwendet wird. Andere Angaben z.b. in Gigabyte sind möglich, näheres wird euch auch hier die man-page verraten.
Anschließend Mac OS X neu installieren oder ihr spielt euer Backup ein.

Windows-Installation

Die Windows-Installation ist nun recht simpel. Zwar weigert sich Bootcamp andere Partitionen als das neu erstellte Fusion Drive zu erkennen. Aber dies ist kein Problem. Diese künstliche Einschränkung von Seitens Apple ist überflüssig, technisch spricht nichts dagegen. Zum installieren ein Windows-Installationsmedium wieder per alt-Taste beim booten auswählen und bei der Windows-Installation die vorher angelegte Partiton auf der SSD als Installationsort auswählen. Dies wird nicht gehen, da sie erst als NTFS formatiert werden muss, was aber über die erweiterten Optionen problemlos möglich ist. Die entsprechenden Treiber für eueren Mac könnt ihr entweder per Bootcamp herunterladen oder, sollte dies wie bei mir nicht klappen, hilft euch diese Webseite weiter. 

Freitag, 14. Dezember 2012

Gtest für Mac OS X ohne Xcode

Die Anleitung bei Google für gtest unter Mac OS X sind leider alle auf Xcode bezogen. Auch die installation per Mac Ports ist nicht ideal, da nur die alte Version von gtest 1.5 installiert wird. Bei mir selbst konnte ich mit dieser Version nicht meine Testcases compilen. Es gab eine dieser wunderschönen, nichts sagenden Fehlermeldungen. Hier nun eine Anleitung wie man gtest systemweit zur Verfügung stellen kann.

Diese Anleitung bezieht sich auf Mac OS X 10.8.2.

Als erstes muss gtest von Google runter geladen werden z.B. per:

wget http://googletest.googlecode.com/files/gtest-1.6.0.zip

Bitte beachten: wget ist nicht bei Mac OS X dabei ihr könnt das per Mac Ports installieren. Im nächsten Schritt wird das Archiv entpackt, in das neue Verzeichnis gewechselt und dann wird gtest aus dem Quelltext gebaut:

unzip gtest-1.6.0.zip
cd gtest-1.6.0
./configure
make

Unter Mac OS X scheitert nun ein

sudo make install

mit der Warnung:

'make install' is dangerous and not supported. Instead, see README for how to integrate Google Test into your build system.

Deshalb müssen nun die notwendigen Dateien manuell kopiert werden:

sudo cp -a include/gtest /usr/local/include
sudo cp -a lib/.libs/* /usr/local/lib

Sollte man z.B. eine neuer gcc Version verwenden als die mitglieferte, welche mit Version 4.2 nun doch etwas arg angestaubt ist, so müssen die Dateien dem jeweiligen Compiler bekannt gemacht werden. Ist z.B. gcc per Mac Ports installiert worden muss noch:

sudo cp -a include/gtest /opt/local/include
sudo cp -a lib/.libs/* /opt/local/lib

ausgeführt werden. Alternativ kann man natürlich auch einen Link erstellen.