UPDATE: Diese Anleitung wurde ursprünglich schon für Ubuntu 13.10 erstellt. Tests zeigen jedoch, dass sie fast unverändert auch mit den nachfolgenden Ubuntu Versionen funktioniert, einschließlich des zuletzt erschienenen Ubuntu 19.10. DIese Anleitung und im Besonderen die Screenshots beruhen aber z.T. noch auf der Version 13.10 und können daher optisch von einer neueren Ubuntu Version abweichen.
Von meinem Arbeitgeber wurde mir als Arbeitsgerät ein MacBook Air 13" (5.2, mid 2012) zur Verfügung gestellt. Als Linux Enthusiast hat es mich in den Fingern gejuckt, auch dieses Betriebssystem auf dem MacBook zu nutzen. Im Netz liest man viele Berichte und HowTo hierüber. Eine Besonderheit gab es aber bei mir. Ich wollte Linux so installieren, dass keinerlei Veränderungen an dem MacBook und der SSD mit Mac OS X vorgenommen werden, da es sich schließlich nicht um mein eigenes MacBook handelt. Ich entschloss mich daher, Ubuntu auf einer großen und schnellen SD-Karte zu installieren. Bei meinen ersten Versuchen stellte ich jedoch fest, dass ein einfach mittels Ubuntu-Installer installiertes Ubuntu auf dem Mac nicht startfähig ist und vom Mac Bootmanager/EFI nicht erkannt wird. Dieser Artikel beschreibt das Vorgehen, Ubuntu so zu installieren, dass keine Änderungen am installierten System vorgenommen werden aber gleichzeitig Ubuntu jederzeit als alternatives System gestartet werden kann.
So ein MacBook Air 13" ist schon ein schicker Haufen hochwertiger Hardware, und es arbeitet sich ausgezeichnet mit dem Gerät. Was liegt also näher, auch Linux darauf zu installieren? Als Distribution für den Desktop verwende ich seit mehreren Jahren Ubuntu Linux. Die aktuelle Ubuntu Version unterstützt auch die komplette Hardware des MacBook Air Out-of-the-Box. Jedoch zickt Ubuntu nach einer Installation und wird beim Systemstart nicht erkannt. Der Mac erlaubt es, beim Start durch gedrückt halten der 'alt' bzw 'Option' Taste, das zu startende Betriebssystem auszuwählen, falls mehrere erkannt werden. Hier scheitert eine gewöhnliche Ubuntu Installation, ganz gleich, ob sie auf der internen Festplatte, einer USB-Festplatte, einem USB-Stick oder einer SD-Karte installiert wurde. Die Ursache liegt in dem EFI (Extensible Firmware Interface) des Mac, welcher einige Besonderheiten benötigt. Ubuntu selbst unterstützt mit Grub2 auch ein Start via EFI. Allerdings ist etwas Handarbeit bei der Installation nötig. Im Netz finden sich zu diesem Thema viele Beiträge, welche den Einsatz eines zusätzlichen Bootmanagers wie bspw. rEFIt oder rEFInd beschreiben. Aber warum zusätzliche Tools einsetzen, wenn es Ubuntu doch von Haus aus auch kann?
Mit dem folgenden Ablauf bei der Installation bootet Ubuntu auch von einem externen Medium bei gedrückter 'alt'-Taste während des Systemstarts ohne Probleme und zusätzliche Software und nimmt dabei keinerlei Veränderung an der eingebauten SSD und dem installierten Mac OS X System vor.
In diesem Tutorial beschreibe ich meine Vorgehensweise zur Installation, wie sie bei mir funktioniert hat. Ich übernehme keinerlei Haftung für Datenverluste oder -veränderungen, die durch das Anwenden dieses Tutorial auf andere Installationen entstehen! Think before you type! Think twice!
Start des Ubuntu Live Systems
Zunächst benötigt man das aktuelle Image der Ubuntu Desktop 64bit Version. Zum jetzigen Stand ist dies ubuntu-17.04-desktop-amd64.iso. Dieses Image bootet auf einem Mac problemlos als Live-Image. Es wird, wie auf den Ubuntu-Seiten (bzw. hier und hier) beschrieben, auf einen USB Stick geschrieben. Den so erstellten USB Stick steckt man in einen freien USB Port des Mac und hält während des Einschaltens beim Startsound die 'alt'-Taste (Option Taste) gedrückt. Es erscheint ein Bootmenu, welches neben der Bootmöglichkeit von der internen SSD ("Macintosh HD") auch ein weiteres Icon mit "EFI Boot" beschriftet zeigt. Zum Starten wähle ich "EFI Boot". Im nachfolgenden Ubuntu Grub Menü wähle ich "Try Ubuntu without installing".
Partitionieren der SD-Card
Nachdem Ubuntu so als Live-System gestartet ist, ist es äußerst hilfreich, erst einmal über die Systemeinstellungen (System Settings) das Keyboard Layout von "English (US)" auf "German (Macintosh)" umzustellen. Vor der Installation muss der Datenträger, auf dem Ubuntu installiert werden soll, gesondert partitioniert werden. Ich habe für die Installation eine schnelle 64GB SD-Karte wie diese hier gewählt. Von dieser SD-Karte läuft das installierte System später flüssig. Noch schnellere SD-Karten habe ich nicht ausprobiert.
Lege die SD-Karte in den Kartenleser des Mac und starte zur Partitionierung über das Ubuntu Logo (links oben) den "GParted Partition Editor". Ganz wichtig ist, nach dem Start von GParted die zu bearbeitende Festplatte auf die eingelegte SD-Card (bei mir /dev/sdc) umschalten! Sonst droht Datenverlust auf der internen SSD! Falls die Partition der SD-Karte nach dem einlegen automatisch gemountet wird, zeigt GParted hinter der Partition (bei mir /dev/sdc1) ein Schloss. Durch einen Rechtsklick auf die Partition (wird beim Mac durch einen Tap mit zwei Fingern auf dem Toucpad ausgelöst) und der Wahl von "Unmount" wird die Partition ausgehängt. Anschließend sollte GParted die SD-Karte wie folgt anzeigen.
Der Mac verlangt für das Booten von einem externen Datenträger, dass dieser eine Partitionstabelle im GUID Partition Table Format besitzt. Über das Menü "Device"→"Create Partition Table..." erzeugen wir eine neue Partitionstabelle. Dazu wählen wir unter "Advanced" das Format "gpt" wie im folgenden Screenshot.
Vor dem Click auf "Apply" sollte man sich unbedingt nochmal versichern, dass die Änderungen tatsächlich auf der SD-Card (hier /dev/sdc) durchgeführt werden.
Danach erzeugen wir mit GParted auf /dev/sdc zwei Partitionen. Die erste ist die EFI Bootpartition und wird mit folgenden Einstellungen erzeugt.
Die zweite ist die spätere Linux Partition und hat folgende Einstellungen.
Im GParted wird die SD-Karte nach der Ausführung der Operationen wie folgt dargestellt.
Damit der Mac die EFI Partition später auch erkennt, muss ihr noch das Flag "Boot" gesetzt werden. Über einen Rechtsklick auf die EFI Partition und der Auswahl von "Manage Flags" setzen wir folgendes Flag.
Nun ist die Partitionierung abgeschlossen und wir können GParted beenden.
Installation von Ubuntu
Jetzt erfolgt die Installation von Ubuntu über das "Install Ubuntu ..." Icon auf dem Desktop. Die Installation erfolgt bis auf wenige Ausnahmen wie eine gewöhnliche. Bei dem Schritt zur Auswahl der Installationsart muss unbedingt "Etwas anderes" gewählt werden, wollen wir nicht die interne SSD überschreiben.
In dem erscheinenden Screen stellen wir als erstes das "Gerät für die Bootloader-Installation" auf die SD-Karte um, um auch hier jede Änderungen an der internen SSD zu verhindern.
Durch Klick auf die EFI Partition (/dev/sdc1) und "Change..." wählen wir die Verwendung als EFI-Boot-Partition.
Durch anschließenden Klick auf die Ubuntu Partition (/dev/sdc2) und "Change..." wählen wir folgende Einstellungen.
Vor dem abschließenden Bestätigen durch Klick auf "Jetzt installieren" bitte nochmal vergewissern, dass die Einstellungen wie folgt sind (insbesondere das Gerät für die Bootloader-Installation). Bei allen übrigen Partitionen darf auch die Verwendung nur "Partition nicht verwenden", dazu auch kein Einhängepunkt gewählt und auch nicht der Haken bei "Formatieren?" gesetzt sein.
Die anschließende Warnung
ignorieren wir. Mein MacBook Air 5.2 besitzt 8GB RAM und benötigt daher nicht zwingend eine Swap Partition.
Nun verläuft die Installation von Ubuntu auf der SD-Karte weiter wie gewöhnlich ab. Nachdem die Installation abgeschlossen ist erfolgt die Frage, ob das System neu gestartet oder weiter im Live-Betrieb gearbeitet werden soll. Da wir noch einige weitere besondere Aktionen für den Bootloader vornehmen müssen, führen wir das Live-System weiter ohne Neustart aus.
Nachbearbeitung des Grub Bootloaders
Zwar hat der Ubuntu-Installer das System jetzt auf der SD-Card installiert, trotzdem würde ein Neustart dieses System noch nicht starten können. Der Grub2 Bootloader wird leider nicht korrekt eingerichtet, obwohl eine EFI Bootpartition vorhanden ist. Diese Schritte müssen noch von Hand durchgeführt werden.
Mittels der Tastenkombination Ctrl-Alt-T starten wir ein Terminal-Fenster und wechseln darin über
sudo -i
zum User root.
Für definierte Mountpoints der Partitionen der SD-Card hängen wir zuerst mal alle Partition der Karte aus. Dies erfolgt mit
umount /dev/sdc1
umount /dev/sdc2
Und mounten dann die Ubuntu Partition nach /mnt.
mount /dev/sdc2 /mnt
Da wir alle weiteren Schritte innerhalb der gemounteten Umgebung vornehmen müssen, wechseln wir durch ein chroot (Change Root) in dieses Verzeichnis. Vorab müssen wir aber auch noch die Filesysteme dev, proc und sys in der gemounteten Umgebung bereit stellen. Die erfolgt durch die Kommandos
mount -o bind /dev /mnt/dev
mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys
chroot /mnt
Nun sind wir quasi in unserer gerade installierten Ubuntu Umgebung. Durch das 'chroot /mnt' haben wir das Verzeichnis /mnt zum neuen Root-Directory gemacht. Innerhalb dieser Umgebung müssen wir Grub2 noch einmal neu installieren und benötigen dazu die gemountete EFI Partition. Diese binden wir über
mount /dev/sdc1 /boot/efi
ein und installieren daraufhin Grub erneut mit dem Befehl
grub-install /dev/sdc
update-grub
Nachdem der grub-install ohne Fehler beendet wurde müssen wir noch manuell einen Pfad anlegen und eine Datei kopieren. Der Mac benötigt anscheinend für den EFI Boot auf der EFI Partition eine Datei "bootx64.efi" im Verzeichnis EFI/BOOT. Diese müssen wir anlegen, indem wir die durch den grub-install erzeugte grubx64.efi einfach als bootx64.efi an die richtige Stelle kopieren.
mkdir -p /boot/efi/EFI/BOOT
cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/BOOT/BOOTX64.efi
Anschließend hängen wir die EFI-Partition wieder aus.
umount /dev/sdc1
Danach verlassen wir die chroot Umgebung wieder (mittels 'exit') und hängen auch die übrigen Filesysteme wieder wie folgt aus
exit
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount /mnt
Damit sind alle Filesysteme und auch die Partitionen der SD-Card wieder ausgehängt und die Installation ist abgeschlossen.
Wir fahren das Ubuntu Live-System herunter und entfernen den USB-Stick mit dem Live-System. Beim anschließenden Neustart des Mac mit eingelegter SD-Card halten wir wieder die 'alt' (Option-) Taste gedrückt. Es erscheint nun wieder der Mac Bootmanager, welcher neben der "Macintosh HD" auch ein SD-Card Icon mit der Bezeichnung "EFI Boot" zeigt. Über dieses Icon können wir jetzt das installierte Ubuntu starten. Wird dagegen beim Systemstart nicht die 'alt' Taste gedrückt gehalten oder ist die SD-Card beim Booten nicht gesteckt, startet das MacBook völlig unverändert von der internen SSD.
Fazit
Es wurden bei dieser Installationsart keine Veränderungen an dem originalen Mac OS X System und dessen Datenträger vorgenommen. Trotzdem habe ich so (m)ein Ubuntu auch auf dem MacBook Air immer zur Hand.