Cosa causerebbe la visualizzazione dei volumi APFS sotto il disco sbagliato?

2

Ho un problema APFS piuttosto interessante. Ci sono due volumi su uno, unità interna e due che sono stati clonati da esso, su un esterno. Tutti e quattro i volumi vengono visualizzati sotto l'unità interna, anche se si visualizzano sotto il dispositivo giusto passando per il numero del dispositivo. Quindi, hai disk1s1, disk1s5, disk8s1 e disk8s5 tutti visualizzati sotto disk1.

Sono anche visualizzati come appartenenti a disk6, che ospita disk8. Disk8 però - è elencato come "non inizializzato" e non farà nulla.

È iniziato così:

  1. L'unità di sistema ha avuto un errore fsroot quando è stata selezionata. Sembrava causare problemi con l'avvio e alcuni si blocca; Volevo clonare l'unità per avere un backup dei miei backup, per essere al sicuro.
  2. Non è stato possibile clonare né il disco né il volume dell'unità di sistema. Finirei con un singolo file sul disco di destinazione che diceva "tobeinverted".
  3. Ho usato dd per clonare l'unità. Il clone ha lo stesso "albero fstroot non valido", ovviamente.
  4. Dopo il riavvio, i volumi che appartengono all'unità esterna vengono visualizzati nel disco del contenitore per l'unità di sistema (interna). E dopo un altro riavvio ... smontando e montando di nuovo ...

Nel frattempo, non riesco a reinstallare High Sierra sull'unità di sistema originale: si blocca con una barra di stato completata e il logo Apple. Lo fa anche dopo che l'ho cancellato - First Aid / fsck fa check out ora che è stato cancellato. Quindi questo è confuso.

Mi libererò da questo pasticcio, ma poiché non riesco a trovare nulla su questo strano problema, penso che potrebbe essere utile a qualcun altro in futuro.

Non so molto su questi aspetti della struttura del disco e del disco e così via, ma se fsroot non supporta il root del filesystem, ho chiuso tutto.

Quindi - il volume ha informazioni corrotte su quale disco appartiene? È così che sono finito qui?

Conoscono il dispositivo a cui appartengono ... vengono visualizzati nella sezione Dispositivo e utilizzano diskutil list, o df -h; come preferisci.

Errori del primo soccorso dell'utilità del disco:

error: invalid dstream.default_crypto_id (0x4), given apfs_fs_flags (0x1)
error: xf : INO_EXT_TYPE_DSTREAM: invalid dstream
error: inode_val: object (oid 0x1a24c0): invalid xfields
fsroot tree is invalid.
The volume /dev/disk/ could not be verified completely.

Ecco fatto - se qualcuno ha riscontrato questo problema mi piacerebbe sapere della tua esperienza.

    
posta Fin Hirschoff 18.09.2018 - 15:23
fonte

1 risposta

1

La semplice risposta è che i volumi APFS (da due dischi separati) appaiono sotto il disco sbagliato quando i contenitori condividono un UUID. Naturalmente quando cloni un'unità , gli UUID arrivano: volumi e container. Forse accade quando due volumi hanno lo stesso UUID pure.

Ho rinunciato a provare a risolvere il problema con gli UUID sui container. Il metodo che conosco è usare una delle utility del filesystem -

/System/Library/Filesystems/hfs.fs/Contents/Resources/hfs.util o /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util

per esempio, e poiché le partizioni del contenitore APFS non hanno un filesystem, mi sono bloccato lì e ho attaccato il mio problema da una direzione diversa.

Per correggere gli UUID su singoli volumi:

Dire diskDsV e diskFsB (entrambi i volumi APFS) condividono lo stesso UUID. Puoi cambiarne uno smontando il volume e facendo così:

./System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util -s rdiskDsV

Se si tratta di un'unità di sistema , è molto più complicato. Hai un volume di preavvio e devi modificare anche il nome di una cartella nella directory principale di quel volume: il nome della cartella deve essere l'UUID dell'unità di sistema.

Anche se nell'elenco vengono mostrati 2 volumi, quando fai clic sul disco puoi vedere che ci sono in realtà 5. Preboot, VM e Recovery sono stati creati automaticamente e per la maggior parte sono nascosti.

Quindi,perfareciò,troval'UUIDcorrettoperilvolumedisistemacomequesto(suppongochesias1-potrebbeesserediverso):

./System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util-krdiskDs1

Quindi,diskutillist/dev/diskD-vedraiilvolumedipreavvio;chiamiamolosp.Successivosudodiskutilmount/dev/diskDsp,poils/Volumes/Preboot/evedrailacartella.Seilnomenoncorrispondeall'UUIDdelvolumecorretto,modificalo.

Duepassaggifinali- vedi qui per ulteriori - (diskDspNAME è il punto di montaggio in Volumi):

Dichiara dove sono i file di avvio:

sudo bless --folder/Volumes/diskDspNAME/System/Library/CoreServices --bootefi

Aggiorna la cache del linker dinamico:

sudo update_dyld_shared_cache -root /Volumes/diskDspNAME -force

    
risposta data 01.10.2018 - 19:28
fonte

Leggi altre domande sui tag