Wie kann man freien Speicherplatz für APFS zurückfordern, nachdem man ihn auf Bootcamp freigegeben hat?

Ich habe ein ziemlich altes Macbook (2016) mit einer 256-GB-Festplatte, auf der Catalina 10.15.7 ausgeführt wird, auf dem ich Bootcamp eingerichtet habe, das die Festplatte damals ungefähr halbiert.

Kürzlich habe ich mich für ein Upgrade auf BigSur entschieden und festgestellt, dass ich dafür keinen Speicherplatz mehr habe. Das Update besagt, dass etwa 25 GB benötigt werden, und da ich auf Bootcamp genügend Speicherplatz für meine Bedürfnisse hatte, habe ich seine Größe partitioniert weniger zu sein, sicher genug, dass ich meine APFS-Partition verhexe, was hier auf dieser hilfreichen Website gerne beantwortet wird :)

Dadurch wurden etwa 35 GB Speicherplatz auf der Festplatte frei, genug für mein Update, aber ich finde jetzt keine Möglichkeit, ihn mit dem ursprünglichen MacOS-Container zusammenzuführen:

SSD-Partition

Ich möchte sowohl Bootcamp als auch das vorhandene MacOS intakt halten, füge einfach den freien Speicherplatz wie auf dem Bild oben dem vorhandenen „Macintosh HD“ hinzu und fahre dann mit meinem System-Upgrade fort. Nachdem ich hier und hier einige weitere hilfreiche Antworten durchsucht habe, wird mir jetzt klar, dass dies möglicherweise schwieriger ist, als es aussieht, da ich keinen freien Speicherplatz zum Klonen einer der beiden Partitionen habe, die ich behalten möchte, wenn ich diesen Weg gehe, und das sudo diskutil apfs resizeContainer disk0s3 0nicht funktioniert für mich, da der freie Speicherplatz vor dem MacOS-Container steht (es gibt auch einen FAT32-Container, der wahrscheinlich direkt am Anfang der Festplatte mit Bootcamp zusammenhängt) und den folgenden Fehler zurückgibt:

Error: -69519: The target disk is too small for this operation, or a gap is required in your partition map which is missing or too small, which is often caused by an attempt to grow a partition beyond the beginning of another partition or beyond the end of partition map usable space

Auf Free Space disk0s2folgt dann der MacOS-Space disk0s3und schließlich der Bootcamp-Space disk0s4und alles zusammen sieht so aus wie ein großes hässliches:

FestplatteGesamt Datenträgerstruktur

Also ist es überhaupt möglich? Muss ich eine externe Festplatte verwenden, um eines der beiden vorhandenen Systeme zu klonen, zu formatieren und dann wieder einzuklonen? Oder gibt es einen einfacheren Weg mit einigen hilfreichen diskutil- oder gpt-Befehlen, die mir nicht bekannt sind?

Aktualisierung 1

Ausgabe von diskutil list internalvor dem Zurückfordern von Speicherplatz:

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                  Apple_HFS                         36.7 GB    disk0s2
   3:                 Apple_APFS Container disk2         111.0 GB   disk0s3
   4:       Microsoft Basic Data BOOTCAMP                102.3 GB   disk0s4
   5:           Windows Recovery                         513.8 MB   disk0s5

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +36.8 GB    disk1
                                 Physical Store disk0s2

/dev/disk2 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +111.0 GB   disk2
                                 Physical Store disk0s3
   1:                APFS Volume Macintosh HD - Data     86.9 GB    disk2s1
   2:                APFS Volume Preboot                 81.6 MB    disk2s2
   3:                APFS Volume Recovery                529.0 MB   disk2s3
   4:                APFS Volume VM                      1.1 GB     disk2s4
   5:                APFS Volume Macintosh HD            11.3 GB    disk2s5

Aktualisierung 2

Nachdem ich alle von David Anderson im Kommentarbereich unten empfohlenen Aktionen ausgeführt hatte (verwenden Sie Gparted , um die Partitionen zu verschieben, und versuchen Sie dann, den Bootvorgang mit Hilfe eines auf dem Mac erstellten USB-Stick-Images von Windows zu reparieren), wurde mir nun klar, dass ich Ich habe den Move & Resize-Teil vermasselt.

Derzeit sieht die Ausgabe von nach erfolgreicher Rückgewinnung des freien Speicherplatzes diskutil list disk0wie folgt aus:

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI ⁨EFI⁩                     314.6 MB   disk0s1
   2:                 Apple_APFS ⁨Container disk1⁩         125.2 GB   disk0s2
   3:       Microsoft Basic Data ⁨BOOTCAMP⁩                125.0 GB   disk0s3
   4:           Windows Recovery ⁨⁩  

Da ich die Größe der Windows-Partition jedoch manuell nach dem Verschieben des Apple-Containers geändert habe, ist die Rückgabe gdisk64.exevom bootfähigen Windows-USB-Stick wie folgt:

X:\sources>c:\gdisk64.exe 0:
GPT fdisk (gdisk) version 1.0.8

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************


Warning! Secondary partition table overlaps the last partition by
33 blocks!
You will need to delete this partition or resize it in another utility.
************************************************************************
Most versions of Windows cannot boot from a GPT disk except on a UEFI-based
computer, and most varieties prior to Vista cannot read GPT disks. Therefore,
you should exit now unless you understand the implications of converting MBR
to GPT or creating a new GPT disk layout!
************************************************************************

Are you SURE you want to continue? (Y/N): y

Command (? for help): x

Expert command (? for help): p
Disk 0:: 61046784 sectors, 29.1 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): 6994BC7D-0979-475B-942C-E6A107C02C86
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 61046750
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048        61046783   29.1 GiB    0700  Microsoft basic data

Expert command (? for help):
Können Sie Ihrer Frage die Ergebnisse des Terminalbefehls im Textmodusdiskutil list internal hinzufügen: ?
Am Ende der Frage hinzugefügt, muss ich zugeben, dass es eine andere Sicht auf die Struktur zeichnet, aber Bootcamp wurde anscheinend immer noch zuerst eingefügt.

Antworten (1)

Eine ähnliche Frage wie Ihre wurde gepostet und beantwortet, nachdem Sie diese Frage gepostet hatten. Der Unterschied besteht darin, dass die andere Frage den freien Speicherplatz hat, der nach der Windows-Partition auftritt. Ihr freier Speicherplatz existiert vor der APFS-Partition, die macOS enthält. (Eigentlich ist Ihre Frage insofern zweideutig, als der freie Speicherplatz auch als HFS-Partition angezeigt wird, die einen leeren APFS-Container enthält.)

Ich habe eine Antwort auf die andere Frage gepostet, bei der es darum ging, GParted zum Verschieben einer Partition zu verwenden. Beim Testen konnte ich überprüfen, ob GParted auch APFS-Partitionen verschieben kann. Sie könnten also die APFS-Partition vor den freien Speicherplatz verschieben und dann einen Befehl eingeben (ähnlich dem Befehl in Ihrer Frage und meiner anderen Antwort), um den freien Speicherplatz zu dieser Partition hinzuzufügen.

Sie möchten jedoch als Lösung vorübergehend auf ein externes Laufwerk klonen (wie einige darauf bestehen, dass dies die einzig mögliche Antwort ist), und dann eine Nachricht senden. Ich sollte zuerst warnen, dass ich keine Erfahrung mit Carbon Copy Cloner habe. Ich würde stattdessen versuchen, die in macOS enthaltenen Tools zu verwenden.

So verwenden Sie macOS zum Erstellen eines bootfähigen USB-Sticks Windows 10 Installer.

  1. Verwenden Sie das Festplattendienstprogramm, um einen USB-Stick zu löschen. Wählen Sie einen passenden Namen. Wählen Sie das ExFATFormat und Master Boot Recorddas Schema aus.

  2. Verwenden Sie den Finder, um die Windows 10-ISO-Datei zu mounten.

  3. Verwenden Sie den Finder, um den Inhalt der Windows 10-ISO-Datei auf den USB-Stick zu kopieren.

  4. Verwenden Sie den Boot Camp-Assistenten, um die Windows Support Software herunterzuladen.

  5. Kopieren Sie die Windows Support Software auf den USB-Stick.

  6. Überprüfen Sie den Inhalt des USB-Sticks. Unten ist das Ergebnis für einen 2018er Mac mini, wenn die Win10_21H2_English_x64.isoDatei von Microsoft verwendet wurde.

    Hinweis: Wenn Sie eine Datei mit dem Namen sehen AutoUnattend.xml, benennen Sie diese Datei in den Namen umNoAutoUnattend.xml

So verwenden Sie macOS fügen Sie GPT fdisk zu einem bootfähigen USB-Stick hinzu Windows 10 Installer.

  1. Safari öffnen. Wenn das DevelopMenü nicht in der Menüleiste angezeigt wird, wählen Sie SafariPreferences…aus der Menüleiste, klicken Sie im Popup auf die Registerkarte Erweitert und wählen Sie dann Show Develop menu in menu bar. Wenn Sie fertig sind, schließen Sie das Popup.
  2. Rufen Sie die Homepage des GPT-fdisk-Projekts auf . Wählen Sie in der Menüleiste DevelopUser AgentFirefox — Windows. Wählen Sie als Nächstes die grüne DownloadSchaltfläche auf der Homepage des GPT fdisk-Projekts aus . Die Standardaktion besteht darin, die neueste Version von GPT fdisk für Windows in Ihren DownloadsOrdner herunterzuladen und dann in einen Ordner zu entpacken. Schließen Sie nach Abschluss des Downloads das Safari-Fenster.
  3. Kopieren Sie gdisk64.exedie Microsoft Windows-Anwendung aus dem Ordner, der während des Downloads erstellt wurde, in das Stammverzeichnis des bootfähigen USB-Sticks Windows 10 Installer.

So laden Sie die Treiber, bevor Sie einen bootfähigen USB-Stick verwenden Windows 10-Installationsprogramm zur Reparatur Ihres Computers

  1. Booten Sie vom USB-Stick Windows 10 Installer.

  2. Wenn das unten gezeigte Fenster erscheint, treffen Sie die entsprechende Auswahl und wählen Sie dann die NextSchaltfläche.

  3. Wenn das unten gezeigte Fenster erscheint, wählen Sie Install nowund fahren Sie fort, als ob Sie Windows installieren wollten.

  4. Wenn das unten gezeigte Fenster erscheint, wählen Sie einfach das rote Kästchen mit dem „X“-Zeichen aus.

    Wenn das unten gezeigte Popup erscheint, wählen Sie die YesSchaltfläche aus.

  5. Wenn das unten gezeigte Fenster erscheint, wählen Sie die Repair your computerSchaltfläche.

So öffnen Sie das Mac-interne Laufwerk in GPT fdisk mit einem bootfähigen USB-Stick Windows 10 Installer

  1. Befolgen Sie die Schritte im Abschnitt „Laden der Treiber vor der Verwendung eines bootfähigen USB-Sticks Windows 10 Installer zur Reparatur Ihres Computers“.

  2. Öffnen Sie ein Eingabeaufforderungsfenster.

  3. Verwenden Sie die Ausgabe des folgenden Befehls, um den Laufwerksbuchstaben zu erhalten, der dem bootfähigen USB-Stick Windows 10 Installer zugewiesen ist.

    echo list volume | diskpart
    
  4. Verwenden Sie die Ausgabe des folgenden Befehls, um die dem internen Laufwerk zugewiesene Nummer abzurufen.

    echo list disk | diskpart
    
  5. Geben Sie den folgenden Befehl ein, um GPT fdisk auszuführen. Wenn Sie einen anderen Laufwerksbuchstaben und/oder eine andere Datenträgernummer ermittelt haben, nehmen Sie die entsprechenden Ersetzungen vor.

    c:\gdisk64 0:
    

So verwenden Sie GPT fdisk zum Deaktivieren der Hybridpartitionierung.

Wenn Sie Windows über UEFI booten, möchten Sie einen vollständig schützenden MBR.

Die Einträge zu gdisk64sind unten angegeben. Geben Sie in der Reihenfolge ein, die in der ersten Spalte angezeigt wird.

Einträge Kommentare
x Betreten Sie das Expertenmenü
p Zeigen Sie eine grundlegende Zusammenfassung der GPT-Partition an
n Erstellen Sie einen neuen schützenden MBR
o Zeigen Sie schützende MBR-Daten an
w Schreiben Sie den MBR auf die Festplatte und beenden Sie ihn
y Bestätigen Sie das Schreiben und Beenden

So verwenden Sie GPT fdisk zum Aktivieren der hybriden Partitionierung.

Wenn Sie Windows mit einem Legacy-BIOS booten, möchten Sie die hybride Partitionierung verwenden.

Ich nehme an, Ihre Ausgabe des Befehls diskutil list disk0würde der unten gezeigten ähneln. Wenn Ihre Ausgabe nicht mit den Werten übereinstimmt, die in einer Spalte außer der SIZESpalte angezeigt werden, sollten Sie Ihre Frage aktualisieren und einen Kommentar posten, bevor Sie fortfahren.

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                 Apple_APFS Container disk1         147.7 GB   disk0s2
   3:       Microsoft Basic Data BOOTCAMP                102.3 GB   disk0s3
   4:           Windows Recovery                         513.8 MB   disk0s4

Die Einträge zu gdisk64sind unten angegeben. Geben Sie in der Reihenfolge ein, die in der ersten Spalte angezeigt wird.

Einträge Kommentare
r Rufen Sie das Wiederherstellungs- und Transformationsmenü auf
p Zeigen Sie eine grundlegende Zusammenfassung der GPT-Partition an
h Erstellen Sie einen Hybrid-MBR
2 3 4 Partitionen aus GPT, die dem MBR hinzugefügt werden sollen
y Bestätigen Sie, dass die EFI GPT (0xEE)-Partition zuerst im MBR platziert wird
ff Hex-Code für die zweite Partition im MBR
n Lehnen Sie das Setzen des bootfähigen Flags ab
07 Hex-Code für dritte Partition im MBR†
y Bestätigen Sie das Setzen des bootfähigen Flags
27 Hex-Code für vierte Partition im MBR†
n Lehnen Sie das Setzen des bootfähigen Flags ab
o Zeigen Sie schützende MBR-Daten an
w Schreiben Sie den MBR auf die Festplatte und beenden Sie ihn
y Bestätigen Sie das Schreiben und Beenden

†Dies sollte der Standardwert sein.

Danke David, gparted hat für mich funktioniert, nachdem ich herausgefunden hatte, wie ich die Partitionen relativ zum freien Speicherplatz verschieben kann. Ich habe jetzt den freien Speicherplatz zurückgewonnen und mein MacOS aktualisiert, aber das Windows auf Bootcamp hat möglicherweise nicht mehr gebootet, weil es verschoben wurde und ich kann mit dem Befehl bootrec nicht helfen, da die in den RAM geladene Wiederherstellungssoftware aus irgendeinem Grund keine der physischen Festplatten sehen kann, gibt DISKPART's LIST DISK keine Festplatten zurück. Ich kann immer noch von MacOS aus auf die Bootcamp-Partition zugreifen und Dateien davon kopieren - sie ist da - nur der Boot, der jetzt verhext ist.
Hat Windows vor der Verwendung von gparted gebootet? Wenn Windows vor der Verwendung von gparted gestartet wurde, haben Sie dann gparted verwendet, um die Windows-Partition zu verschieben oder ihre Größe zu ändern? Meine Antwort besagte, dass Sie nur die APFS-Partition verschieben sollten.
Wie booten Sie mit der Wiederherstellungssoftware? Welche Optionen möchten Sie mit verwenden bootrec? Ich frage, weil /FixMbrund /FixBootnach einem BIOS zum Booten von Windows sind und Ihr Mac kein BIOS hat. Ihr Mac UEFI bootet Windows.
Windows hat gebootet, bevor ich gparted verwendet habe, es hat mich darauf hingewiesen, dass das Booten nach dem Verschieben möglicherweise fehlschlägt, und das hat es getan - ich habe die Windows-Partition verschoben, indem ich sie leicht geändert habe. Zum Laden der Wiederherstellungsmedien verwende ich einen USB-Stick mit einem Systemabbild.
Haben Sie die Windows-Supportsoftware auf das Flash-Laufwerk kopiert? Haben Sie die Tastenkombination Umschalt + F10 gedrückt, als Sie das Fenster erreichen, in dem Sie nach dem Produktschlüssel gefragt werden?
Nein, ich habe es nicht kopiert. Ich habe die Diskette mit dem Microsoft Bootable Media Creator für Windows erstellt. Ich kann überhaupt keine Tastenkombinationen drücken, denn sobald ich die Bootcamp-Option auf dem Startbildschirm auswähle, wird sie sofort schwarz und das System reagiert nicht mehr - die einzige Option danach ist, die Stromversorgung zu unterbrechen.
Ich habe meine Antwort bearbeitet und Anweisungen zum Erstellen des USB-Sticks und zum Booten vom USB-Stick hinzugefügt. Sehen Sie, ob diskpartIhr internes Laufwerk angezeigt wird.
Danke für die erweiterte Anleitung! Ich habe wie darin beschrieben erfolgreich eine Windows-Bootdiskette erstellt und jetzt sieht DISKPART die AppleSSD, aber es sieht keine der dort vorhandenen Partitionen: nur zwei seltsame Volumes - eines hat 14 GB und das andere 61 MB. Natürlich funktionieren alle 'bootrec'-Befehle nicht, da der Bootsektor der Festplatte anscheinend immer noch nicht sichtbar ist.
Geben Sie während der Ausführung diskpartden Befehl ein list disk. In der Ausgabe gibt es eine Spalte mit der Bezeichnung Gpt. Hat die AppleSSD ein *Zeichen in dieser Spalte?
bootrecWelche Optionen verwenden Sie, wenn Sie den Befehl eingeben ?
Nein, es hat kein * unter GPT. Ich habe versucht, /fixmbr, /fixboot und /rebuildbcd zu verwenden - sie scheinen jedoch alle nichts anzuvisieren.
Ihr internes Laufwerk ist falsch hybrid partitioniert. Sie können gdisk64.exedies mit beheben. Ich glaube, Ihr 2016er Mac hat kein BIOS und sollte daher nicht hybrid partitioniert werden. Da ich nie Zugriff auf Ihr Mac-Modell hatte, könnte ich mich irren. Ich habe meine Antwort aktualisiert, um das Hinzufügen und Ausführen gdisk64.exevon Ihrem USB-Stick aufzunehmen. Ich habe meiner Antwort auch Anweisungen zum Ein- und Ausschalten der hybriden Partitionierung hinzugefügt.
Informationen zu meinem Mac-Modell finden Sie hier . Die Ausgabe des diskutil list disk0Befehls entspricht genau der Beschreibung in Ihrem Antwortabschnitt How to Use GPT fdisk to Turn On Hybrid Partitioning . Wenn ich versuche zu starten, gdisk64.exeerhalte ich die folgende Fehlermeldung: Problem opening \\. \physicaldrive for reading!- Ich habe überprüft, ob der USB-Stick tatsächlich c ist:
Die einzige Möglichkeit, wie ich die Nachricht, die Sie erhalten haben, replizieren kann, gdisk64.exebesteht darin, den Befehl einzugeben c:\gdisk :. Mit anderen Worten, ich muss die dem internen Laufwerk zugewiesene Nummer weglassen.
Nochmals vielen Dank für Ihren Beitrag und Ihre Zeit! Ich weiß nicht wirklich, was beim ersten Mal schief gelaufen ist, aber nach einem erneuten Versuch funktionierte der ursprüngliche Befehl und ich konnte gdisk64 starten. Wie Sie sagten, führten meine fehlerhaften Aktionen zum Verschieben der Windows-Partition selbst dazu, dass sie in irgendeiner Weise überschrieben wurde, wie die Ausgabe sagt - ich habe die ursprüngliche Frage bearbeitet. Abschnitt Update 2 hat jetzt die Ausgabe von gdisk64 - Ich habe versucht, nach der Warnmeldung einen Blick darauf zu werfen, aber alles, was es sehen kann, ist der USB-Stick und nicht der MBR. Jetzt frage ich mich, wie ich vorgehen soll - hybride Partitionierung ein- oder ausschalten, wie Sie es beschrieben haben?
Basierend auf Ihrem Update gehe ich davon aus, dass Sie c:\gdisk64 0:die MBR-Partitionstabelle vom 32-GB-USB-Stick gelesen haben. Wenn ja, würde ich davon ausgehen, dass c:\gdisk64 1:die MBR-Partitionstabelle und die GUID-Partitionstabelle (GPT) vom internen Laufwerk gelesen werden.
Eigentlich habe ich :0 statt 0: eingegeben und das war der Grund - ich bin eine ganze Menge Dumdum, es scheint :D Nachdem ich es richtig gemacht habe 1: und dann sofort einen schützenden MBR wie beschrieben in meinen Laptop geschrieben How to Use GPT fdisk to Turn Off Hybrid Partitioninghabe in Windows gebootet, also ist jetzt kein freier Speicherplatz mehr vorhanden, beide Betriebssysteme funktionieren einwandfrei und es gingen dabei keine Daten verloren. Ein RIESIGES Dankeschön von mir an Sie, David Anderson, dass Sie mich buchstäblich durch dieses Babysitten haben :) Und auch an diese Website - ich hoffe, sie ist nicht zu sehr ein Duplikat und hilft jemandem in der Zukunft. Das ist jetzt vollständig gelöst.