La partizione APFS è scomparsa dopo aver creato l'MBR ibrido

2

Dopo aver provato a creare MBR ibrido per Windows dual-boot in UEFI e BIOS con gdisk, la partizione APFS principale (contenitore) è scomparsa, lasciando spazio vuoto nella tabella delle partizioni GPT. È possibile vedere solo con sudo gpt -r show /dev/disk1 (spazio da 409640 a 732437176).

      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  732027536         
  732437176     195912      2  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
  732633088      32768      3  GPT part - E3C9E316-0B5C-4DB8-817D-F92DF00215AE
  732665856  244107264      4  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
  976773120         15         
  976773135         32         Sec GPT table
  976773167          1         Sec GPT header

Utility Disco e gdisk non mostrano affatto questo spazio vuoto. È anche impossibile riparare la struttura delle partizioni con Utility Disco. Come recuperare il contenitore APFS mancante? Hex dump below.

1+0 records in
1+0 records out
0000000 55 83 b6 a3 d0 9d ef aa 01 00 00 00 00 00 00 00
0000010 f8 cc 00 00 00 00 00 00 01 00 00 80 00 00 00 00
0000020 4e 58 53 42 00 10 00 00 52 3b 74 05 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 f1 c2 c7 d5 be fe 4d 6c
0000050 a8 5a c1 d2 1e 5e 2b d4 77 68 02 00 00 00 00 00
0000060 f9 cc 00 00 00 00 00 00 18 01 00 00 2c 6c 00 00
0000070 ec a3 04 00 00 00 00 00 c0 16 04 00 00 00 00 00
0000080 88 00 00 00 19 0d 00 00 86 00 00 00 02 00 00 00
0000090 06 0d 00 00 13 00 00 00 3f 67 02 00 00 00 00 00
00000a0 66 bb 0b 00 00 00 00 00 01 04 00 00 00 00 00 00
00000b0 00 00 00 00 64 00 00 00 02 04 00 00 00 00 00 00
00000c0 10 04 00 00 00 00 00 00 12 04 00 00 00 00 00 00
00000d0 be a4 00 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
    
posta Alexander 18.11.2017 - 23:23
fonte

1 risposta

0

Puoi semplicemente aggiungere nuovamente la partizione con gpt "nello spazio vuoto". Il problema qui è: la partizione del contenitore APFS potrebbe essere più piccola dello spazio disponibile ora disponibile.

La buona notizia è che la (precedente) dimensione del contenitore è memorizzata nel superblocco APFS che non avrebbe dovuto essere modificato creando un MBR ibrido. Il superblocco è il primo blocco di un contenitore APFS: qui probabilmente il blocco 409640 (che è il 409641 ° blocco del tuo SSD) se inizialmente veniva utilizzato lo schema di partizione Apple predefinito.

  • avviare un sistema a tutti gli effetti (idealmente 10.13 ma i sistemi più vecchi dovrebbero anche funzionare con lo svantaggio che non è possibile verificare il contenitore con fsck_apfs in seguito)
  • ottieni l'elenco delle partizioni con diskutil list . (nell'esempio seguente presumo che l'identificativo del dispositivo sia disk1)
  • Smonta l'SSD: diskutil umountDisk disk1
  • blocco hexdump 409640 dell'SSD:

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

    che risulta in qualcosa di simile a questo (solo per esempio):

    1+0 records in
    1+0 records out
    0000000 4a 2e 4c 58 2c 73 22 1d 01 00 00 00 00 00 00 00
    0000010 ac 01 00 00 00 00 00 00 01 00 00 80 00 00 00 00
    0000020 4e 58 53 42 00 10 00 00 f6 37 ff 00 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 d1 67 7e 03 33 23 42 a5
    0000050 a8 da 96 fc 12 ae de 21 18 04 00 00 00 00 00 00
    0000060 ad 01 00 00 00 00 00 00 18 01 00 00 18 6c 00 00
    0000070 01 00 00 00 00 00 00 00 19 01 00 00 00 00 00 00
    0000080 10 00 00 00 80 07 00 00 0e 00 00 00 02 00 00 00
    0000090 7b 07 00 00 05 00 00 00 00 04 00 00 00 00 00 00
    00000a0 07 fd 03 00 00 00 00 00 01 04 00 00 00 00 00 00
    00000b0 00 00 00 00 64 00 00 00 02 04 00 00 00 00 00 00
    00000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000200
    

    La riga pertinente è 0x020: 4e 58 53 42 00 10 00 00 f6 37 ff 00 00 00 00 00

    • 4e 58 53 42 (NXSB) è il blocco magico APFS (Offset: 0x20 Tipo: char [4])
    • 00 10 00 00 è la dimensione del blocco (Offset: 0x24 Tipo: Uint32). Dopo aver ripristinato l'ordine dei byte e convertito in decimale, questo è 4096 byte, che è la dimensione predefinita per i contenitori APFS.
    • f6 37 ff 00 00 00 00 00 è il numero di blocchi nel contenitore (Offset: 0x28 Tipo: Uint64)

      per convertirlo in un decimale, ripristina l'ordine dei byte f6 37 ff 00 00 00 00 00 - > 00 00 00 00 00 ff 37 f6 e inseriscilo in un convertitore . Il numero di blocchi 4k è qui 16,726,006 e la dimensione finale 16,726,006 x 4096 Byte = 68,509,720,576 Byte. In 512 blocchi Byte ci sono 133.808.048 blocchi.

  • Verifica la plausibilità del risultato. Nel tuo caso il numero di blocchi 512 byte dovrebbe essere uguale a 732027536 o leggermente inferiore.

  • Ora aggiungi la partizione con gpt:

    sudo gpt add -i 5 -b 409640 -s 512b_block_number -t 7C3457EF-0000-11AA-AA11-00306543ECAC /dev/disk1
    

    o probabilmente nel tuo caso:

    sudo gpt add -i 5 -b 409640 -s 732027536 -t 7C3457EF-0000-11AA-AA11-00306543ECAC /dev/disk1
    
  • Verifica il disco: sudo fsck_apfs /dev/disk1 . Se ti viene richiesto di eseguire l'avvio dal contenitore APFS "ripristinato" per verificarlo perché il tuo sistema sull'altra unità di avvio è macOS 10.12 o meno usa qualcosa come sudo fsck_apfs -nl /dev/disk1s2 . Se ricevi un avvertimento come "warning: Overallocation Detected on Main device: (..... + 1) indirizzo bitmap (.....)" puoi probabilmente ignorarlo fintanto che il volume / dev / disk1s2 sembra essere OK.

risposta data 19.11.2017 - 01:57
fonte

Leggi altre domande sui tag