Partizione macOS danneggiata dopo GParted

4

Ho seguito un tutorial per creare un dual boot con macOS Sierra 10.12 e Kali-Linux 2.0.

Ho creato un'unità USB avviabile e avviata su una sessione live di Kali-Linux per utilizzare GParted e ridimensionare la mia partizione macOS.

Ho selezionato la partizione macOS e l'ho ridimensionata da 239 GB a 200 GB. Ho ottenuto 2 partizioni, con la partizione da 39 GB formattata con "non allocato".

Ma ora quando provo ad avviare macOS, ottengo il logo Apple e poi una croce bianca e non posso avviare macOS.

Ho provato ad avviare in Recovery HD tenendo premuto cmd R , quindi ho provato a usare S.O.S. ma dice che ho bisogno di un disco di ripristino di Assistant. Possiamo creare un disco di ripristino USB collegando un'unità USB al nostro MacBook, quindi utilizzare l'assistente per creare un'unità USB avviabile che può riparare i dischi, ma come ho detto il mio MacBook non può avviarsi su macOS, quindi non posso creare si ... C'è un modo per scaricare direttamente l'iso dell'unità USB di ripristino per creare da solo la mia unità USB di ripristino?

Ho letto da qualche parte che ho bisogno di riscrivere i codici di avvio corretti e i miei dati non vanno perduti. È vero?

Cosa pensi che io possa fare?

Modifica
Ecco l'output di diskutil / gpt:

(Ciscusiamoperilbassotassodicompressionenonho10reputazioneperpubblicarepiùdi2foto)

NonmiaspettavoilrisultatodiDiskutil.Quantapartizioneènormale?

Edit2:

Eccol'altraschermatacheavevodopoicomandidiscrittura:

Modifica3

    
posta M. Ozn 13.10.2016 - 11:49
fonte

1 risposta

3

GParted in realtà non creava spazio su disco non allocato. Invece l'MBR è diventato fasullo. Il CoreStorage LVG e tutti i contenitori successivi sono stati corrotti anche perché l'intero stack non è stato ridimensionato come richiesto. Di solito - in macOS - l'intero stack viene ridimensionato con il comando diskutil cs resizeStack ... . Per quanto posso dire da remoto, il limite finale della seconda partizione è stato semplicemente spostato in numeri di blocco più bassi che normalmente funzionano con normali volumi HFS + in GParted, ma non in questo caso con uno stack CoreStorage. Fortunatamente alcune strutture di dati invisibili dello stack CS non sono state sovrascritte.

Inoltre, la partizione di ripristino non è stata spostata correttamente. Ma questo è un problema diverso.

Al posto dell'MBR dovresti avere un pMBR. Dopo aver rimosso l'MBR falso devi distruggere e ricreare la tabella delle partizioni GUID:

  • Avvio in modalità ripristino Internet
  • Apri terminale nella barra dei menu Utilità - > Terminale
  • Ottieni una panoramica (in particolare il comando gpt è importante!):

    diskutil list
    gpt -r show disk0
    
  • Smonta disco0:

    diskutil umountDisk /dev/disk0
    
  • Elimina l'MBR:

    dd if=/dev/zero of=/dev/disk0 bs=512 count=1
    
  • Distruggi la tabella delle partizioni GUID e creane una nuova (questo crea anche un nuovo pMBR):

    gpt destroy disk0
    gpt create -f disk0
    
  • Ricostruisci tutte le precedenti partizioni GUID:

    gpt add -i 1 -b 40 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0
    gpt add -i 3 -b 488965176 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0
    gpt add -i 2 -b 409640 -s 409602008 -t 53746F72-6167-11AA-AA11-00306543ECAC disk0
    

    Se si verifica un errore di risorsa esaurita dopo uno dei passaggi, è sufficiente smontare di nuovo disk0 con

    diskutil umountDisk /dev/disk0
    

Controlla successivamente il disco con diskutil verifyDisk disk0 .

Inserisci diskutil cs list e controlla se sono visualizzati tutti e quattro i contenitori CoreStorage: un gruppo di volumi logici, un volume fisico e una famiglia di volumi logici e un volume logico.

Con l'UUID del volume logico, montare LV:

Esempio:

    +-> Logical Volume 9A7B21AA-F9FE-4E65-8C7E-ED2A73744C15
        ---------------------------------------------------
        Disk:                  disk17
        Status:                Online

Quindi usa:

diskutil mount 9A7B21AA-F9FE-4E65-8C7E-ED2A73744C15

Quindi, dopo aver ottenuto l'identificativo del disco del VS montato con diskutil list , verifica il volume:

diskutil verifyVolume disk17 # probably it's disk17, disk16 or disk18

Qui sotto presumo che l'identificativo del disco sia disk17

Se la famiglia del volume logico e il volume logico non appaiono, prova quanto segue:

  • Avvio in modalità ripristino Internet
  • Apri terminale nella barra dei menu Utilità - > Terminale
  • Ottieni una panoramica (in particolare il comando gpt è importante!):

    diskutil list
    gpt -r show disk0
    
  • Smonta disco0:

    diskutil umountDisk /dev/disk0
    
  • Rimuovi la voce della partizione corrente per la seconda partizione:

    gpt remove -i 2 disk0
    
  • Aggiungi una nuova voce "espansa" seconda partizione:

    gpt add -i 2 -b 409640 -s 488555536 -t 53746F72-6167-11AA-AA11-00306543ECAC disk0
    
  • Quindi ripeti tutti i passaggi di verifica:

    Controlla successivamente il disco con diskutil verifyDisk disk0 .

    Inserisci diskutil cs list e controlla se sono visualizzati tutti e quattro i contenitori CoreStorage: un gruppo di volumi logici, un volume fisico e una famiglia di volumi logici e un volume logico.

    Con l'UUID del volume logico, montare LV:

    Esempio:

        +-> Logical Volume 9A7B21AA-F9FE-4E65-8C7E-ED2A73744C15
            ---------------------------------------------------
            Disk:                  disk17
            Status:                Online
    

    Quindi usa:

    diskutil mount 9A7B21AA-F9FE-4E65-8C7E-ED2A73744C15
    

    Quindi, dopo aver ottenuto l'identificativo del disco del VS montato con diskutil list , verifica il volume:

    diskutil verifyVolume disk17 # probably it's disk16, disk17 or disk18
    

    Se si verificano errori durante il backup dei dati o dell'intera partizione su un volume esterno, riparare il volume con diskutil repairVolume disk17 .

    Una possibilità di eseguire il backup dei dati è dd . Allegare un'unità formattata HFS + con almeno 250 GB di spazio libero. Ottieni il percorso per il volume esterno con ls /Volumes . Quindi smontare disk17 e disk0 con diskutil umountDisk disk17 e diskutil umountDisk disk0 .

    Quindi clonare la partizione in un file:

    dd if=/dev/disk0s2 of=/Volumes/ExternalDriveName/disk0s2.rawdevice bs=4m
    

    Se il nome del volume contiene spazi, sfuggi agli spazi con barre retroverse: ...of=/Volumes/ExternalDriveName\ With\ Spaces/disk0s2.rawdevice... .

    Puoi anche usare asr per ripristinare la partizione su un altro disco (come "backup" temporaneo). Controlla man asr .

risposta data 13.10.2016 - 21:00
fonte

Leggi altre domande sui tag