Erstellen Sie mit diskutil eine neue Partition in nicht zugewiesenem Speicherplatz

14

Ich habe die erste Partition auf meiner externen Festplatte gelöscht, sodass am Anfang der Partition 100 GB freier Speicherplatz vorhanden sind. Ich möchte diesen Speicherplatz zurückfordern, aber mit dem Festplatten-Dienstprogramm kann ich dort keine neue Partition erstellen (nur nichts, wenn ich auf "Übernehmen" klicke). Gibt es eine Möglichkeit, dies zu erreichen diskutil? Ich habe nur Möglichkeiten gefunden, vorhandene Partitionen zu ändern (oder zu löschen, zu teilen usw.), indem ich z. B. disk2s2 als Geräte-ID eingebe, aber der freie Speicherplatz hat keine solche Geräte-ID.

Ausgänge:

$ diskutil list disk2
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.5 TB     disk2
   1:                        EFI                         209.7 MB   disk2s1
   2:                  Apple_HFS Shared                  199.3 GB   disk2s2
   3:                 Apple_Boot Recovery HD             784.2 MB   disk2s3
   4:          Apple_CoreStorage                         500.0 GB   disk2s4
   5:                 Apple_Boot Boot OS X               134.2 MB   disk2s5
   6:          Apple_CoreStorage                         699.6 GB   disk2s6
   7:                 Apple_Boot Boot OS X               134.2 MB   disk2s7
$ sudo gpt -r show disk2
Password:
       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2          32         Pri GPT table
          34           6         
          40      409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
      409640   195575768         
   195985408   389353696      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
   585339104     1531680      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
   586870784   976562504      4  GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
  1563433288      262144      5  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  1563695432  1366319552      6  GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
  2930014984      262144      7  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  2930277128           7         
  2930277135          32         Sec GPT table
  2930277167           1         Sec GPT header
$ sudo fdisk /dev/disk2
Disk: /dev/disk2    geometry: -5415437/4/63 [-1364690128 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE 1023 254  63 - 1023 254  63 [         1 - -1364690129] <Unknown ID>
 2: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
$ sudo pdisk --list /dev/disk2
pdisk: No valid block 1 on '/dev/disk2'
MrMage
quelle
1
Auf dem Terminal, können Sie bitte diese Befehle und fügen Sie die Ausgabe auf Ihre Frage führen: diskutil list disk2, sudo gpt -r show disk2, sudo fdisk /dev/disk2und sudo pdisk --list /dev/disk2? Es ist nicht klar, warum das Festplatten-Dienstprogramm nicht funktioniert. Möglicherweise liegt ein Problem mit einer der Partitionstabellen vor. Haben Sie auch versucht, eine "Reparatur" sowohl auf der gesamten Festplatte als auch auf der Partition auszuführen?
13.
Diese Übersicht zeigt alle Daten, die Sie angefordert haben: gist.github.com/211c2bd5bc00a2f87b4c
MrMage
Können Sie von einer externen Festplatte booten? Wenn ja, habe ich eine Antwort.
Duci9y
Ich habe es nicht versucht, aber ich denke schon (zumindest hat es in der Vergangenheit funktioniert).
MrMage

Antworten:

18

(Bevor Sie fortfahren, vergewissern Sie sich, dass es sich bei der fraglichen Festplatte immer noch um Festplatte 2 handelt, Sie Sicherungskopien Ihrer Daten haben usw. - die hier vorgenommenen Änderungen sind jedoch nicht besonders gefährlich. Lesen Sie die gesamten Anweisungen durch, bevor Sie etwas unternehmen, um sicherzustellen, dass Sie alle verstehen die Schritte.)

OK, Ihre Partitionstabellen sehen gut aus (ein gültiges GPT und ein korrekter MBR-Schutz), daher weiß ich nicht, warum das Festplatten-Dienstprogramm in diesem Fall Fehler verursacht. Sie sollten jedoch in der Lage sein, mit dem gptBefehl eine Partition im leeren Bereich zu erstellen -line Dienstprogramm. Dein GPT sieht so aus:

       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2          32         Pri GPT table
          34           6         
          40      409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
      409640   195575768         
   195985408   389353696      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
   585339104     1531680      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
   586870784   976562504      4  GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
  1563433288      262144      5  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  1563695432  1366319552      6  GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
  2930014984      262144      7  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  2930277128           7         
  2930277135          32         Sec GPT table
  2930277167           1         Sec GPT header

Der freie Speicherplatz wird durch diese Zeile angezeigt (die Zahlen sind 512-Byte-Sektoren, also knapp 100 GB freier Speicherplatz:

      409640   195575768         

Apple benötigt nach einer Partition 128 MB (262144 Sektoren) freien Speicherplatz. Die neue Partition kann also aus 195575768-262144 = 195313624 Sektoren bestehen. Hängen Sie alle Volumes auf der Festplatte aus, indem Sie Folgendes verwenden:

diskutil unmountDisk disk2

Dieser Befehl erstellt dann eine HFS + -Partition im freien Speicherplatz:

sudo gpt add -b 409640 -s 195313624 -t hfs disk2

Das erstellt nur die Partition, nicht das Dateisystem. Um zu überprüfen, ob es gut lief, sollten Sie jetzt ein sehen, disk2s8wenn Sie rennen diskutil list disk2. In diesem Fall können Sie die Partition folgendermaßen formatieren:

sudo newfs_hfs -v "Volume Name" -J /dev/rdisk2s8

Wenn disk2s8 nicht angezeigt wird, müssen Sie vor dem Formatieren einen Neustart durchführen. Anstatt ausgeführt zu werden newfs_hfs, sollten Sie auch die Partition im Festplatten-Dienstprogramm löschen können.

Das Dienstprogramm gpt ordnet die Partitionsnummern nicht neu, dies sollte jedoch in der Praxis kein Problem darstellen. Wenn Sie mit dem Festplatten-Dienstprogramm weitere Änderungen vornehmen, wird die Reihenfolge wahrscheinlich trotzdem korrigiert.

pmdj
quelle
Nun, das scheint geklappt zu haben. Das Festplatten-Dienstprogramm zeigt jetzt ein fehlerhaftes Partitionslayout an: i50.tinypic.com/2qxc3r6.jpg (der freie Speicherplatz oben wird etwas erweitert - die Partitionsansicht verfügt jetzt über Bildlaufleisten).
MrMage
Hmm, das könnte an der Nummerierung liegen und möglicherweise an allem, was überhaupt den anderen Disk Utility-Fehler verursacht. Realistisch gesehen, wenn alles andere funktioniert, können Sie in diesem Zustand einfach weitermachen. Andernfalls könnten Sie versuchen, die Partitionen neu zu nummerieren. Mit Standard ist gptdies mühsam und etwas fehleranfällig / riskant, da die einzige integrierte Möglichkeit darin besteht, jede Partition zu löschen und neu zu erstellen. Ich habe tatsächlich ein paar Patches gegen gptdas Hinzufügen von Befehlen zur Umnummerierung und zum Ändern von Eingaben - ich könnte diese aufräumen und veröffentlichen, wenn Sie die gpt
Neuerstellung
Ich habe keine Probleme beim Erstellen gtpaus dem Quellcode, aber ist der Code gut getestet? Ich möchte meine Trennwand nicht vermasseln. Gibt es auch eine Möglichkeit, eine Sicherungskopie davon zu erstellen?
MrMage
Um die Partition hinzuzufügen, ist es gpt add.
pduey
1
@AeroCross Die Richtlinien werden hier veröffentlicht: developer.apple.com/library/mac/technotes/tn2166/_index.html#//…. In der Praxis wird sie als Startpartition verwendet, wenn Sie Software-RAID oder Core Storage (Fusion Drive und / oder oder File Vault) oder eine ähnliche Software.
9.