Come montare il disco tramite UUID o LABEL in OS X El Capitan?


17

Ricevo l'UUID e l'etichetta di un disco da diskutil info disk0s4

diskutil info disk0s4
   Device Identifier:        disk0s4
   Device Node:              /dev/disk0s4
   Whole:                    No
   Part of Whole:            disk0
   Device / Media Name:      Untitled

   Volume Name:              Data

   Mounted:                  No

   File System Personality:  HFS+
   Type (Bundle):            hfs
   Name (User Visible):      Mac OS Extended
   Journal:                  Unknown (not mounted)
   Owners:                   Disabled

   Partition Type:           Apple_HFS
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 PCI
   SMART Status:             Verified
   Volume UUID:              F8C88B2D-5412-343B-8969-254F3AC559B8
   Disk / Partition UUID:    1738336E-68DD-46B1-997E-57469CF0472D

   Total Size:               338.0 GB (337984569344 Bytes) (exactly 660126112 512-Byte-Units)
   Volume Free Space:        0 B (0 Bytes) (exactly 0 512-Byte-Units)
   Device Block Size:        512 Bytes

   Read-Only Media:          No
   Read-Only Volume:         Not applicable (not mounted)

   Device Location:          Internal
   Removable Media:          No

   Solid State:              Yes

mount l'utilizzo dell'etichetta del volume non funziona:

$ sudo mount -t hfs LABEL=Data /Users/user/test
GetMasterBlock: Error 2 opening LABEL=Data
GetMasterBlock: Error 2 opening LABEL=Data
mount_hfs: error on mount(): error = -1.
mount_hfs: No such file or directory

mount l'utilizzo del volume UUID non funziona con o senza virgolette:

$ sudo mount -t hfs uuid=F8C88B2D-5412-343B-8969-254F3AC559B8 /Users/user/test
GetMasterBlock: Error 2 opening uuid=F8C88B2D-5412-343B-8969-254F3AC559B8
GetMasterBlock: Error 2 opening uuid=F8C88B2D-5412-343B-8969-254F3AC559B8
mount_hfs: error on mount(): error = -1.
mount_hfs: No such file or directory
$ sudo mount -t hfs UUID="F8C88B2D-5412-343B-8969-254F3AC559B8" /Users/user/test
GetMasterBlock: Error 2 opening UUID=F8C88B2D-5412-343B-8969-254F3AC559B8
GetMasterBlock: Error 2 opening UUID=F8C88B2D-5412-343B-8969-254F3AC559B8
mount_hfs: error on mount(): error = -1.
mount_hfs: No such file or directory

mount utilizzando l'identificatore di volume funziona

mymac:~ user$ sudo mount -t hfs /dev/disk0s4 /Users/user/test

Aggiornare:

Il mio obiettivo è quello di mettere la mountlinea in /etc/fstabquanto voglio montare un volume su un mountpoint personalizzato.


Come hai già scoperto, il mountcomando non può utilizzare UUIDo LABELdeve utilizzare l'identificatore del disco, ad es /dev/disk0s4. Inoltre come perhapsmaybeharry ha sottolineato che il metodo di OS X è quello di utilizzare diskutil. Per risolvere il tuo aggiornamento ... Comunque fstabpuoi usare UUIDo LABEL, basta guardare gli esempi nella pagina man per fstab. In un Terminale digitare fstabe quindi fare clic con il tasto destro su fstabe selezionare Apri man page, quindi leggerlo nella sua interezza! :)
user3439894,

@ user3439894 Ho provato una linea in fstabquesto modo: UUID=<volume_uuid> /mount/point autoe ho funzionato sudo mount -a. Si è verificato lo stesso errore:... mount_hfs: No such file or directory
biocyberman,

Il secondo campo, (fs_file), il mount point, deve già esistere, vero?
user3439894,

Sì, esiste.
biocyberman,

Non ho problemi ad usare fstab, tuttavia uso sempre almeno i primi quattro campi. Vedo che manchi il terzo campo, (fs_vfstype), nel tuo commento. Lo stai omettendo fstab? Dovresti modificare la tua domanda e mostrare esattamente cosa hai provato fstabe quale editor hai usato. Detto questo, nessuno dei miei punti di mount è diverso da quello predefinito / Volumesper il quale noneè impostato. Proverò una volta che vedrò la tua modifica e il punto di montaggio che stai tentando.
user3439894,

Risposte:


17

Quando si utilizza OS X, in genere è consigliabile utilizzare le diskutilattività relative al disco.

TL; DR:

Per montare un volume / disco in base all'identificatore:

diskutil mount /dev/diskXsY          # mounts just that volume
diskutil mountDisk /dev/diskX        # mounts the whole disk

Per montare un volume tramite UUID:

diskutil mount [Volume/Partition UUID]

Per montare un volume per etichetta:

diskutil mount [label]

Spiegazione

Con diskutil, gli identificatori di nodo ( /dev/diskXsY) sono intercambiabili con gli UUID: in qualsiasi diskutiloperazione (come eject), è possibile specificare un UUID invece di un identificatore di nodo. Dalla pagina man:

DISPOSITIVI

Un parametro del dispositivo per uno qualsiasi dei comandi di cui sopra (eccetto dove esplicitamente richiesto diversamente) di solito può essere uno dei seguenti:

o L'identificatore del disco (vedi sotto). Qualsiasi voce del modulo del disco *, ad esempio disk1s9.

o La voce del nodo del dispositivo contenente l'identificatore del disco. Qualsiasi voce sotto forma di / dev / disk *, ad esempio / dev / disk2.

o Il punto di montaggio del volume. Qualsiasi voce sotto forma di / Volumes / *, ad esempio / Volumes / Untitled. Nella maggior parte dei casi, viene accettato anche un mount point "personalizzato", ad esempio / your / custom / mountpoint / qui.

o Il modulo URL di uno qualsiasi dei moduli punto di montaggio del volume sopra descritti. Ad esempio file: /// Volumes / Untitled o file: ///.

o Un UUID. Qualsiasi voce del modulo, ad esempio 11111111-2222-3333-4444-55555555555555. L'UUID può essere un UUID "multimediale" che IOKit inserisce in un nodo IOMedia come derivato, ad esempio, da un UUID di partizione di una mappa GPT, oppure può essere un UUID di set (LV) o membro (PV) di AppleRAID (o CoreStorage).

Da man diskutil, sezione "Dispositivi".


Ottenere questi identificatori / UUID / etichette è semplice, con uno dei seguenti comandi:

diskutil list                               # lists all connected volumes and their identifiers
diskutil info /dev/diskXsY | grep UUID      # gets the UUID of a connected volume

I valori restituiti da questi comandi dovrebbero essere simili ai seguenti:

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh SSD           499.4 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

$ diskutil info /dev/diskXsY | grep UUID
Volume UUID:              1F340CD7-G071-4218-98DG-2D08G89CC57C
Disk / Partition UUID:    76E7G531-G6C3-5E37-C11B-BCEEC67D12G4

Come mostrato sopra, l'identificatore può essere trovato dalla IDENTIFIERcolonna, l'etichetta dalla NAMEcolonna e l'UUID da entrambi i UUIDcampi (entrambi gli UUID monteranno il volume).

Per etichetta:

$ diskutil mount Recovery\ HD
Volume Recovery HD on Recovery HD mounted

Dall'UUID:

$ diskutil mount 67EG87EB-CB01-4ED9-082D-303F63CF6394
Volume Recovery HD on 67EG87EB-CB01-4ED9-082D-303F63CF6394 mounted

Per identificatore del disco:

$ diskutil mount /dev/disk0s3
Volume Recovery HD on /dev/disk0s3 mounted

aggiunta per la modifica alla domanda di OP: montaggio su un percorso personalizzato

Puoi farlo con diskutil mounte l' -mountPointopzione. Dalla pagina man:

mount [readOnly] [-mountPoint path] dispositivo

Montare un singolo volume. Se viene specificato readOnly, il file system viene montato in sola lettura, anche se il file system sottostante e / o il dispositivo e / o il supporto del volume supportano la scrittura; anche il superutente non può scrivergli; questo è lo stesso dell'opzione rdonly da montare (8). Se viene specificato un -mountPoint, quel percorso, anziché il percorso standard di / Volumes / VolumeName, verrà utilizzato come vista nel contenuto del file di volume; una directory in quel percorso deve già esistere.

Da man diskutil, sezione "Verbi".

La sintassi da montare su un mountpoint personalizzato è la seguente:

diskutil mount -mountPoint /path/to/custom/mountpoint [volume (identifier/UUID/label)]

Tieni presente che /path/to/custom/mountpoint deve essere una directory , proprio come con mount, e che l'identificatore / UUID / etichetta sono specifici del volume (ovvero /dev/diskXsYnon /dev/diskX). Non è possibile eseguire il montaggio su un mountpoint personalizzato diskutil mountDiske funziona solo con un singolo volume alla volta.


Grazie per la risposta, potresti controllare la sezione di aggiornamento nella mia domanda e indirizzarla?
biocyberman,

@biocyberman ha aggiornato la mia risposta. Se non affronta la tua aggiunta in modo appropriato, per favore fatemelo sapere
forse forse

2

Ecco cosa ho usato per montare un SSD esterno nella mia cartella Music che contiene automaticamente i miei file multimediali iTunes ogni volta che eseguo l'accesso. Non hai detto esattamente quale sia lo scopo del montaggio esterno, quindi alcuni di questi bit potrebbero non essere ciò di cui hai bisogno ma, di nuovo, potrebbe essere esattamente quello che stai cercando di fare.

Come menzionato nella tua domanda e nella risposta di @ maybemaybeharry, il mountcomando non supporta gli UUID, quindi diskutill'utilità consigliata. Tuttavia, il fstabfile non UUID di supporto in modo da poter memorizzare i parametri di montare in fstabpoi diskutilleggerà i parametri da fstabper montare l'unità.

  • In ~/Music/iTunes/, crea una cartella da utilizzare per il mountpoint. Ho usato SSD_Music.
  • Utilizzare sudo vifsper modificare il fstabfile, aggiungere quanto segue come singola riga (modifica per l'UUID e USERNAME come appropriato), quindi salvare / uscire. UUID=F8C88B2D-5412-343B-8969-254F3AC559B8 /Users/USERNAME/Music/iTunes/SSD_Music hfs rw,noauto,noowners,nobrowse 0 0

    • noauto = non montare l'unità durante l'avvio. Ho incontrato volte in cui l'unità è stata montata come root anziché come me, quindi è meglio aspettare fino al login.
    • noowners = Ignora la proprietà sul volume. Le autorizzazioni verranno ereditate dal mountpoint. Se non lo utilizzavo, il volume montato era di proprietà di root ma le sottodirectory erano di mia proprietà.
    • nobrowse = Non mostrare il disco nella barra laterale del Finder o sul desktop.
  • Eseguire il montaggio con diskutil mount F8C88B2D-5412-343B-8969-254F3AC559B8( Nota: non includere il UUID=prefisso in questo comando.
  • Speriamo che sia montato senza errori. Controlla con mountquale dovrebbe mostrare qualcosa di simile/dev/disk2s2 on /Users/USERNAME/Music/iTunes/SSD_Music (hfs, local, nodev, nosuid, journaled, noowners, nobrowse)
  • Se lo stai facendo per iTunes, devi creare un alias affinché la iTunes Mediacartella punti alla cartella sul disco montato.
    • Esci da iTunes se è in esecuzione
    • cd ~/Music/iTunes/
    • mv 'iTunes Media' 'iTunes Media-bak'
    • ln -s 'SSD_Music/iTunes Media' 'iTunes Media'
    • ditto 'iTunes Media-bak' 'iTunes Media'per copiare i file multimediali sulla nuova unità. Salta questo se lo hai già copiato.
  • Smonta il disco con diskutil unmount ~/Music/iTunes/SSD_Music

Ora che puoi montare l'unità tramite UUID, automatizziamola quando effettui l'accesso.

  • In ~/Library/LaunchAgents/, crea un nuovo file chiamatolocal.mount_SSD_Music.plist
  • Copia / incolla il seguente XML nel nuovo file, quindi salva / esci.

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Disabled</key>
        <false/>
        <key>KeepAlive</key>
        <false/>
        <key>Label</key>
        <string>local.mount_SSD_Music</string>
        <key>ProcessType</key>
        <string>Background</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/sbin/diskutil</string>
            <string>mount</string>
            <string>F8C88B2D-5412-343B-8969-254F3AC559B8</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    </dict>
    </plist>
    
  • Assicurarsi che l'unità sia smontata

  • Testare il montaggio utilizzando il nuovo plist LaunchAgent con launchctl load ~/Library/LaunchAgents/local.mount_SSD_Music.plist. Speriamo che sia tornato senza errori.

Quindi ora se si riavvia, l'unità esterna verrà montata automaticamente al momento dell'accesso.

Spero che sia di aiuto!


0

Sto combinando alcuni dei miei commenti in una risposta poiché ritengo che risolva il fstabproblema.

Come hai già scoperto, il mountcomando non può utilizzare UUIDo LABELdeve utilizzare l'identificatore del disco, ad es /dev/disk0s4. Inoltre come perhapsmaybeharry ha sottolineato che il metodo di OS X è quello di utilizzare diskutil. Per risolvere il tuo aggiornamento ... Comunque fstabpuoi usare UUIDo LABEL, basta guardare gli esempi nella pagina man per fstab. In un Terminale digitare fstabe quindi fare clic con il tasto destro su fstabe selezionare Apri pagina man. Leggilo nella sua interezza! :)

Non ho problemi ad usare fstab, tuttavia uso sempre almeno i primi quattro campi. Vedo che ti manca il terzo campo, (fs_vfstype), nel tuo commento. Lo stai omettendo fstab? Dovresti modificare la tua domanda e mostrare esattamente cosa hai provato fstabe quale editor hai usato.

Prova: UUID=1738336E-68DD-46B1-997E-57469CF0472D /mount/point hfs rw,auto dov'è /mount/pointuna directory preesistente.

Ho provato questo sul mio sistema usando il mio UUID, è il tuo UUIDnella linea che sto suggerendo di provare sopra.

Nota: si monterebbe sul punto di mount definito solo se includessi il terzo campo (fs_vfstype), altrimenti si monterebbe /Volumesanche se esistesse il secondo campo (fs_file).


Ho provato questo in precedenza e ho montato due volumi identici con UUID=... /mount/point hfs rw,autoEl Capitan: 1. / mount / point e 2. / Volumes.
klanomath,

@klanomath, non sei sicuro di cosa stai cercando di dire, a parte forse forse funziona come ho detto nella mia risposta? O stai dicendo che si monta due volte, non importa cosa? A proposito sto eseguendo OS X 10.8.5.
user3439894,

@klanomath, l'ho modificato, speriamo sia più chiaro. Ora tornando al tuo primo commento, stai dicendo che sotto OS X 10.11 verrà montato su un punto di montaggio personalizzato ma monterà anche un secondo punto di montaggio sul valore predefinito /Volumes, con solo una linea aggiunta a fstab?
user3439894,

Sì, questa è stata la mia esperienza. Ho scritto una risposta simile ma poi mi sono reso conto che il volume è stato mostrato due volte: sul Desktop (che è / Volumi) e nel punto di montaggio definito in fstab (che era / Utenti / utente / test)
klanomath

@klanomath, non ho mai visto la tua risposta, immagino tu l'abbia eliminata prima di aver visto questa domanda. Dal momento che sto eseguendo OS X 10.8.5 e non ho una macchina OS X 10.11.x da testare, non c'è molto altro che posso fare altro per eliminare anche la mia risposta.
user3439894,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.