Equivalente della riga di comando di Utility Disco, che non è diskutil, per ottenere UUID

4

In seguito alla risposta a Puoi far montare OSX solo su determinate partizioni quando colleghi un HDD esterno? , tutti i siti che ho selezionato ( CNET , OSXDaily, thread della community di supporto Apple ) affermano che è necessario utilizzare Utility Disco (o la riga di comando diskutil info /dev/disk<X>s<Y> ) per trovare l'UUID.

Esiste un equivalente a riga di comando che mi fornirà questa informazione, che non è diskutil ? In particolare, uno che funzionerà in modalità utente singolo?

Perché diskutil non funziona

In modalità utente singolo (almeno su Mountain Lion) dopo l'esecuzione:

/sbin/fsck -fy
/sbin/mount -uw /

in esecuzione:

diskutil info disk0s5

dà il seguente errore

Unable to run because unable to use the DiskManagement framework.
Common reasons include, but are not limited to, the DiskArbitration
framework being unavailable due to being booted in single user mode.

Sfondo

Il mio problema è che ho una partizione morente sul mio disco interno, che contiene solo un sistema operativo Snow Leopard obsoleto, ma sta rallentando il mio Mac (insopportabile), poiché la console sta (ripetutamente) riportando:

kernel: disk0s5: I/O error.

Non mi avvio più in Snow Leopard quando avvio Mountain Lion, che si trova su un disco FireWire esterno, quindi mi piacerebbe lasciare la partizione di Snow Leopard smontata, usando la linea

UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX none hfs rw,noauto

in /etc/fstab .

Tuttavia, per ottenere l'UUID della partizione difettosa, devo aprire Utility Disco e montare la partizione difettosa, che è un processo lento e tortuoso (richiede circa venti minuti per l'Utility Disco).

TL; DR - Posso ottenere l'UUID della partizione interna, quando si avvia in modalità utente singolo di un sistema operativo memorizzato su una partizione che si trova su un disco FW esterno?

    
posta Greenonline 23.03.2016 - 05:14
fonte

3 risposte

3

Aggiornamento:

IOReg fornisce l'UUID della partizione, non l'UUID del volume, poiché opera sotto il livello HFS. In modo errato pensavo che fosse necessario l'UUID del dispositivo piuttosto che l'UUID del volume perché sostituiva un nodo del dispositivo. Per ottenere l'UUID del volume, utilizzare hfs.util . Ad esempio:

/System/Library/Filesystems/hfs.fs/Contents/Resources/hfs.util -k disk0s3

Sostituisci "disk0s3" con qualunque "identificativo del dispositivo" del tuo volume. Questo è diverso dal "nodo del dispositivo" (che è "/ dev / disk0s3" in questo caso ").

Dettagli originali di IOReg:

È possibile eseguire ioreg -c IOMedia -r per mostrare l'albero dei dispositivi per i dispositivi disco nel sistema. Questo dovrebbe dare una quantità gestibile di output (rispetto a ioreg -l , che mostra tutto).

Se vuoi solo estrarre UUID, puoi ioreg -c IOMedia -r | grep UUID , ma il lato negativo è che perdi il contesto.

L'informazione diskutil è interessante; ovviamente dipende da demoni che non funzionano in modalità utente singolo.

    
risposta data 23.03.2016 - 06:18
fonte
1

Installa Fdisk GPT . Dopo l'avvio alla modalità utente singolo, inserire:

/sbin/fsck -fy
/sbin/mount -uw /
/usr/local/bin/gdisk

In modalità interattiva, prima inserisci il nodo del dispositivo (ad esempio disk0):

/dev/disk0

then i per mostrare informazioni dettagliate su una partizione.
Infine inserisci il numero della partizione, ad es. 5 per ottenere il GUID univoco della partizione:

Partition GUID code: 53746F72-6167-11AA-AA11-00306543ECAC (Apple Core Storage)
Partition unique GUID: 7AA0FD56-01BC-4EA1-8CE2-7972E63A2A6D
First sector: 409640 (at 200.0 MiB)
Last sector: 133955543 (at 63.9 GiB)
Partition size: 133545904 sectors (63.7 GiB)
Attribute flags: 0000000000000000
Partition name: ''
    
risposta data 27.03.2016 - 23:37
fonte
0

Per inciso, ho appena scoperto che non c'è bisogno di fare nulla di tutto ciò, perché, invece di usare l'UUID, puoi usare l'etichetta del volume , invece, in /etc/fstab , in questo modo:

LABEL=Archive none hfs rw,noauto 0 0

Questo metodo ha il vantaggio di:

  1. Essere molto più semplice da implementare e più importante ;
  2. L'etichetta del volume non cambia, mentre gli UUID cambiano quando si collegano altri dischi FW o USB. Quindi, se stai utilizzando UUID in /etc/fstab , devi aggiornare quegli UUID per i dischi non montati, in /etc/fstab , ogni volta che cambi la configurazione del disco.

Nota: l'uso del LABEL in /etc/fstab , potrebbe non funzionare sempre (ad esempio se il disco è molto corrotto e l'etichetta non può essere letta). In questi casi, sarai obbligato a utilizzare UUID.

    
risposta data 30.03.2016 - 08:22
fonte

Leggi altre domande sui tag