Recovery Partition auf Fusion Drive nachträglich erstellen

  • Wer kennt das nicht, man entscheidet sich dazu seinen Hackintosh mit einem FusionDrive auszustatten und stellt anschließend fest die Recovery Partition ist plötzlich verschwunden und keines der einschlägigen Tools bietet eine Möglichkeit an diese wieder herzustellen. Gut man kann sich nun die Frage stellen ob man die Recovery Partition wirklich benötigt und welchen Benefit sie letztlich bringt aber gerade bei Systemen die mit Ozmosis oder Clover laufen macht diese Partition schon Sinn denn letztlich ermöglicht Sie es uns neben bestimmten Diensten in iCloud (Ortungsdienste, FindMyMac) auch umfassende Wartungs- und Reparaturarbeiten an unserer Installation vorzunehmen falls mal was schief gelaufen ist und selbst einer kompletten Neuinstallation inkl. Download aus dem Store steht nichts im Wege sofern die Netzwerkkarte funktioniert (kext in Ozmisis oder über Clover geladen). Ihr seht also die Vorzüge überwiegen gerade bei Rechnern, die mit Ozmosis/Clover laufen vor den Nachteilen aber wie kann man nun die Partition nachträglich erstellen? Hier kommt jetzt Das Terminal ins Spiel aber keine Sorge, das sieht alles viel wilder aus als es ist.


    1. Vorbereitungen treffen:
    Ganz wichtig, alles was wir im folgenden tun greift auf einem ziemlich niedrigen Level direkt in das DateiSystem Eures FusionDrives ein daher ist ein Backup absolut Pflicht, denn auch schon ein kleiner Fehler kann zum Verlust der kompletten Daten führen. Bevor Ihr also loslegt macht Euch unbedingt ein Backup. Neben dem Backup brauchen wir folgende Dinge:


    - Bootfähigen USB Stick, vorzugsweise den, den Ihr auch zum Installieren benutzt habt
    - Zettel und Stift, wahlweise einen 2. Rechner mit geöffneten Notepad
    - Einen Ausdruck dieser Anleitung, falls kein Rechner parallel verfügbar ist auf dem man nachlesen könnte


    2. Umsetzung:
    Wenn alle Vorbereitungen getroffen wurden booten wir unseren Rechner vom USB Stick aus neu und öffnen zunächst das FestplattenDienstProgramm. Im FestplattenDienstProgramm suchen wir nun unser Fusion Drive und werfen dieses dann aus.

    Mein FusionDrive trägt den überaus kreativen Namen mavericks also wird in meinem Fall mavericks markiert und anschließend auf auswerfen geklickt. Ist das Laufwerk einmal ausgeworfen kann das FestplattenDienstProgramm geschlossen und an seiner Stelle das Terminal geöffnet werden. Ab jetzt geht es ans Eingemachte. Da wir über den Installer gebootet haben besitzen wir automatisch root rechte sprich wir können direkt loslegen. Solltet Ihr nicht über den Installer gebootet haben sondern über eine alternative OSX Installation auf Eurem System müsst Ihr Euch jetzt erst die Rootrechte holen, das geht im Terminal Durch die Eingabe von

    Code
    1. sudo su

    gefolgt von Eurem Passwort. In Beiden Fällen geht es nun mit folgendem Kommando weiter

    Code
    1. diskutil corestorage list

    Das Ergebnis sollte ungefähr so aussehen

    Schreibt euch jetzt die UUID des physikalischen Laufwerks, auf dem die Recovery Partition erstellt werden soll, sowie die UUID der Logical Volume Group des FusionDrives auf. Üblicherweise nimmt man bei einem FusionDrive dazu immer die herkömmliche Festplatte und nicht die SSD (bei der SSD wäre das Platzverschwendung). In meinem Fall ist das also 78D9E015-B131-4417-A88D-B979E2A66A47 für das physikalische Laufwerk auf dem die Recovery Partition erstellt werden soll sowie F9701FE2-1916-47A7-A1F6-5C62ADEBFD2D für das FusionDrive selbst. Haben wir diese Informationen nun zusammen geht es darum das FusionDrive entsprechend zu verkleinern um Platz für unsere Recovery Partition zu schaffen. Die exakte Größe unseres logischen Laufwerks in Bytes kennen wir ja bereits von dem Ergebnis des Befehls

    Code
    1. diskutil corestorage list

    die entscheidende Information findet sich im oberen Bereich der Ausgabe.

    Code
    1. |
    2. |
    3. +-- Logical Volume Group F9701FE2-1916-47A7-A1F6-5C62ADEBFD2D
    4. =========================================================
    5. Name: mavericks
    6. Status: Online
    7. Size: 1056678506496 B (1.1 TB)

    In meinem Fall ist also das FusionDrive exakt 1056678506496 Byte groß eine handelsübliche RecoveryPartition ist 784220160 Byte schwer hieraus ergibt sich also die neue Größe des logischen Laufwerks. Wir rechnen also einfach aktuelle Größe minus 784220160 und erhalten die neue Größe. In meinem Fall also 1055894286336 Byte und diese Größe dient uns als Basis um das Fusion entsprechend zu verkleinern. Bewerkstelligt wird die mit folgendem Befehl

    Code
    1. diskutil coreStorage resizeVolume <lvUUID> <size>

    hierbei entsprich lvUUID natürlich der UUID Eures logischen Laufwerks und size der eben errechneten Größe. In meinem Beispiel lautet der Befehl also

    Code
    1. diskutil coreStorage resizeVolume F9701FE2-1916-47A7-A1F6-5C62ADEBFD2D 1055894286336B

    Keine Panik, nach dem absetzen des Befehls dauert es nun eine Weile bis die Änderungen durchgeführt wurden. Verfolgt die Ausgaben auf dem Bildschirm und lehnt Euch zurück. Wenn der Befehl erfolgreich durchgeführt wurde ist der Grundstein gelegt, weiter geht es nun damit die recovery Partition auch tatsächlich zu erstellen. Weiter geht es also mit dem folgenden Befehl

    Code
    1. diskutil coreStorage resizeDisk <pvUUID> <size> JHFS+ Recovery 784220160B

    und auch hier müssen wir wieder ein wenig rechnen denn auch hier brauchen wir wieder die wirkliche Größe der physikalischen Partition von der wir wieder die Größe unserer neuen Recovery Partition abziehen. In meinem Beispiel ist die physikalische Partition disk2s2 und 997,0GB groß wie im Output oben zu sehen ist

    Code
    1. +-< Physical Volume 50953475-A4AD-48A7-B614-11315D4105ED
    2. | ----------------------------------------------------
    3. | Index: 1
    4. | Disk: disk2s2
    5. | Status: Online
    6. | Size: 996999999488 B (997.0 GB)
    7. |

    in meinem Beispiel ist also die neue Größe 996999999488-784220160=996215779328 und der konkrete Befehl beträgt auf mein Beispiel übertragen

    Code
    1. diskutil coreStorage resizeDisk 50953475-A4AD-48A7-B614-11315D4105ED 996215779328B JHFS+ Recovery 784220160B

    .So, damit ist der erste Schritt gegangen aber eine wirklich Recovery Partition haben wir jetzt noch nicht, da unsere so eben erstellte Partition noch nicht das richtige Format hat aber das lässt sich ja ändern ;)
    Weiter geht es also mit dem folgenden Befehl:

    Code
    1. gpt show diskX

    Wobei das X natürlich durch die Zahl ersetzt werden muss, die bei Euch passt, in meinem Fall ist es die Partition 4 auf Disk 2 demnach geben ich also

    Code
    1. gpt show disk2

    ein und suche dort nach einem Eintrag der wie folgt markiert ist

    Code
    1. **247397528 1269528 3 GPT part - 48465300-0000-11AA-AA11-00306543ECAC**

    Wichtig sind hierbei die Sterne. Einmal gefunden geht es daran diese Partition als AppleBoot zu formatieren hierzu wird zunächst die Partition gelöscht

    Code
    1. gpt remove -b 247397528 -s 1269528 -t 48465300-0000-11AA-AA11-00306543ECAC disk2

    Wobei der Wert hinter dem -b dem Wert entsprechen MUSS der unter Start steht und der Wert hinter dem -s dem Wert demnach dem Wert in der Spalte Size entspricht und natürlich die UUID, in meinem Beispiel 48465300-0000-11AA-AA11-00306543ECAC Eurem Wert in der Spalte UUID entsprechen muss. Einmal ausgeführt ist die Partition gelöscht und kann nun mit der korrekten UUID wieder erzeugt werden

    Code
    1. gpt add -b 247397528 -s 1269528 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0

    . Auch hier wird bis auf die UUID entsprechend ersetzt. Habt Ihr alles richtig gemacht habt Ihr jetzt eine Recovery Partition die bereit ist die nötigen Daten aufzunehmen. Ist das alles erledigt startet Ihr Euren Rechner neu und bootet wieder normal in Euer OSX. Ihr habt jetzt zwar eine Recovery Partition aber diese hat noch gar keine Funktion aber genau die schaffen wir jetzt. Dazu öffnen wir zunächst mal wieder das Terminal und geben dort folgenden Befehl ein

    Code
    1. sudo defaults write com.apple.DiskUtility DUDebugMenuEnabled 1

    hiermit schaltet Ihr den Debug Modus des FestplattenDienstProgramms ein, er Euch ermöglicht alle Partitionen auf eine Festplatte anzuzeigen.

    Ihr wählt hier nun Eure Recovery Partition aus und wählt dann oben in der Leiste "aktivieren" um die Partition einzubinden. Ist die Partition einmal eingebunden ladet Ihr Euch folgendes Tool herunter *klick* führt es aus und zieht Eure so eben eingebundene Partition hinein. OSX wird Euch kurz darauf über den AppStore ein Update der RecoveryPartition anbieten welches Ihr installieren solltet und schon habt Ihr eine funktionierende RecoveryPartition auf einem Fusion Drive ;)


    Viel Spaß damit.

  • Ist es nicht auch möglich, im Festplattendienstprogramm einfach auf "Wiederherstellung" zu gehen und dann eine ca. 8.GB-Partition mit den Mavericks-Installation-Files, wiederherzustellen? So kann man auch schneller, neu, installieren...

  • Geht nicht bei logischen Volumes Prof im Normalfall aber schon...

  • Dann schon, nur bedenkt das eben kaum jemand ;)
    Apple macht das selbst ja nicht anders bei den Mac´s die ab Werk mit Fusion kommen ;)

  • Super Anleitung.



    Aber ist es nicht einfacher es direkt zu machen, mit der Erstellung vom FusionDrive?

    Motherboard : Sockel H3 (LGA1150) GIGAByte H81M-D2V F3


    CPU : Intel Core i5-4750 (Haswell)


    Grafikkarte : Zotec GTX 760 1.5GB


    RAM : 8 GB


    Festplatte: Samsung SSD 120

  • @Jarhead man kann zwar eine neue Partition mit dem FestplattenDienstProgramm erstellen oder auch eine weitere Partition dem Fusion Verbund hinzufügen nur ist es über das FestplattenDienstProgramm nicht möglich Partitionen vom Typ AppleBoot zu erstellen aber genau eine solche Partition benötigen wir um die Recovery Partition zu erstellen.


    Brucklyn klar ist das einfacher dennoch wird der OSX Installer keine Recovery Partition erstellen, wenn als Ziel für die Installation ein Fusion Drive gewählt wird unabhängig davon ob eine entsprechende Partition schon vorhanden ist oder nicht. Es ist also so oder so Handarbeit nötig um im Fusion Verbund (im Übrigen auch im Raid0 Verbund) eine funktionierende Recovery Partition zu erstellen, die im Anschluss dann auch startfähig ist wie bei einem echten MAC. Es geht hierbei ja nicht primär darum die Ortungs Dienste oder erweiterten Cloud Services zu verwenden sondern eben auch darum eine vollwertige Recovery Partition zu besitzen aus der man im Fall des Falles das System wieder herstellen kann ohne mit einem Stick arbeiten zu müssen.

  • griven
    Wenn man es mit DiskUtility macht braucht man aber nur noch einen einzigen Befehl im terminal um die partition auf AppleBoot zu setzen. Ist doch wesentlich einfacher und man kann sich die ganzen anderen Terminal Befehle sparen.

  • Stimmt, so kann man es auch machen, aber mir ist es ehrlich gesagt über das Terminal lieber, da hier die volle Kontrolle über die exakte Größe der Partition erhalten bleibt und kein Platz unnötig "verschwendet" wird. Wenn ich das in meinem Fusion Verbund versuche ist der kleinste Wert den ich erreichen kann, wenn ich so vorgehe, wie auf der Apple FAQ Seite beschrieben 74GB (eine manuelle Eingabe der Größe ist nicht möglich). Finde schon, dass 74GB im Vergleich zu knapp 790 MB schon ein entscheidender Unterschied sind zumal die FAQ Seite ja auch deutlich sagt, dass eine weitere Änderung der Partitionen dann nicht mehr möglich sind.

    Zitat

    Kann ich eine Festplattenpartition mit Fusion Drive hinzufügen?
    Mit dem Festplattendienstprogramm können Sie eine Partition zu der Festplatte mit Fusion Drive hinzufügen. Sobald Sie die Partition hinzugefügt haben, wird das "Plus"-Symbol im Festplattendienstprogramm zum Einfügen weiterer Partitionen ausgegraut.

    Bequem ist das bestimmt aber ich finde nicht wirklich der Weisheit letzter Schluss.


    Allgemein ist Recovery Partition nicht gleich Recovery Partition. Ich spreche hier von dem Weg, der auch auf echten MAC´s angewendet wird (macht natürlich nur Sinn, wenn die Netzwerkkarte entweder über das Bios->Ozmosis oder via Kext Injektion->Clover zur Verfügung steht). Für alle anderen Fälle muss man die Partition dann natürlich so groß wählen, dass man die installESD.dmg darauf wiederherstellen kann (->Offline Recovery). Vorteil bei der Mac like Lösung ist, dass man unabhängig von der eventuell vorliegenden Version immer die aktuell verfügbare aus dem Store laden kann was ich eigentlich eine sehr charmante Lösung finde.

  • 74GB?!? Das scheint aber ein ziemlicher bug in DiskUtility zu sein. Mit iPartition gehts aber.

  • Erstmal vielen Dank für die klasse Anleitung. :)
    Leider bin ich nicht weit gekommen. Bei der Verkleinerung des FD kommt die Fehlermeldung "does not appear to be a valid corestorage Logical Volume UUID or disk". Habe die UUID der unter "Diskutil cs list" zuerst erscheinenden Logical Volume Group, also des FD erst manuell eingegeben und auch über copy/ paste. Alles bis dahin genau nach Anleitung gemacht.
    Wo könnte der Fehler stecken?


    System: MacOS Mavericks