Ich habe einen Intel Mac (MacMini) und ein externes USB-Laufwerk. Auf dem internen Laufwerk habe ich eine Partition mit einer OSX-Installation und eine mit Ubuntu+Grub2. Auf dem externen Laufwerk habe ich eine Kopie meiner kompletten OSX-Partition und eine Kopie meiner kompletten Ubuntu-Partition (beide mit anderen UUIDs als das Original).
Ich verwende rEFIt für Dual-Boot. Das interne OSX und Linux und das externe OSX erscheinen im rEFIt-Menü und sind bootfähig. Das externe Linux, das ich booten können möchte, fehlt. Nachdem ich das Linux-Backup erstellt hatte, führte ich update-grub auf dem internen Linux aus (es fand alle 4 Installationen) und auf dem externen (über chroot - es fand alle Installationen außer dem internen Linux). Dies löste das Problem nicht.
Wenn ich versuche, das externe Linux mit dem internen Grub zu booten, erhalte ich die Fehlermeldung:
error: no such device: <the UUID of the external Linux partition>
error: no such partition.
error: you need to load the kernel first.
Wenn ich ls
im internen Grub-Menü etwas eingebe, werden zwar alle Partitionen auf dem internen Laufwerk aufgelistet, (hd1)
es fehlen jedoch alle.
Ich habe versucht, die Partitionstabellen auf dem externen Laufwerk mit zu synchronisieren gptsync
, aber es wird behauptet, dass kein GPT vorhanden ist. gdisk
Ich habe jedoch eines gefunden und ein manueller Vergleich mit fdisk
der Ausgabe von vermittelt mir den Eindruck, dass sie synchron sind. (Die Linux-Partition ist in beiden Tabellen enthalten.)
BEARBEITEN:
Ich habe rEFInd auf eine CD gebrannt und experimentiert. Ergebnisse:
Wenn ich meinen Mac starte, indem ich C drücke, um von der CD zu booten, wird kurz der graue Hintergrund von rEFInd angezeigt, aber dann wird sofort Grub aus der internen Installation gestartet. Ich kann dies umgehen, indem ich rEFInd aus rEFIt auswähle. Dies gibt mir jedoch wenig Vertrauen in die Installation von rEFInd unter OSX.
rEFInd zeigt alle Optionen an, die es anzeigen soll. Wie zu erwarten war, können die Grubs Linux immer noch nicht von der externen Festplatte booten.
Wenn ich einen Linux-Kernel von der externen Festplatte mit rEFInd starte, bootet er zwar, aber nach dem Booten stellt sich heraus, dass die INternal-Partition als gemountet ist
/
. LautDasArtikel, die einzigen Änderungen, die man nach dem Kopieren einer Partition vornehmen muss, sind in Grub. Da ich Grub nicht verwende, verstehe ich das nicht.
Antwort1
Sie sollten zunächst den Unterschied zwischen dem nativen Booten im EFI-Modus und dem Booten im BIOS/CSM/Legacy-Modus verstehen. Intel-basierte Macs haben EFI-Firmware und OS X bootet im EFI-Modus. Diese Firmware enthält einen BIOS-Emulator (bekannt als Compatibility Support Module oder CSM; manchmal auch als „Legacy-Modus“-Unterstützung bezeichnet), der es ihnen ermöglicht, Bootloader im BIOS-Modus zu booten. Apple beabsichtigt, dies zum Booten von Windows zu verwenden; viele Leute verwenden diese BIOS/CSM/Legacy-Unterstützung jedoch auch zum Booten anderer Betriebssysteme, einschließlich Linux. Linux unterstützt jedoch sowohl das Booten im EFI-Modus als auch im BIOS-Modus, sodass die Verwendung des CSM des Macs oft unnötig und sogar kompliziert ist. Andererseits gibt es bestimmte Modelle, bei denen die Hardware unter Linux im BIOS-Modus besser funktioniert als im EFI-Modus.
Das Booten von externen Medien auf Macs ist ein heikles Unterfangen, insbesondere im BIOS/CSM/Legacy-Modus. Wahrscheinlich ist dies das Problem, auf das Sie stoßen. Ich kenne keine Patentlösung für das Problem im BIOS-Modus. Die Lösung, die am wahrscheinlichsten funktioniert, ist das Booten im EFI-Modus. Dazu empfehle ich Ihnen, vom aufgegebenen rEFIt zu seinem von mir gepflegten Fork zu wechseln.neu verfeinern.Unter anderem bietet rEFInd Unterstützung für den direkten Start von Linux-Kerneln mit EFI-Stub-Loadern (dazu gehören die meisten von Distributionen bereitgestellten Kernel seit 3.3.0). Wenn Sie rEFInd von dem auf der Download-Seite verfügbaren USB-Flash-Laufwerk oder CD-R-Image starten, kann es Linux sowohl von Ihrem internen als auch von Ihrem externen Laufwerk starten (und OS X auch von beiden Standorten). Wenn dies funktioniert, installieren Sie rEFIndunter OS Xund installieren Sie auch den Treiber für das Dateisystem, auf dem sich Ihr Linux-Kernel befindet (normalerweise ext4fs). Das Ergebnis sollte die Möglichkeit sein, beide Betriebssysteme direkt zu booten und GRUB zu umgehen.
Wenn das alles funktioniert, empfehle ich, die hässlichen und gefährlichenHybrid-MBR,welches Apples EFI als Auslöser verwendet, um sein CSM zu aktivieren. (Das gptsync
Dienstprogramm erstellt oder ändert einen Hybrid-MBR.) Bitte lesen Sie diesen Link, um zu verstehen, was ein Hybrid-MBR ist und warum er so ein Problem darstellt.
BEARBEITEN:
Die Tatsache, dass die rEFInd-CD-R nicht richtig funktionierte, wenn man sie direkt mit „C“ bootete, aber funktionierte, wenn man sie von rEFIt aus startete, sagt wenig über die Wahrscheinlichkeit aus, dass rEFInd richtig funktioniert, wenn es auf einer Festplatte oder einem USB-Flash-Laufwerk installiert ist. Leider ist das Booten von optischen Medien in EFI ziemlich kompliziert, und Apple scheint seine eigenen Macken eingebracht zu haben. Daher kann das Booten auf diese Weise ein wenig riskant sein, besonders da ich (der Entwickler von rEFInd) nur einen alten Mac habe, auf dem ich Dinge testen kann. Das Booten von der Festplatte (oder von einem USB-Flash-Laufwerk) funktioniert wahrscheinlicher.
Aufgrund Ihrer Beschreibung vermute ich, dass Sie es versäumt haben, Ihre /etc/fstab
Datei auf dem kopierten Dateisystem zu aktualisieren. /etc/fstab
Bei diesem Verfahren ist eine Aktualisierung erforderlich, um auf die neue UUID für die Partition zu verweisen. Wenn Sie zufällig eine /boot/refind_linux.conf
Datei haben, muss diese ebenfalls aktualisiert werden. (Wahrscheinlich haben Sie diese Datei nicht, aber vielleicht haben Sie sie, wenn Sie meine Anweisungen ein wenig übertroffen haben oder in der Vergangenheit mit rEFInd gespielt haben.)