Ich versuche, die Größe einer Partition zu ändern, die für meine Anforderungen zu klein ist. Hier ist die Ausgabe von diskutil list
:
~> diskutil list
/dev/disk0 (internal):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme 500.3 GB disk0
1: EFI EFI 314.6 MB disk0s1
2: Apple_APFS Container disk1 400.0 GB disk0s2
3: Apple_APFS Container disk2 100.0 GB disk0s3
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +400.0 GB disk1
Physical Store disk0s2
1: APFS Volume Macintosh HD 234.4 GB disk1s1
2: APFS Volume Preboot 23.6 MB disk1s2
3: APFS Volume Recovery 518.1 MB disk1s3
4: APFS Volume VM 6.4 GB disk1s4
/dev/disk2 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +100.0 GB disk2
Physical Store disk0s3
1: APFS Volume Mojave Beta 90.2 GB disk2s1
2: APFS Volume Preboot 46.3 MB disk2s2
3: APFS Volume Recovery 512.3 MB disk2s3
4: APFS Volume VM 3.2 GB disk2s4
Ich habe mir diesen MacObserver-Beitrag angesehen und Folgendes versucht:
sudo diskutil apfs resizeContainer disk0s3 150G
Ich habe auch einen Blick auf diesen Beitrag geworfen, auch bezüglich: diskutil
Dokumentation.
Die Konsolenausgabe sieht wie folgt aus:
APFS-Vorgang gestartet. Ausrichten des Vergrößerungsdeltas auf 49.999.994.880 Bytes und Anstreben einer neuen physischen Speichergröße von 149.999.996.928 Bytes. Die maximale Größe für den physischen Zielspeicher dieses APFS-Containers wurde auf 100.000.002.048 Bytes festgelegt. Fehler: -69519: Der Zieldatenträger ist für diesen Vorgang zu klein , oder es ist eine Lücke in Ihrer Partitionszuordnung erforderlich, die fehlt oder zu klein ist, was häufig durch den Versuch verursacht wird, eine Partition über den Anfang einer anderen Partition oder über das Ende des nutzbaren Speicherplatzes der Partitionszuordnung hinaus zu vergrößern
Ich weiß, dass ich 50 Gigs auf dem anderen Laufwerk herumliegen habe, aber wie kann ich Macintosh HD
es vom zurückfordern und dem Mojave Beta
Laufwerk geben? Vielen Dank fürs Lesen. Ich freue mich über Ihre Vorschläge.
Aktualisieren
Nur für S und G habe ich versucht, das große Laufwerk kleiner zu machen und zu sehen, was passiert .
Aktueller Status:
Shrinking APFS Physical Store disk0s2 from 399,963,168,768 to 349,999,996,928 bytes
Shrinking APFS data structures
[ - 0%..10%..20%..30%..40%............................... ] 45.0%
Aktualisierung 2
Ich habe meine Festplatte nicht gesprengt, aber es hat nicht funktioniert ... nun, es hat irgendwie funktioniert ... so sieht es diskutil list
jetzt nach diesem Versuch aus:
~> diskutil list
/dev/disk0 (internal):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme 500.3 GB disk0
1: EFI EFI 314.6 MB disk0s1
2: Apple_APFS Container disk1 350.0 GB disk0s2
3: Apple_APFS Container disk2 100.0 GB disk0s3
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +350.0 GB disk1
Physical Store disk0s2
1: APFS Volume Macintosh HD 234.4 GB disk1s1
2: APFS Volume Preboot 23.6 MB disk1s2
3: APFS Volume Recovery 518.1 MB disk1s3
4: APFS Volume VM 6.4 GB disk1s4
/dev/disk2 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +100.0 GB disk2
Physical Store disk0s3
1: APFS Volume Mojave Beta 90.3 GB disk2s1
2: APFS Volume Preboot 46.3 MB disk2s2
3: APFS Volume Recovery 512.3 MB disk2s3
4: APFS Volume VM 3.2 GB disk2s4
Also die große verkleinern und dann versuchen, die kleine Partition größer zu machen. Keine verdammte Ahnung, wo die anderen 50 Gigs geblieben sind, aber es ist irgendwo da drin. Ich habe mir die Festplatten-Dienstprogramm-App angesehen und sie zeigt eine 350-GB-Partition, eine 100-GB-Partition und 50 GB freien Speicherplatz.
Wenn Apple dies überwacht, machen Sie es bitte einfacher, die Größe von Partitionen zu ändern. Dies ist eine riesige PITA und es sollte nicht sein.
Apple bietet keine Möglichkeit, das zu tun, was Sie tun möchten. Es gibt Tools von Drittanbietern, die eine Partition verschieben können, aber als ich das letzte Mal nachgesehen habe, funktionieren sie nicht mit APFS-Containerpartitionen.
Partitionen werden zusammenhängend auf einem Laufwerk gespeichert. Das bedeutet, dass Sie einer Partition nicht einfach freien Speicherplatz hinzufügen können. Der freie Speicherplatz muss direkt unterhalb der Partition vorhanden sein. Lassen Sie mich Ihnen ein Beispiel zeigen, das Ihrer Situation ähnelt.
Zuerst ist die Ausgabe des Befehls diskutil list disk1
. Das folgende Laufwerk ist ein Sparse-Disk-Image. Ich habe das Bild erstellt, um meine Antwort zu veranschaulichen. Das Image ist ziemlich nahe an Ihrer partitioniert disk0
.
Marlin:driveinfo davidanderson$ diskutil list disk1
/dev/disk1 (disk image):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme +500.3 GB disk1
1: EFI EFI 314.6 MB disk1s1
2: Apple_APFS Container disk3 400.0 GB disk1s2
3: Apple_APFS Container disk4 100.0 GB disk1s3
Hier ist die Ausgabe von sudo gpt -r show /dev/disk1
. Dieser Befehl zeigt den Wertespeicher in der GUID-Partitionstabelle (GPT) an. In diesem Fall sind die Einheiten Blöcke von 512 Bytes.
Marlin:driveinfo davidanderson$ gpt -r show /dev/disk1
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 6
40 614448 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
614488 781250000 2 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
781864488 195283952 3 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
977148440 5
977148445 32 Sec GPT table
977148477 1 Sec GPT header
Da disk0
es sich um Ihr Startlaufwerk handelt, können Sie den gpt
Befehl nicht verwenden, ohne dass der sudo
Systemintegritätsschutz (SIP) deaktiviert ist. Eine Alternative zum gpt
Befehl ist ein Drittanbieter-Tool namens driveinfo . Wenn Sie dieses Tool verwenden, müssen Sie SIP nicht deaktivieren oder eine sudo
. Unten ist die Ausgabe dieses Befehls. Hier sind die Einheiten in Byte.
Marlin:driveinfo davidanderson$ ./driveinfo -rd disk1
Code Size Type Identifier Mounted Name
---- --------------- -------------- ---------- ------- ----
512 PMBR
512 Pri GPT header
16,384 Pri GPT table
3,072 Free Space
314,597,376 EFI disk1s1 No EFI
400,000,000,000 Apple_APFS disk1s2 No
99,985,383,424 Apple_APFS disk1s3 No
2,560 Free Space
16,384 Sec GPT table
512 Sec GPT header
Als Nächstes gebe ich den folgenden Befehl ein, um 50 GB freien Speicherplatz zu erstellen. Dies ist ähnlich wie das, was Sie getan haben.
sudo diskutil apfs resizeContainer disk0s2 350G
Die Ergebnisse sind unten gezeigt.
Marlin:driveinfo davidanderson$ diskutil list disk1
/dev/disk1 (disk image):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme +500.3 GB disk1
1: EFI EFI 314.6 MB disk1s1
2: Apple_APFS Container disk3 350.0 GB disk1s2
3: Apple_APFS Container disk4 100.0 GB disk1s3
Marlin:driveinfo davidanderson$ sudo gpt -r show disk1
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 6
40 614448 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
614488 683593744 2 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
684208232 97656256
781864488 195283952 3 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
977148440 5
977148445 32 Sec GPT table
977148477 1 Sec GPT header
Marlin:driveinfo davidanderson$ ./driveinfo -rd disk1
Code Size Type Identifier Mounted Name
---- --------------- -------------- ---------- ------- ----
512 PMBR
512 Pri GPT header
16,384 Pri GPT table
3,072 Free Space
314,597,376 EFI disk1s1 No EFI
349,999,996,928 Apple_APFS disk1s2 No
50,000,003,072 Free Space
99,985,383,424 Apple_APFS disk1s3 No
2,560 Free Space
16,384 Sec GPT table
512 Sec GPT header
Die 50 GB freier Speicherplatz wurden unmittelbar danach erstellt
disk1s2
. Um diesen freien Platz hinzuzufügendisk1s3
, müsste der Platz unmittelbar danach vorkommendisk1s3
.
Um also die 50 GB freien Speicherplatz hinzuzufügen, disk0s3
müssten Sie diese Partition zuerst um 50 GB nach oben verschieben. Ich glaube nicht, dass es derzeit Software gibt, die einen APFS-Container verschieben kann. Daher können Sie keinen Speicherplatz von einem APFS-Container in einen anderen APFS-Container verschieben.
Alternative Lösungen könnten sein:
disk0s3
in disk0s2
. Siehe die Antwort von Geoff Nixon für eine solche Möglichkeit, den Inhalt zu klonen.disk0s2
und verwenden Sie dann den Migrationsassistenten, um wichtige Daten von zu kopieren disk0s3
. Ich sollte Sie warnen, dass ich nicht weiß, ob der Migrationsassistent mit zwei APFS-Containerpartitionen auf demselben Laufwerk funktioniert.disk0s3
mithilfe von Time Machine oder auf andere Weise auf einem anderen Laufwerk. Sie könnten dann versuchen, die Datei wiederherzustellendisk0s2
Wenn Sie eine der oben genannten Lösungen implementieren, können Sie den ursprünglich von beiden Partitionen belegten Speicherplatz entfernen disk0s3
und in der Größe ändern disk0s2
.
Häufig muss ein Benutzer die Partitionierung eines Laufwerks kennen. Insbesondere wo der freie Platz ist. Der diskutil list disk0
Befehl zeigt die Partitionen in aufsteigender Reihenfolge und die Größe jeder Partition an. Dieser Befehl zeigt jedoch keinen freien Speicherplatz an. Das Festplatten-Dienstprogramm zeigt gelegentlich freien Speicherplatz an, aber der Wert ist oft falsch und zeigt nicht, wo sich der freie Speicherplatz in Bezug auf die anderen Partitionen befindet
Wo wird also der freie Speicherplatz angezeigt? Hier sind einige Möglichkeiten, um festzustellen, wo sich der freie Speicherplatz befindet.
sudo gpt -r show /dev/disk0
Befehl zeigt die logischen Sektorblöcke an, die von jeder Partition verwendet werden. Der Befehl zeigt auch den freien Speicherplatz zwischen den einzelnen Partitionen in logischen Sektorblockeinheiten an. In den Tagen von OS X konnten Sie diesen Befehl auf den Startlaufwerken ausführen. Ab macOS muss dazu der Systemintegritätsschutz (SIP) deaktiviert werden.diskutil info -plist disk0s#
der Partitionsnummer abzurufen . #
Sie müssen den Befehl für jede Partition auf einem Laufwerk wiederholen. Als Nächstes können Sie eine Tabelle kompilieren, die der Ausgabe des gpt -r show /dev/disk0
Befehls ähnelt. Grundsätzlich ist freier Speicherplatz jeder Speicherplatz, der keiner Partition, dem Protected Master Boot Record (PMBR) und den GUID-Partitionstabellen (GPT) zugeordnet ist.Schreiben Sie ein BASH-Skript, das Weg Nummer 2 automatisieren würde. Ein kostenloses Skript kann von dieser Seite heruntergeladen werden . Angenommen, Ihre Downloads gelangen in den Standardordner Downloads
, können Sie den freien Speicherplatz erhalten, indem Sie den unten gezeigten Befehl eingeben. Hinweis: Sie müssen SIP nicht eingeben sudo
oder deaktivieren.
~/Downloads/driveinfo-1.0.1/driveinfo -r disk0
Es ist nicht normal, zwei APFS-Containerpartitionen auf demselben Laufwerk zu haben. Dadurch wird einer der Hauptgründe für die Schaffung des APFS zunichte gemacht. Wenn Sie zwei verschiedene APFS-Volumes benötigen, sollten Sie jedes Volume in derselben APFS-Containerpartition erstellen. Dies gilt auch, wenn Sie zwei oder mehr verschiedene Versionen von High Sierra und/oder Mojave installiert haben möchten.
Wenn Sie ein APFS-Volume entfernen möchten, wird der freie Speicherplatz automatisch an den APFS-Container zurückgegeben. Sie sollten keinen Befehl eingeben müssen sudo diskutil apfs resizeContainer disk0s# 0
. Wenn Sie ein Volume löschen, das eine Version von macOS enthält, müssen einige zusätzliche Aufräumarbeiten durchgeführt werden. Die notwendigen Bereinigungsschritte sind in der akzeptierten Antwort auf die Frage: macOS aus einem APFS-Container entfernen?
Ich verfolge nicht viel von der vorherigen Diskussion. Es sieht so aus, als hätten Sie genug Platz, um sich zu konsolidieren.
Holen Sie sich Ihre 50G auf der ersten physischen Partition zurück.
diskutil ap resizeContainer disk0s2 0
Stellen Sie die logische Partition, die Sie behalten möchten, aus dem zweiten APFS-Container in einer zusätzlichen logischen Partition im ersten Container wieder her.
asr restore --source /dev/disk2s1 --target /dev/disk1
.
Dies kann einige Zeit dauern, wenn eine Defragmentierung erforderlich ist. (Wenn Ihnen das (während der Inversion) Probleme bereitet, müssen Sie möglicherweisediskutil ap deleteVolume
die Preboot-, VM- und Wiederherstellungspartitionen auf dem zweiten Container nukleieren ( ). Ich gehe davon aus, dass das für Sie in Ordnung ist, und ich habe nicht wirklich gesehen, dass dies ein Problem ist für einige Zeit.)
Hängen Sie Ihre neue logische Partition „Mojave Beta“ ein, die Sie jetzt auf dem ersten Container erstellen . Stellen Sie sicher, dass es richtig aussieht.
Entfernen Sie den zweiten APFS-Container:
diskutil ap deleteContainer disk0s3
; Entfernen Sie dann die physische Partition vollständig: diskutil eraseVolume free free disk0s3
.
Und schließlich fordern Sie den Rest der Festplatte auf dem ersten (einzigen) APFS-Container noch einmal zurück:
diskutil ap resizeContainer disk0s2 0
.
NEIN? Übersehe ich etwas?
systemsetup -setstartupdisk
um die "Rollen" des Volumes zu wechseln (es kann ein Hit-and-Miss sein, wenn Sie das Startvolume über die Systemeinstellungen ändern). Siehe eclecticlight.co/2018/08/30/…Zu Ihrer Information, Sie müssen den Container angeben (in Ihrem Fall "disk2", also sollte der Befehl lauten:
Um beispielsweise die Größe der Mojave Beta-Festplatte (Festplatte2) zu erhöhen:
sudo diskutil apfs resizeContainer disk2 150G
Nicht sicher, ob Sie ein weiteres Volume verkleinern müssen oder nicht.
Auch Ihre Time Capsule-Einstellungen sollten überprüft werden, um sicherzustellen, dass Sie nicht zu viel Verlauf haben (um den Speicherplatz zu begrenzen).
Adrian
sudo diskutil apfs resizeContainer disk0s3 0
, aber es wird angezeigt, dass nicht genügend Speicherplatz vorhanden ist. Ich denke, ich werde die ganze Fahrt atomisieren und von vorne anfangen, wenn ich es heute Abend nicht herausfinden kann :)David Anderson