Come posso sapere su quale volume è attivo il sistema operativo?

5

Devo ammettere che sto creando una serie di domande multiple qui, quindi per favore perdonami e cerca di non picchiarmi per questo.

Sono nuovo di Mac, ma sto provando a portare una delle mie applicazioni Java su OS X. Su Windows, usa il numero di serie del disco fisso per qualcosa e sto cercando di fare equivalenti in Mac usando il Terminale!

La cosa più vicina che riesco a trovare è il volume UUID che usa diskutil info ... , il che va bene (purché rimanga sempre lo stesso?): quindi la mia domanda principale è quale volume dovrei usare, visto che appaiono tre quando digito diskutil list ? Ovviamente ha bisogno di avere un UUID, ma vorrei anche usare il volume che è meno probabile che cambi, che sembrerebbe essere quello con il sistema operativo su di me!

Quindi vorrei sapere quale volume è il più sicuro da usare per questo scopo, e se varia su diversi computer - come trovarlo!

Grazie in anticipo

    
posta Andy 02.05.2012 - 21:00
fonte

2 risposte

9

Apri Terminal.app ed esegui df -h / :

% df -h /
Filesystem     Size   Used  Avail Capacity  Mounted on
/dev/disk1s2  111Gi   75Gi   36Gi    68%    /

Sulla mia macchina il mio disco OS è in /dev/disk1s2 . Con queste informazioni puoi usare l'app Utility Disco e scoprire su quale unità fisica si trova il tuo sistema operativo:

L'utilizzodidiskutildallarigadicomandodell'unitàOSsaràqualsiasicosacorrelataaciòchel'outputdelcomandodftihadato:

%diskutillist/dev/disk0#:TYPENAMESIZEIDENTIFIER0:GUID_partition_scheme*500.1GBdisk01:EFI209.7MBdisk0s12:Apple_HFSNymeria499.2GBdisk0s23:Apple_BootRecoveryHD650.0MBdisk0s3/dev/disk1#:TYPENAMESIZEIDENTIFIER0:GUID_partition_scheme*120.0GBdisk11:EFI209.7MBdisk1s1->2:Apple_HFSUntitled1119.2GBdisk1s23:Apple_BootRecoveryHD650.0MBdisk1s3

SenonconoscicomeisistemioperativiUNIX(OSX)partizionanoun'unitàcontrolla questo articolo di Wikipedia .

E se vuoi ottenere tutti i dettagli per la partizione di root direttamente nel terminale, esegui

diskutil info $(df / | tail -1 | cut -d' ' -f 1)
    
risposta data 02.05.2012 - 21:31
fonte
0

Questa funzione shell ti dirà il nome del volume che contiene un determinato file (o cartella, ecc.).

function volumeOfFile {
  local result=$(
      /bin/df "$1" \
      | /usr/bin/sed -e 1d -e 's,  *, ,g' -e s,/Volumes/,, \
      | cut -d' ' -f 9-
  )
  if [[ $result == / ]] ; then
    /bin/ls -l /Volumes \
    | /usr/bin/sed -n -e 's,  *, ,g' -e 's, -> /$,,p' \
    | cut -d' ' -f 9-
  else
    echo "$result"
  fi
}

Esempi:

$ volumeOfFile /System
Mac HD
$ volumeOfFile /Volumes/Other/Users
Other
$

Mi piacerebbe sapere un modo più semplice per farlo o un modo per farlo in Swift.

    
risposta data 15.12.2016 - 08:03
fonte

Leggi altre domande sui tag