Ancora un'altra tabella delle partizioni danneggiata su macOS Mojave

0

Ho visto un paio di post qui che affrontano problemi simili. Dato che non ho una comprensione approfondita di cosa è andato storto, devo descrivere quello che è successo nel mio caso e spero che tu mi aiuti. Grazie.

MBP 15 ", Retina, metà 2012. Mojave.

  1. Ho ridotto lo spazio osx (rimosso 64Gb) tramite Utility Disco, installato REFInd e poi Ubuntu 18.04. Ha funzionato alla grande Potrei avviare qualsiasi cosa scegliassi.
  2. Poi ho deciso di ridurre lo spazio osx un po 'di più e di formattare lo spazio vuoto risultante (un altro 64Gb) in FAT tramite Utility Disco. Dopo di che ho avviato una chiavetta USB e ho provato ad installare Windows 10 Pro su quella nuova partizione.

Durante il secondo passaggio, a Windows Installer non piaceva quella partizione FAT, quindi l'ho cancellata (pulita). Non mi è ancora piaciuto. L'ho cancellato. E ricreato il nuovo dallo spazio vuoto risultante. Non mi è ancora piaciuto. Ho deciso di smettere e andarmene fino a domani. Riavviata la mia macchina. Fail . macOS non si avvia più e il processo arriva direttamente a Ubuntu, da cui sto scrivendo ora. Aggiornerò questo messaggio non appena avrò gli output dei comandi richiesti.

-bash-3.2# diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:          Apple_CoreStorage                         371.5 GB   disk0s2
   3: DE94BBA4-06D1-4D40-A16A-BFD50179D6AC               523.2 MB   disk0s3
   4:                        EFI                         104.9 MB   disk0s4
   5:         Microsoft Reserved                         16.8 MB    disk0s5
   6:       Microsoft Basic Data                         63.9 GB    disk0s6
   7:                 Linux Swap                         4.0 GB     disk0s7
   8: 0FC63DAF-8483-4772-8E79-3D69D8477DE4               60.0 GB    disk0s8
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        *1.2 GB     disk1
   1:        Apple_partition_map                         30.7 KB    disk1s1
   2:                  Apple_HFS Mac OS X Base System    1.2 GB     disk1s2
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *524.3 KB   disk2
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *524.3 KB   disk3
/dev/disk4
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *524.3 KB   disk4
/dev/disk5
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *524.3 KB   disk5
/dev/disk6
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *524.3 KB   disk6
/dev/disk7
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *6.3 MB     disk7
/dev/disk8
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *2.1 MB     disk8
/dev/disk9
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *1.0 MB     disk9
/dev/disk10
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *524.3 KB   disk10
/dev/disk11
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *524.3 KB   disk11
/dev/disk12
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *1.0 MB     disk12
-bash-3.2# gpt -r show disk0
      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  725609832      2  GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
  726019472        624

  726020096    1021952      3  GPT part - DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
  727042048     204800      4  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
  727246848      32768      5  GPT part - E3C9E316-0B5C-4DB8-817D-F92DF00215AE
  727279616  124825600      6  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
  852105216    7813120      7  GPT part - 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
  859918336  117186560      8  GPT part - 0FC63DAF-8483-4772-8E79-3D69D8477DE4
  977104896        131

  977105027         32         Sec GPT table
  977105059          1         Sec GPT header
-bash-3.2# dd if=/dev/disk0 bs=512 skip=409640 count=1
rY
  +?,C??)?NXSB??g??蝳C??T?"[?L9?
                            9?),lߌ???W9?-d?s?s1+0 records in 1+0 records out 512 bytes transferred in 0.006626 secs (77273 bytes/sec) -

bash-3.2#

Scusa per l'ultimo output del comando, hexdump non è disponibile nella modalità di ripristino della mia macchina. Sto lavorando da terminale paralizzato.

EDIT # 1: Stil non riesce a trovare hexdump o od in modalità di ripristino. Tuttavia, sono stato in grado di farlo:

-bash-3.2# fsck_apfs /dev/disk0s2
Cannot run fsck repair in install environment, degrading fsck_apfs to run with [-n] 
** Checking the container superblock.
** Checking the EFI jumpstart record.
** Checking the space manager.
** Checking the space manager free queue trees.
** Checking the object map.
** Checking volume.
** Checking the APFS volume superblock.
** The volume Macintosh HD was formatted by hfs_convert (748.1.46) and last modified by apfs_kext (945.220.38).
** Checking the object map.
** Checking the snapshot metadata tree.
** Checking the snapshot metadata.
** Checking the extent ref tree.
** Checking the fsroot tree.
error: btn: invalid btn_btree.bt_key_count (expected 12785968, actual 12786023)
Fix btree: bt_key_count (12786023)? NO
   fsroot tree is invalid.
** The volume /dev/disk0s2 could not be verified completely.
    
posta OneTimeQuestion 21.11.2018 - 06:19
fonte

1 risposta

0

Se si sospetta che disk0s2 sia effettivamente un contenitore APFS, allora si modifica il tipo di partizione nella tabella delle partizioni GUID (GPT) in APFS. Normalmente si dovrebbe prima esadecare l'inizio di disk0s2 per vedere se il contenuto corrisponde a quanto previsto per un contenitore APFS. Apparentemente, è difficile dalla modalità di recupero. Un'ultima risorsa sarebbe vedere se il numero magico di APFS sarebbe il NXSB caratteri. Questo può essere fatto inserendo i comandi indicati di seguito.

dd if=/dev/disk0s2 count=4 skip=32 bs=1 2>/dev/null; echo

Se la partizione è un contenitore APFS, viene emesso quanto segue.

NXSB

Note: Any error messages produced by dd command will not be shown. To display these messages omit 2>/dev/null. Doing so on a APFS container partition would produce an output similar to what is shown below.

NXSB4+0 records in
4+0 records out
4 bytes transferred in 0.020234 secs (198 bytes/sec) 

Tuttavia, se guardi l'output dd già pubblicato nella tua domanda, puoi vedere i NXSB caratteri.

Se è possibile avviare Ubuntu, è possibile eseguire un dump esadecimale del primo settore della partizione del contenitore APFS immettendo il comando indicato di seguito.

sudo hexdump -Cv -n 512 /dev/sda2

Modifica del tipo di partizione da Core Storage a APFS

Il modo più semplice per modificare un tipo di partizione è utilizzare il comando di terze parti gdisk . Questo comando può essere eseguito da Ubuntu già installato sul tuo Mac.

Puoi fare in modo che il tipo di partizione cambi forma da Ubuntu usando il comando gdisk . Avrai bisogno della versione 1.0.4 di gdisk . Se si dispone di una versione precedente, scaricare e installare la versione aggiornata dal sito Web SourceForge GPD fdisk . Il comando da inserire è indicato di seguito.

sudo gdisk /dev/sda

Di seguito è riportato un esempio dell'interazione corretta con gdisk .

GPT fdisk (gdisk) version 1.0.4

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): t
Partition number (1-8): 2
Current type is 'Apple Core Storage'
Hex code or GUID (L to show codes, Enter = 8300): af0a
Changed type of partition to 'Apple APFS'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.

Puoi anche cambiare il tipo di partizione da macOS. I diversi modi di avviare sono i seguenti.

  • Avvio da un'unità esterna con macOS già installato. Aprire una finestra dell'applicazione Terminale per immettere i comandi necessari.
  • Avvia da recupero macOS su Internet . Una volta avviato su Internet, puoi aprire una finestra di Terminale per inserire i comandi necessari.
  • Utilizza un altro Mac per creare un programma di installazione USB avviabile per macOS. Una volta avviato il programma di installazione, è possibile aprire una finestra di Terminale per immettere i comandi necessari.
  • Avvia il Mac in Modalità Disco di destinazione e connettiti a un altro Mac. In questo caso, l'unità non sarà disk0 . Dovrai eseguire diskutil list per determinare l'identificativo corretto.

I comandi da inserire sono mostrati di seguito.

sudo diskutil unmountdisk disk0
sudo gpt remove -i 2
sudo diskutil unmountdisk disk0
sudo gpt add -i 2 -b 409640 -s 725609832 -t 7C3457EF-0000-11AA-AA11-00306543ECAC /dev/disk0

Note: Most of gpt commands require the drive to be unmounted. Since macOS likes to auto mount partitions, you may need to enter the command diskutil unmountdisk disk0 before entering each gpt command.

    
risposta data 21.11.2018 - 22:11
fonte

Leggi altre domande sui tag