Crea una nuova partizione nello spazio non allocato con diskutil


14

Ho eliminato la prima partizione sul mio HD esterno in modo che ora abbia 100 GB di spazio libero all'inizio della partizione. Mi piacerebbe recuperare quello spazio, ma Utility Disco non mi consente di creare una nuova partizione lì (non fa nulla quando faccio clic su "Applica"). C'è un modo per farlo con diskutil? Ho trovato solo modi per cambiare (o cancellare, o dividere ecc.) Partizioni esistenti inserendo ad esempio disk2s2 come ID dispositivo, ma lo spazio libero non ha tale ID dispositivo.

Uscite:

$ 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'

1
Sul terminale, ti invitiamo a eseguire questi comandi e aggiungere l'uscita alla tua domanda: diskutil list disk2, sudo gpt -r show disk2, sudo fdisk /dev/disk2e sudo pdisk --list /dev/disk2? Non è chiaro perché Utility Disco non funzioni, forse c'è un problema con (una) delle tabelle delle partizioni. Inoltre, hai provato a eseguire una "riparazione" sia sull'intero disco rigido sia sulla partizione su di esso?
pmdj,

Questo Gist mostra tutti i dati richiesti: gist.github.com/211c2bd5bc00a2f87b4c
MrMage

È possibile eseguire l'avvio da un HD esterno? Se sì, ho una risposta.
duci9y,

Non ci ho provato, ma penso di sì (almeno ha funzionato in passato).
MrMage,

Risposte:


18

(Prima di procedere, assicurati che il disco in questione sia ancora disk2, che tu abbia backup dei tuoi dati, ecc. - Detto questo, le modifiche qui non sono particolarmente pericolose. Leggi le istruzioni complete prima di fare qualsiasi cosa per assicurarti di capire tutto i passi.)

OK, le tue tabelle delle partizioni sembrano a posto (un GPT valido e un MBR protettivo corretto), quindi non so perché Utility Disco ti stia fallendo in questo caso, ma dovresti essere in grado di creare una partizione nello spazio vuoto usando il gptcomando utilità di linea. Il tuo GPT è simile al seguente:

       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

Lo spazio libero è indicato da questa linea (i numeri sono settori da 512 byte, quindi poco meno di 100 GB di spazio libero:

      409640   195575768         

Apple richiede 128 MiB (262144 settori) di spazio libero a seguito di una partizione, quindi la nuova partizione può essere 195575768-262144 = 195313624 settori. Smonta tutti i volumi sul disco usando:

diskutil unmountDisk disk2

Quindi, questo comando creerà una partizione HFS + nello spazio libero:

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

Ciò crea solo la partizione, non il file system. Per verificare che sia andato bene, ora dovresti vedere a disk2s8se corri diskutil list disk2. In tal caso, puoi formattare la partizione in questo modo:

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

Se disk2s8 non è apparso, dovrai riavviare prima di formattare. Invece di eseguire newfs_hfs, dovresti anche essere in grado di cancellare la partizione in Utility Disco.

L'utility gpt non riordina i numeri di partizione, ma questo non dovrebbe essere un problema in pratica. Se si apportano ulteriori modifiche con l'utilità del disco, probabilmente risolverà comunque l'ordinamento.


Bene, questo sembra aver funzionato. Ma Utility Disco ora mostra un layout di partizione incasinato: i50.tinypic.com/2qxc3r6.jpg (lo spazio libero in alto si espande ulteriormente - la vista della partizione ora ha barre di scorrimento).
MrMage,

Hmm, ciò potrebbe essere causato dalla numerazione e probabilmente da qualunque cosa stia causando l'altro bug di Utility Disco in primo luogo. Realisticamente, se tutto il resto funziona, puoi semplicemente andare avanti in questo stato. Altrimenti, potresti provare a rinumerare le partizioni. Usando gptquesto standard è noioso e in qualche modo soggetto a errori / rischioso, poiché l'unico modo incorporato è quello di eliminare e ricreare ogni partizione. In realtà ho alcune patch contro quelle gptche aggiungono i comandi di rinumerazione e cambio di tipo - potrei riordinare quelli e pubblicarli se saresti a posto con la ricostruzione gptdal sorgente in XCode ...
pmdj

Non ho problemi a costruire gtpdal sorgente, ma il codice è ben testato? Non voglio rovinare la mia tabella delle partizioni. Inoltre, c'è un modo per eseguire il backup?
MrMage,

Per aggiungere la partizione, è gpt add.
pduey,

1
@AeroCross La loro politica è pubblicata qui, developer.apple.com/library/mac/technotes/tn2166/_index.html#//… in pratica viene utilizzata come partizione di avvio se si utilizza il software RAID o Core Storage (Fusion Drive e / o File Vault) o software simile.
pmdj
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.