Come posso sistemare la mia tabella delle partizioni?

1

Penso di aver seriamente rovinato il mio tavolo delle partizioni.

Ho avuto una partizione BOOTCAMP, una partizione APFS macOS e una partizione exFAT. Credo di avere anche 17 GB di spazio non allocato.

Ho provato a ridurre la partizione BOOTCAMP, e penso che abbia rovinato la tabella delle partizioni. La partizione BOOTCAMP ha avuto un errore all'avvio e la partizione macOS non è stata rilevata. Da Internet Recovery, ho reinstallato El Capitan da un'unità USB su un'altra partizione, mentre cancellavo la partizione BOOTCAMP (avevo un backup abbastanza recente). Attualmente sto usando questo, aggiornato a High Sierra. Ancora non vede la vecchia partizione macOS, o il ~ 50GB di spazio non allocato (anche se credo che la maggior parte di quella potrebbe essere la partizione macOS mancante).

Inoltre, la voce di Windows continua a essere visualizzata quando si preme alt / option all'avvio, anche se errori come prima. Non viene visualizzato nel disco di avvio o altrove.

Presumo che la mia partizione BOOTCAMP sia irrecuperabile, cosa che mi sta quasi sempre bene. Tuttavia, se possibile, come posso recuperare la mia partizione macOS precedente?

E soprattutto, come posso semplicemente sistemare la tabella delle partizioni? Esp. la supposta partizione Windows / BOOTCAMP che c'è (anche se sono sicuro che non lo sia) e il ~ 50 GB mancante

Questo è ciò che Utility Disco dice che ho adesso. Extra e Common sono solo partizioni vuote per ora.

Diseguitoèriportatol'outputdelcomandosudogpt-rshowdisk0.

    
posta PiAhoy 13.03.2018 - 16:12
fonte

1 risposta

2

La tabella delle partizioni di disk0 non è affatto rovinata - tutte le modifiche apportate sono piuttosto indesiderate .

Tutte le partizioni e i volumi (EFI, Common, macOS e Extra) sono correttamente contrassegnati e un diskutil verifyVolume disk0sY probabilmente uscirà senza errori.

Una tabella delle partizioni rovinata mancherebbe l'intestazione e la tabella della partizione secondaria, oppure l'intestazione / tabella primaria e secondaria sono diverse, oppure i checksum CRC-32 dell'intestazione e le voci della tabella delle partizioni non sono validi.

La tua tabella delle partizioni ha il seguente aspetto:

    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  91672536                                                       
 92082176 168686104     2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC 
260768280    262144                                                       
261030424 177477424     3 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC 
438507848  51464720     4 GPT part - 48465300-0000-11AA-AA11-00306543ECAC 
489972568    262151                                                       
490234719        32       Sec GPT table                                   
490234751         1       Sec GPT header  

La prima partizione con una dimensione di 209,7 MB - la partizione EFI standard - è seguita da spazio su disco non allocato con una dimensione di 46,94 GB.

La seconda partizione è una partizione HFS + standard con una dimensione di 86,37 GB seguita da spazio su disco non allocato con una dimensione (standard) di 134,2 MB.

Il terzo è una partizione del contenitore APFS con una dimensione di 90,87 GB. La quarta partizione è un'altra partizione HFS + standard con una dimensione di 26,35 GB.

Un layout di partizione SSD predefinito dovrebbe essere simile a questo dopo aver installato High Sierra (APFS) e una partizione BOOTCAMP:

     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         X     2 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC 
  X+409640    262144      
  X+671784         Y     3 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
X+Y+671784       ...     ...  

Il secondo spazio disco non allocato (262144 blocchi) potrebbe essere più piccolo o più grande.

Di conseguenza dipende dalla dimensione della vecchia partizione macOS se alcune parti di esso sono state sovrascritte o meno.

  • Se X era uguale o inferiore a 91672536 (blocchi), la vecchia partizione macOS può essere ripristinata completamente.
  • Se X era maggiore di 91672536 (blocchi) e minore di 260358640 (= 91672536 + 168686104) (blocchi) parti della vecchia partizione del contenitore macOS venivano sovrascritte creando il Comune volume. La creazione di un nuovo volume vuoto di solito richiede circa 120 MB - 500 MB per scrivere alcuni metadati del file system. A seconda delle dimensioni del sistema APFS / del suo avvio / recupero, alcune parti potrebbero essere state sovrascritte.

Se il primo blocco del tuo contenitore APFS scomparso (incluso il vecchio volume di sistema APFS macOS) non è stato sovrascritto, puoi rilevare la sua precedente dimensione:

  • Avvia su un'unità esterna con macOS installato
  • Apri il Terminale e ottieni i soliti dettagli relativi al disco (qui sotto presumo che l'SSD interno abbia l'identificatore del disco disco0):

    diskutil list
    sudo gpt -r show disk0
    
  • Smonta l'SSD

    diskutil umountDisk disk0
    
  • dd / hexdump block 409640:

    sudo dd if=/dev/disk0 bs=512 skip=409640 count=1 | hexdump
    

    che produrrà qualcosa come questo (solo per esempio!):

    1+0 records in
    1+0 records out
    512 bytes transferred in 0.001917 secs (267067 bytes/sec)
    0000000 b9 e9 ff cb a4 6d fc f3 01 00 00 00 00 00 00 00
    0000010 fc da 09 00 00 00 00 00 01 00 00 80 00 00 00 00
    0000020 4e 58 53 42 00 10 00 00 29 ea 22 01 00 00 00 00
    0000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0000040 02 00 00 00 00 00 00 00 d8 36 06 fb 2f 1f 42 7a
    0000050 b2 90 f5 cc 5c 85 9f 36 13 6f 08 00 00 00 00 00
    0000060 fd da 09 00 00 00 00 00 18 01 00 00 18 6c 00 00
    0000070 21 3c 06 00 00 00 00 00 28 c9 05 00 00 00 00 00
    0000080 70 00 00 00 18 0f 00 00 6e 00 00 00 02 00 00 00
    0000090 bc 0e 00 00 5c 00 00 00 af 6b 00 00 00 00 00 00
    00000a0 69 ad 04 00 00 00 00 00 01 04 00 00 00 00 00 00
    00000b0 00 00 00 00 64 00 00 00 03 04 00 00 00 00 00 00
    00000c0 a4 6b 00 00 00 00 00 00 a6 6b 00 00 00 00 00 00
    00000d0 a6 0d 01 00 00 00 00 00 00 00 00 00 00 00 00 00
    00000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000200
    

    la terza riga è quella importante:

    ...
    0000020 4e 58 53 42 00 10 00 00 29 ea 22 01 00 00 00 00
    ...
    
    • 4e 58 53 42 : stringa magica di un contenitore APFS
    • 00 10 00 00 : dimensione blocco APFS: 4096
    • 29 ea 22 01 00 00 00 00 Dimensione contenitore APFS in blocchi APFS: 19065385 (= 152523080 blocchi 512)

      Dopo aver riordinato i byte 29 ea 22 01 00 00 00 00 > 00 00 00 00 29 ea 22 01 > 00 00 00 00 01 22 ea 29 , puoi ottenere il valore decimale qui :

    La dimensione del vecchio contenitore APFS in 512 (blocchi) è quindi dimensione del blocco APFS x dimensione del contenitore nei blocchi APFS. Nell'esempio questo è 4096/512 * 19065385 = 152523080 blocchi.

  • a seconda delle dimensioni precedenti rimuovi la 2a partizione:

    diskutil umountDisk disk0
    sudo gpt remove -i 2 /dev/disk0
    
  • ripristina la vecchia partizione (qui con le dimensioni dell'esempio: 152523080 blocchi (512) - non usare questo accidentalmente! ):

    diskutil umountDisk disk0
    sudo gpt add -i 2 -b 409640 -s 152523080 -t 7C3457EF-0000-11AA-AA11-00306543ECAC /dev/disk0
    
  • controlla il contenitore APFS

    diskutil verifyVolume disk0s2
    
  • controlla il volume del sistema APFS

    diskutil list #get the device identifier of the APFS system volume and use it below (probably disk2s2)
    diskutil verifyVolume diskXsY
    

Se hai problemi ad analizzare il dump esadecimale o altri risultati e messaggi di errore, lascia un commento!

    
risposta data 14.03.2018 - 20:29
fonte

Leggi altre domande sui tag