Gestern habe ich versucht, eine Ubuntu-Partition zu löschen. Seitdem bootet mein Mac (13", MBPro Mitte 2014) nicht. Jetzt boote ich auf einer Mac OS-Kopie mit einem USB-Stick. Ich folge einem anderen Thema dieses Forums (etwa so: Partitionstyp plötzlich FFFFFFFF-FFFF-FFFF- FFFF-FFFFFFFFFFFF, Laufwerk unmountbar ), und meine Volume-Partition ändert sich von FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF zu 48465300-0000-11AA-AA11-00306543ECAC . Aber ich kann immer noch nicht damit booten ...
Vielen Dank !
Eine bootfähige OS X-Partition (außer Recovery HD) hat entweder die GUID 48465300-0000-11AA-AA11-00306543ECAC für eine standardmäßige OS X-Partition, die GUID 53746F72-6167-11AA-AA11-00306543ECAC für eine CoreStorage-Partition oder die GUID 7C3457EF -0000-11AA-AA11-00306543ECAC für ein APFS-Volume. Die FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF ist ein unbekannter Partitionstyp (aber keine Partition wie die 000000-0000-0000....).
Die GUID kann mit gpt geändert werden. Sie können GUID-Partitionstabellen mit gpt nur hinzufügen, löschen und ändern, wenn alle zugehörigen Datenträger ausgehängt sind. Um Ihre Partitionen neu zu konfigurieren, booten Sie von einem Laufwerk eines Drittanbieters (z. B. Internet Recovery oder ein USB-Stick des OS X-Installationsprogramms).
Unter bestimmten Umständen muss SIP deaktiviert werden, um die GUID-Partitionstabelle zu ändern.
Booten Sie in den Internet-Wiederherstellungsmodus (oder ein Laufwerk eines Drittanbieters).
Öffnen Sie Terminal in der Menüleiste Dienstprogramme > Terminal
Verschaffen Sie sich einen Überblick mitdiskutil list
Verschaffen Sie sich einen Überblick über Ihre interne Festplatte mit der im vorherigen Befehl gefundenen Festplattenkennung. Im Folgenden gehe ich davon aus, dass die Festplattenkennung Ihrer internen Festplatte disk0 (SSD) ist (ersetzen Sie sie durch die, die Sie in Ihrer Umgebung gefunden haben).
gpt -r show disk0
Unmounten Sie disk0 mitdiskutil umountDisk disk0
Entfernen Sie dann die zweite Partition mit der gleichen Größe, aber dem richtigen Typ, und fügen Sie sie erneut hinzu. Der wahrscheinlichste Typ für disk0s2 auf einer SSD mit derzeit installiertem Sierra ist 53746F72-6167-11AA-AA11-00306543ECAC oder mit installiertem High Sierra 7C3457EF-0000-11AA-AA11-00306543ECAC (weil eine frühere CoreStorage-Partition mit ziemlicher Sicherheit während Upgrade von Sierra auf High Sierra).
Hinweis: Wenn einer der
gpt add
folgenden Befehle die Fehlermeldung generiertgpt add: disk0: error: no space available on device
, finden Sie in dieser Antwort eine mögliche Lösung.
Sierra (CoreStorage):
gpt remove -i 2 disk0
gpt add -i 2 -b 409640 -s 431203056 -t 53746F72-6167-11AA-AA11-00306543ECAC disk0
oder
Hohe Sierra (APFS):
gpt remove -i 2 disk0
gpt add -i 2 -b 409640 -s 431203056 -t 7C3457EF-0000-11AA-AA11-00306543ECAC disk0
oder
Standardpartition (HFSJ Extended):
gpt remove -i 2 disk0
gpt add -i 2 -b 409640 -s 431203056 -t 48465300-0000-11AA-AA11-00306543ECAC disk0
Festplatte und Volume überprüfen:
diskutil verifyDisk disk0
diskutil verifyVolume disk0s2
Wenn Sie von Ihrem USB-Laufwerk gebootet und als Administrator angemeldet sind, müssen Sie voranstellen sudo
, um die gpt-Befehle erfolgreich auszuführen.
Wenn Sie Ihre Systemversion vergessen oder eine benutzerdefinierte Partitionierung vorgenommen haben, können Sie immer noch die ersten Blöcke von disk0s2 untersuchen und den richtigen GUID-Typ bestimmen:
Wenn Sie ein vollwertiges System gebootet haben, können Sie Folgendes verwenden hexdump
:
Unmounten Sie disk0 mitdiskutil umountDisk disk0
hexdump die ersten 3 Blöcke der FFFF... Partition:
sudo dd if=/dev/disk0s2 count=3 | hexdump
Das folgende Ergebnis identifiziert sie als normale OS X-Partition:
0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0000400 48 2b 00 04 80 00 21 00 48 46 53 4a 00 00 01 ff
0000410 d3 8c 77 d3 d4 33 3c b0 00 00 00 00 d3 8c 5b b3
0000420 00 00 02 a8 00 00 00 25 00 00 10 00 00 fe b7 f6
0000430 00 fe 1e fa 00 ed 80 00 00 01 00 00 00 01 00 00
0000440 00 00 10 f2 00 00 5a 9d 00 00 00 00 00 00 00 01
0000450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000460 00 00 00 00 00 00 00 00 7d 9d b0 3a 02 31 62 f0
0000470 00 00 00 00 00 1f e0 00 00 1f e0 00 00 00 01 fe
0000480 00 00 00 01 00 00 01 fe 00 00 00 00 00 00 00 00
0000490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
00004c0 00 00 00 00 00 60 00 00 00 60 00 00 00 00 06 00
00004d0 00 00 0a 00 00 00 06 00 00 00 00 00 00 00 00 00
00004e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0000510 00 00 00 00 03 10 00 00 03 10 00 00 00 00 31 00
0000520 00 03 ac 00 00 00 31 00 00 00 00 00 00 00 00 00
0000530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0000560 00 00 00 00 05 40 00 00 05 40 00 00 00 00 54 00
0000570 00 00 10 00 00 00 54 00 00 00 00 00 00 00 00 00
0000580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0000600
Die erste Zahl ist die Byteanzahl in Hex: 0000000: 0; 0000600: 1536. Das * bezeichnet identische Zeilen. Das bedeutet: Die ersten beiden Blöcke (0x000-0x3ff) sind alle Nullen.
Eine CoreStorage-Partition zeigt einige Nicht-Nullen im ersten Block (0x000-0x1ff):
0000000 0c 73 a1 a9 ff ff ff ff 01 00 10 00 07 14 d7 01
0000010 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000030 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000040 00 20 c1 cc 0f 00 00 00 00 00 00 00 00 00 00 00
0000050 00 00 00 00 00 00 00 00 43 53 01 00 00 00 04 00
0000060 00 10 00 00 00 00 40 00 11 bc fc 00 00 00 00 00
0000070 11 c0 fc 00 00 00 00 00 11 c4 fc 00 00 00 00 00
0000080 11 c8 fc 00 00 00 00 00 00 00 00 00 00 00 00 00
0000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000a0 00 00 00 00 00 00 00 00 10 00 00 00 02 00 00 00
00000b0 62 02 98 59 ee a9 ab 51 9b 49 23 90 2e f8 8b 43
00000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0000130 e4 6e f8 f2 63 99 45 c1 b2 13 86 28 a5 18 46 6d
0000140 c4 51 c0 f6 32 f9 43 ab 8e 59 42 d2 1a ef f6 50
0000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0000400 48 2b 00 04 80 00 21 00 48 46 53 4a 00 00 01 ff
0000410 d1 98 a4 93 d4 33 8b d5 00 00 00 00 d1 98 88 73
0000420 00 06 07 53 00 01 82 39 00 00 10 00 00 fb 6a 00
0000430 00 c5 1c 55 00 25 73 c7 00 01 00 00 00 01 00 00
0000440 00 0d e2 65 00 3e a2 fb 00 00 00 00 02 20 00 fb
0000450 00 00 00 31 00 06 b9 ef 00 00 00 00 00 00 00 00
0000460 00 00 00 00 00 00 00 31 fb 48 1e a0 6c 47 a2 9f
0000470 00 00 00 00 00 1f e0 00 00 1f e0 00 00 00 01 fe
0000480 00 00 00 01 00 00 01 fe 00 00 00 00 00 00 00 00
0000490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
00004c0 00 00 00 00 00 60 00 00 00 60 00 00 00 00 06 00
00004d0 00 00 0a 00 00 00 06 00 00 00 00 00 00 00 00 00
00004e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0000510 00 00 00 00 0e 40 00 00 01 30 00 00 00 00 e4 00
0000520 00 00 10 00 00 00 e4 00 00 00 00 00 00 00 00 00
0000530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0000560 00 00 00 00 11 d0 00 00 01 30 00 00 00 01 1d 00
0000570 00 02 80 00 00 00 72 00 00 13 30 97 00 00 13 00
0000580 00 15 c5 aa 00 00 13 00 00 18 2d 23 00 00 13 00
0000590 00 19 d8 fb 00 00 13 00 00 1b 76 cb 00 00 13 00
00005a0 00 1c 34 70 00 00 13 00 00 1d 0e 4d 00 00 13 00
00005b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
0000600
Die mit Byte 0x130 beginnende Zeile zeigt die UUID des Physical Volume, die mit Byte 0x140 beginnende Zeile zeigt die UUID der Logical Volume Group.
Die Zeichenfolge 48 46 53 4a (= "HFSJ") in den ersten 16 Bytes des dritten Blocks identifiziert ein Journaled HFS+-Volume auf beiden Partitionstypen.
Ein APFS-Container sieht so aus:
0000000 e7 ec ab 5b a2 94 96 44 01 00 00 00 00 00 00 00
0000010 18 0c 00 00 00 00 00 00 01 00 00 80 00 00 00 00
0000020 4e 58 53 42 00 10 00 00 f6 37 ff 00 00 00 00 00
0000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000040 02 00 00 00 00 00 00 00 11 f1 5e 40 31 10 4c 20
0000050 bb 47 53 66 7e 8b 42 d5 b9 c4 00 00 00 00 00 00
0000060 19 0c 00 00 00 00 00 00 18 01 00 00 18 6c 00 00
0000070 01 00 00 00 00 00 00 00 19 01 00 00 00 00 00 00
0000080 21 00 00 00 80 5a 00 00 1f 00 00 00 02 00 00 00
0000090 7a 5a 00 00 06 00 00 00 00 04 00 00 00 00 00 00
00000a0 37 fd 03 00 00 00 00 00 01 04 00 00 00 00 00 00
00000b0 00 00 00 00 64 00 00 00 02 04 00 00 00 00 00 00
00000c0 06 04 00 00 00 00 00 00 08 04 00 00 00 00 00 00
00000d0 66 a4 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
00003d0 00 00 00 00 00 00 00 00 16 21 06 00 00 00 00 00
00003e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
00004f0 00 00 00 00 00 00 00 00 91 3d 0f 00 00 00 00 00
0000500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000510 78 f4 09 00 00 00 00 00 01 00 00 00 00 00 00 00
0000520 01 00 04 00 08 00 00 00 00 00 00 00 00 00 00 00
0000530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Der String 4e 58 53 42 (= „NXSB“) beginnend mit Byte 0x020 im ersten Block ist der magische String eines APFS-Container-Superblocks und identifiziert ihn als APFS-Container. Die UUID des Containers beginnt bei 0x48 (hier: 11 f1 5e 40 ...)
Wenn Sie auf den (Internet-)Wiederherstellungsmodus oder ein Installer-Startlaufwerk beschränkt sind (alle nur mit einem Basissystem, das kein hexdump enthält ), können Sie immer noch verwenden vis
:
Unmounten Sie disk0 mitdiskutil umountDisk disk0
vis die ersten 3 Blöcke der FFFF... Partition:
dd if=/dev/disk0s2 count=3 | vis -c
Wenn Sie zuvor eine Standardpartition hatten, enthalten die ersten 1024 Bytes nur nicht druckbare (Nullen): \0\0\0\0\0\0...
Nach ~Byte 1030 sehen Sie die folgende Sequenz:\0HFSJ\0
Wenn Sie eine CoreStorage-Partition hatten, werden einige Nicht-Nullen in den ersten 512 Bytes und die Zeichenfolge CS ( ...\0CS\^A...
) angezeigt:
\^U\^D\^A\M-s\M^?\M^?\M^?\M^?\^A\0\^P\0\0\0\M-W\^A\a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\^B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\M^Pu\M-\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0CS\^A\0\0\0\^D\0\0\^P\0\0\0\0@\0X\M-7}\^C\0\0\0\0X\M-;}\^C\0\0\0\0X\M-?}\^C\0\0\0\0X\M-C}\^C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\^P\0\0\0\^B\0\0\0006j v\^R\M-+\^U\M^[\f\M^CdG\M-y\^]...
Wenn Sie eine APFS-Partition hatten, wird die Zeichenfolge NXSB ( ...\0NXSB\0\^P...
) in den ersten paar Bytes angezeigt:
??[?\M^T\M^VD\^A\0\0\0\0\0\0\0\^X\f\0\0\0\0\0\0\^A\0\0\M^@\0\0\0\0NXSB\0\^P\0\0?7?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\^B\0\0\0\0\0\0\0\^Q?^@1\^PL ?GSf~\M^KBչ?\0\0\0\0\0\0\^Y\f\0\0\0\0\0\0\^X\^A\0\0\^Xl\0\0\^A\0\0\0\0\0\0\0\^Y\^A\0\0\0\0\0\0!\0\0\0\M^@Z\0\0\^_\0\0\0\^B\0\0\0zZ\0\0\^F\0\0\0\0\^D\0\0\0\0\0\0007?\^C\0\0\0\0\0\^A\^D\0\0\0\0\0\0\0\0\0\0d\0\0\0\^B\^D\0\0\0\0\0\0\^F\^D\0\0\0\0\0\0\b\^D\0\0\0\0\0\0f?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
diskutil verifyVolume
(xattr?) viele Warnungen erhalten, aber am Ende hieß es, es sei in Ordnung, und das war es. Sind diese Warnungen normal?vis -c
von einigen Benutzern gepostete Ausgabe invertierbar ist, während andere Ausgaben viele ?
Zeichen enthalten, wodurch die Ausgabe nicht invertierbar ist. Auf meinem Mac muss ich zuerst eingeben, export LC_CTYPE="ASCII"
bevor ich vis -cw
oder verwenden vis -cfw
kann, um eine invertierbare Ausgabe zu erstellen.vis -c
Ausgabe umkehren, um die Partitionsgröße zu erhalten. Bei der zweiten Frage konnte ich nicht, weil die Ausgabe Fragezeichen ( ?
) enthielt. Dies veranlasste mich zu untersuchen, wie man die Ausgabe invertierbar machen kann.Im Zusammenhang mit der Antwort von klanomath befasst sich diese Antwort damit, was zu tun ist, wenn die folgende Meldung auftritt, nachdem Sie den gpt
Befehl zum Hinzufügen einer neuen Partition verwendet haben, die auch in der MBR-Partitionstabelle vorhanden ist.
gpt add: disk0: error: no space available on device
Der MBR-Partitionstabelleneintrag kann normalerweise aus der Ausgabe des gpt -r show disk0
Befehls identifiziert werden. Nachfolgend finden Sie eine typische Ausgabe, die angezeigt wird, wenn die obige Meldung auftritt.
gpt show: disk0: Suspicious MBR at sector 0
start size index contents
0 1 MBR
1 1 Pri GPT header
2 32 Pri GPT table
34 6
40 409600 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
409640 431203056 2 MBR part 255
431612696 58622023
490234719 32 Sec GPT table
490234751 1 Sec GPT header
Hier gibt die Zeile mit dem MBR
an, dass der zweite Eintrag in der MBR-Partitionstabelle eine Partition definiert, die denselben Speicherplatz belegt, den jeder der gpt add
Befehle in der Antwort von klanomath versucht, wieder in die GPT einzufügen. Der folgende Befehl kann verwendet werden, um die MBR-Partitionstabelle zu drucken.
fdisk /dev/disk0
Eine typische Ausgabe ist unten dargestellt.
Disk: /dev/disk0 geometry: 30515/255/63 [490234752 sectors]
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: EE 0 0 2 - 25 127 14 [ 1 - 409639] <Unknown ID>
2: FF 25 127 15 - 1023 254 63 [ 409640 - 431203056] Xenix BBT
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
Führen Sie die folgenden Schritte aus, um den Partitionseintrag wieder in die GPT einzufügen.
Speichern Sie eine Textkopie der MBR-Partitionstabelle. Der Befehl ist unten angegeben.
fdisk -d /dev/disk0 > /var/tmp/mbr.txt
Entfernen Sie den Partitionseintrag aus der MBR-Partitionstabelle. Beispielbefehle sind unten angegeben.
diskutil unmountdisk disk0
fdisk -e /dev/disk0
setpid 2
0
quit
Nachfolgend finden Sie eine Zusammenfassung der fdisk
interaktiven Befehle.
help Command help list
manual Show entire man page for fdisk
reinit Re-initialize loaded MBR (to defaults)
auto Auto-partition the disk with a partition style
setpid Set the identifier of a given table entry
disk Edit current drive stats
edit Edit given table entry
erase Erase current MBR
flag Flag given table entry as bootable
update Update machine code in loaded MBR
select Select extended partition table entry MBR
print Print loaded MBR partition table
write Write loaded MBR to disk
exit Exit edit of current MBR, without saving changes
quit Quit edit of current MBR, saving current changes
abort Abort program without saving current changes
Unten ist eine Beispielausgabe.
diskutil unmountdisk disk0
Unmount of all volumes on disk0 was successful
$ fdisk -e /dev/disk0
fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
Enter 'help' for information
fdisk: 1> setpid 2
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
2: FF 25 127 15 - 1023 254 63 [ 409640 - 431203056] Xenix BBT
Partition id ('0' to disable) [0 - FF]: [FF] (? for help) 0
fdisk:*1> quit
Writing current MBR to disk.
Hinweis: Die folgende Warnmeldung kann ignoriert werden.
fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
Die Dateiboot0
soll MBR-BIOS-Startcode enthalten. Da macOS das EFI-Booten anstelle des Legacy-BIOS-Bootens verwendet, enthält eine Installation von macOS diese Datei nicht.
Fügen Sie den Partitionseintrag wieder in die GPT ein. Führen Sie grundsätzlich die gleichen Befehle aus, um die Partition hinzuzufügen, wie in der Antwort von klanomath festgelegt . Die vom OP verwendeten Befehle sind unten angegeben.
diskutil unmountdisk disk0
gpt add -i 2 -b 409640 -s 431203056 -t 7C3457EF-0000-11AA-AA11-00306543ECAC disk0
Stellen Sie die MBR-Partitionstabelle aus der gespeicherten Textkopie wieder her. Die Befehle sind unten angegeben.
diskutil unmountdisk disk0
fdisk -r -y /dev/disk0 < /var/tmp/mbr.txt
Unten ist eine Beispielausgabe.
$ diskutil unmountdisk disk0
Unmount of all volumes on disk0 was successful
$ fdisk -r -y /dev/disk0 < /var/tmp/mbr.txt
fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
Entfernen Sie die gespeicherte Textkopie der MBR-Partitionstabelle. Der Befehl ist unten angegeben.
rm /var/tmp/mbr.txt
klanomath
Nicolas Lorand
klanomath
Edric
7C3457EF-0000-11AA-AA11-00306543ECAC
dies immer noch für Mojave?) Ich habe derzeit fast das gleiche Problem, außer dass es sich um ein MacBook Pro Anfang 2015 handelt, und ich habe kein Problem, bei demgpt -r show disk0
diese Ausgabe im Screenshot erzeugt wird.Edric
7C3457EF-0000-11AA-AA11-00306543ECAC
sollte für High Sierra und höher funktionieren. (Bereits getestet: Dateiüberprüfung funktioniert!)David Anderson