Utwórz nową partycję w nieprzydzielonym miejscu za pomocą diskutil

14

Usunąłem pierwszą partycję na zewnętrznym dysku HD, tak że na początku partycji ma teraz 100 GB wolnego miejsca. Chciałbym odzyskać to miejsce, ale Narzędzie dyskowe nie pozwala mi utworzyć tam nowej partycji (po prostu nic nie robi po kliknięciu przycisku „Zastosuj”). Czy istnieje sposób, aby to osiągnąć diskutil? Znalazłem tylko sposoby zmiany (lub wymazywania, podziału itp.) Istniejących partycji, np. Wpisując disk2s2 jako identyfikator urządzenia, ale wolne miejsce nie ma takiego identyfikatora urządzenia.

Wyjścia:

$ 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
źródło
1
Na terminalu, można proszę uruchomić te komendy i dodać wyjście na pytanie: diskutil list disk2, sudo gpt -r show disk2, sudo fdisk /dev/disk2i sudo pdisk --list /dev/disk2? Nie jest jasne, dlaczego Narzędzie dyskowe nie działa, być może występuje problem z jedną z tabel partycji. Czy próbowałeś również uruchomić „naprawę” zarówno na całym dysku twardym, jak i na partycji?
pmdj
Ta lista pokazuje wszystkie dane, o które prosiłeś: gist.github.com/211c2bd5bc00a2f87b4c
MrMage
Czy można uruchomić z zewnętrznego HD? Jeśli tak, mam odpowiedź.
duci9y
Nie próbowałem, ale tak myślę (przynajmniej działało w przeszłości).
MrMage

Odpowiedzi:

19

(Przed kontynuowaniem upewnij się, że dysk jest nadal dyskiem 2, masz kopie zapasowe danych itp. - To powiedziawszy, zmiany tutaj nie są szczególnie niebezpieczne. Przeczytaj całą instrukcję przed zrobieniem czegokolwiek, aby upewnić się, że rozumiesz wszystko kroki.)

OK, tabele partycji wyglądają dobrze (poprawny GPT i prawidłowy MBR ochronny), więc nie wiem, dlaczego Narzędzie dyskowe zawiedzie Cię w tym przypadku, ale powinieneś być w stanie utworzyć partycję w pustym miejscu za pomocą gptpolecenia -line narzędzie. Twój GPT wygląda następująco:

       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

Wolne miejsce jest oznaczone tym wierszem (liczby to sektory 512-bajtowe, więc prawie 100 GB wolnego miejsca:

      409640   195575768         

Apple wymaga 128 MB (262144 sektorów) wolnego miejsca po partycji, więc nowa partycja może mieć 195575768-262144 = 195313624 sektorów. Odmontuj wszystkie woluminy na dysku, używając:

diskutil unmountDisk disk2

Następnie to polecenie utworzy partycję HFS + w wolnym miejscu:

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

To tworzy tylko partycję, a nie system plików. Aby sprawdzić, czy poszło dobrze, powinieneś teraz zobaczyć disk2s8jeśli biegniesz diskutil list disk2. Jeśli tak jest w rzeczywistości, możesz sformatować partycję w następujący sposób:

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

Jeśli disk2s8 nie pojawił się, musisz ponownie uruchomić komputer przed sformatowaniem. Zamiast uruchamiania newfs_hfspowinieneś być w stanie usunąć partycję w Narzędziu dyskowym.

Narzędzie gpt nie zmienia kolejności numerów partycji, ale nie powinno to stanowić problemu w praktyce. Jeśli dokonasz dalszych zmian za pomocą narzędzia dyskowego, prawdopodobnie i tak naprawisz kolejność.

pmdj
źródło
Wygląda na to, że zadziałało. Ale Narzędzie dyskowe pokazuje teraz zawalony układ partycji: i50.tinypic.com/2qxc3r6.jpg (wolne miejsce u góry rozszerza się nieco bardziej - widok partycji ma teraz paski przewijania).
MrMage
Hmm, może to być spowodowane numeracją i być może tym, co powoduje inny błąd Narzędzia dyskowego. Realistycznie, jeśli wszystko inne działa, możesz po prostu kontynuować w tym stanie. W przeciwnym razie możesz spróbować zmienić numerację partycji. Korzystanie ze standardu gptjest żmudne i nieco podatne na błędy / ryzykowne, ponieważ jedynym wbudowanym sposobem jest usunięcie i ponowne utworzenie każdej partycji. Mam kilka poprawek przeciwko gptdodawaniu numeracji i poleceniom zmieniania typów - mógłbym je uporządkować i opublikować, jeśli nie masz nic przeciwko przebudowie gptze źródła w XCode ...
pmdj
Nie mam problemów gtpz budowaniem ze źródła, ale czy kod jest dobrze przetestowany? Nie chcę spieprzyć tabeli partycji. Czy istnieje również sposób na wykonanie kopii zapasowej?
MrMage
Aby dodać partycję, należy dodać gpt.
pduey
1
@AeroCross Ich zasady zostały opublikowane tutaj, developer.apple.com/library/mac/technotes/tn2166/_index.html#//… w praktyce jest używany jako partycja rozruchowa, jeśli używasz programowego RAID lub Core Storage (Fusion Drive i / lub File Vault) lub podobnego oprogramowania.
pmdj