====== Allgemein ====== Apple ist 2006 von der PowerPC-Plattform auf Intel umgestiegen und hat somit in Verbindung mit der Software //BootCamp// die Möglichkeit geschaffen Windows-Systeme (ab Windows XP) parallel auf dem Mac zu installieren. Apple hat den Sprung auf Intel-Prozessoren genutzt um die aktuellsten Techniken zu nutzen. Somit verwenden Intel-Mac //EFI// statt dem veralteten //BIOS// um ihr System zu starten und setzen ebenfalls auf //GPT// statt des veralteten //MBR// als Partitionsschema. Diese Konstellation ist zwingend notwendig um Mac OS X zu starten. Dem gegenüber steht, dass Windows XP weder //EFI// noch //GPT// unterstützt (ich hoffe ich irre hier nicht). Um dieses Manko zu beheben wird der EFI durch BootCamp dazu gebracht dem zu installierenden Windows ein BIOS vor zu gaukeln. Damit all dies noch funktioniert ist es wichtig, dass das Partitionsschema von OS X nicht zerstört wird. Genau dies macht jedoch der Installer von FreeBSD bei einer Standardinstallation und verhindert somit, dass die installierten Systeme noch booten können. Im Folgenden möchte ich zusammenfassen wie ich ein FreeBSD auf einen Intel Mac neben ein installiertes Mac OS X installiert habe. Ich gebe natürlich wie immer keine Garantie auf dem Inhalt dieses Textes. Zudem wurde der Inhalt lediglich auf dem unten genannten Gerät getestet und ist daher nicht als allgemeingültig zu betrachten. ===== Verwendete Komponenten ===== *MacMini (1,66GHz CoreDuo, 1,25GB RAM) *Mac OS 10.6.3 *FreeBSD 9.0 (Beta3 - i386) ====== Vorarbeiten ====== Mittels Bootcamp wird unter Mac OS X eine leere Partition für FreeBSD angelegt. Auf die Frage ob man direkt mit der Installation beginnen möchte wird mit **Beenden & später installieren** geantwortet. Anschließend wird der Mac mit eingelegter FreeBSD-Installations-CD neu gestartet und dabei die **Alt**-Taste gedrückt. Im erscheinenden Bootmenü wird die CD (welche lustigerweise //Windows// heißt) ausgewählt. ====== Installation ====== Die Installation erfolgt analog zur "normalen" Installation bis zum Punkt //Partitionierung// wie sie im Artikel [[Installation]] beschrieben wird. Im Folgenden wird erklärt wie, abweichend von der Standardinstallation, die Partitionierung vorzunehmen ist um ein lauffähiges System zu installieren. ====== Partitionierung ====== Die Besonderheit am Mac ist, dass ein genaues Partitionsschema eingehalten werden muss damit das System booten kann. Um dies zu ermöglichen müssen nun einige Schritte von Hand erfolgen. In die Partitionierung wird über die Auswahl **** eingestiegen woraufhin nach einem kurzen Begrüßungstext eine Shell zur Eingabe fordert. Es hat sich als problematisch erwiesen die Partitionierung über das Programm //gpart// durchzuführen. Wenngleich es sich dabei um die moderne Variante handelt (welche im Allgemeinen auch vorzuziehen ist) hat dies auf dem Mac zu unzähligen Problemen geführt. Daher wird nun mit dem veralteten //fdisk// gearbeitet. Die Eingabe von # fdisk ada0 sollte nun eine Partitionstabelle liefern. Die dritte Partition ist hierbei von Interesse. Die genauen Werte der Partition sollten nach Möglichkeit notiert werden um sie später zu vergleichen. ===== BootCamp-Partition ändern ===== Zunächst muss die BootCamp-Partition in eine FreeBSD-Slice geändert und aktiv geschaltet werden. Dies wird mittels //fdisk// durchgeführt. # fdisk -u -3 ada0 Die Frage: Do you want to change our idea of what BIOS thinks ? [n] wird mit **n** beantwortet. Nun wird die aktuelle Einstellung für die BootCamp-Partition (Partition Nr.3) angezeigt. Auf die Frage: Do you want to change it? [n] wird mit **y** geantwortet. Die neue SysID wird abgefragt Supply a decimal value for "syid (165=FreeBSD)" [11] und mit 165 beantwortet. Der Startwert der Partition bleibt erhalten: Supply a decimal value for "start" [113920000] (der hintere Wert kann abweichen) wird mit Return bestätigt Und auch die Partitionsgröße wird nicht verändert: Supply a decimal value for "size" [42381312] (der hintere Wert kann abweichen) wird mit Return bestätigt Fdisk wird sich nun vermutlich beschweren, dass die Partition nicht richtig in die Grenzen passen würde und bietet an dies zu berichtigen. Diese Warnung ist ein altes Relikt und würde uns nun alles zu Nichte machen. Daher muss correct this automatically? [n] mit **n** beantwortet werden. Den Start und das Ende der Partition kann fdisk selbstständig festlegen. Hierbei hatte fdisk jedoch bei vorherigen Versuchen die Partition zerstört. Daher wird die Frage Explicitly specify beg/end address ? [n] mit **y** beantwortet. Für die nun abgefragten Werte werden einfach die schon gültigen Werte übernommen. Supply a decimal value for "beginning cylinder" [1023] (der hintere Wert kann abweichen) wird mit Return bestätigt. Supply a decimal value for "beginning head" [254] (der hintere Wert kann abweichen) wird ebenfalls mit Return bestätigt. Supply a decimal value for "beginning sector" [63] (der hintere Wert kann abweichen) wird mit Return bestätigt. Supply a decimal value for "ending cylinder" [1023] (der hintere Wert kann abweichen) wird mit Return bestätigt. Supply a decimal value for "ending head" [254] (der hintere Wert kann abweichen) wird mit Return bestätigt. Supply a decimal value for "ending sector" [63] (der hintere Wert kann abweichen) wird mit Return bestätigt. Damit wurden die Originalwerte der Partition übernommen. Abschließend werden wir gefragt ob alles in Ordnung ist und wir bestätigen Are you happy with this entry [n] mit **y**. Nun muss die Partition noch aktiv gesetzt werden und es wird auf die Frage Do you want to change the active partition? [n] ebenfalls mit **y** geantwortet. Die darauf folgende Aufforderung: Supply a decimal value for "active partition" [1] wird mit **3** beantwortet um die BootCamp-Partition anzupassen. Wieder werden wir gefragt ob alles passt und es wird Are you happy with this choice [n] ebenfalls mit **y** beantwortet. Eine letzte Frage Should we write new partition table? [n] die mit **y** beantwortet wird und die Partition ist angepasst. Zum Abschluss wird noch der Bootcode in den MBR der Festplatte geschrieben. fdisk -B ada0 Hier muss ebenfalls wieder die Frage: Do you want to change the boot code? [n] mit **y** bestätigt werden. Und ein allerletztes mal wird die Partitionierung samt Bootcode geschrieben wenn die Frage: Should we write new partition table? [n] mit **y** beantwortet wurde. ===== Partitionsschema in der FreeBSD-Slice setzen ===== Nun wird innerhalb der FreeBSD-Slice ein eigenes Partitionsschema gesetzt und der Bootcode in die Slice geschrieben. Mit dem folgenden Befehl wird innerhalb der BootCamp-Partition (Slice) eine einzige große FreeBSD-Partition (bsdlabel) angelegt und mit dem nötigen Bootcode versehen. # bsdlabel -wB /dev/ada0p3 Die Partitionierung innerhalb //ada0p3// kann nun angepasst werden um z.B. eine swap-Partition zu schaffen und ggf. um weitere Unterteilungen zu machen: bsdlabel -e /dev/ada0p3 Anbei eine Beispielkonfiguration mit 2GB swap und dem Rest für eine einzige große /-Partition. Der Punkt //c:// muss erhalten bleiben wie er automatisch angelegt wurde, da dies die komplette Partition (Slice) widerspiegelt (an der ja im Moment nichts verändert werden soll): # /dev/ada0p3: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: * 16 4.2BSD 0 0 b: 2G * swap c: 42381312 0 unused 0 0 # "raw" part, don't edit ===== Formatieren der Partition ===== Die //swap//-Partition muss nicht formatiert werden da sie als Rohdatenspeicher dient. Jedoch zur Formatierung der Datenpartition (und entsprechend jeder weiteren falls zusätzliche angelegt wurden) wird wie folgt vorgegangen: # newfs -j -L ROOT /dev/ada0p3a ===== Mounten der Partition ===== Um das System zu installieren muss die Partition nach ///mnt// gemountet werden. Soll das System auf mehrere Partitionen gesplittet werden müssen diese entsprechend in den Baum unterhalb //mnt// mit eingebunden werden. # mount /dev/ufs/ROOT /mnt ===== Anlegen der fstab ===== Wie im Begrüungstext beim Betreten der Shell mitgeteilt wurde muss nun noch eine //fstab// Datei angelegt werden welche es dem System ermöglicht später von der richtigen Festplatte zu booten. Hierzu wird die Datei **/tmp/bsdinstall_etc/fstab** in einem Editor geöffnet (z.B. //vi// oder //ee//) und wie folgt angepasst: /dev/ada0p3b none swap sw 0 0 /dev/ufs/ROOT / ufs rw 1 1 Zusätzlich angelegte Partitionen müssen hier natürlich auch Erwähnung finden. ===== Verlassen der Partitionierung ===== Nun muss nur noch die Shell verlassen werden und die normale [[Installation]] kann weiter gehen. # exit ====== FreeBSD und OS X booten ====== Wurde das System fertig installiert und ein Neustart durchgeführt kann bei gedrückter **ALT**-Taste während des Hochfahrens gewählt werden welches System gestartet werden soll. Das installierte FreeBSD wird als //Windows// im Bootmenü angezeigt. Alternativ kann auch unter OS X der Bootmanager [[http://refit.sourceforge.net rEFIt]] installiert werden um zur Bootzeit ein elegantes Menü angezeigt zu bekommen.