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

14

Ottengo 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 utilizzando l'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 che utilizza il 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'identificativo del volume funziona

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

Aggiornamento:

Il mio obiettivo è mettere la riga mount in /etc/fstab perché voglio montare un volume su un punto di montaggio personalizzato.

    
posta biocyberman 17.04.2016 - 18:44
fonte

3 risposte

15

Quando usi OS X, è solitamente più consigliabile usare diskutil per le attività relative al disco.

TL; DR:

Per montare un volume / disco per 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 UUID: in qualsiasi operazione diskutil (come eject ), è possibile specificare un UUID anziché un identificatore di nodo. Dalla pagina man:

DEVICES

A device parameter to any of the above commands (except where explicitly required otherwise) can usually be any of the following:

o The disk identifier (see below). Any entry of the form of disk*, e.g. disk1s9.

o The device node entry containing the disk identifier. Any entry of the form of /dev/disk*, e.g. /dev/disk2.

o The volume mount point. Any entry of the form of /Volumes/*, e.g. /Volumes/Untitled. In most cases, a "custom" mount point e.g. /your/custom/mountpoint/here is also accepted.

o The URL form of any of the volume mount point forms described above. E.g. file:///Volumes/Untitled or file:///.

o A UUID. Any entry of the form of e.g. 11111111-2222-3333-4444-555555555555. The UUID can be a "media" UUID which IOKit places in an IOMedia node as derived from e.g. a GPT map's partition UUID, or it can be an AppleRAID (or CoreStorage) set (LV) or member (PV) UUID.

From man diskutil, section 'Devices'.

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 avere un aspetto simile al seguente:

$ 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 colonna IDENTIFIER , l'etichetta dalla colonna NAME e l'UUID dal campo UUID (l'UUID monterà il volume).

Per etichetta:

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

Per UUID:

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

Per identificativo del disco:

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

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

Puoi farlo con diskutil mount e l'opzione -mountPoint . Dalla pagina man:

mount [readOnly] [-mountPoint path] device

Mount a single volume. If readOnly is specified, then the file system is mounted read-only, even if the volume's underlying file system and/or device and/or media supports writing; even the super-user may not write to it; this is the same as the rdonly option to mount (8). If a -mountPoint is specified, then that path, rather than the standard path of /Volumes/VolumeName, will be used as the view into the volume file con- tent; a directory at that path must already exist.

From man diskutil, section 'Verbs'.

La sintassi da montare su un punto di montaggio personalizzato è la seguente:

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

Ricorda che /path/to/custom/mountpoint deve essere una directory , proprio come con mount , e che il tuo identificatore / UUID / etichetta sono specifici per il volume (cioè /dev/diskXsY non /dev/diskX ). Il montaggio su un punto di montaggio personalizzato non può essere eseguito con diskutil mountDisk e funziona solo con un singolo volume alla volta.

    
risposta data 02.05.2016 - 06:19
fonte
2

Ecco cosa ho usato per montare un SSD esterno nella mia cartella Music che contiene automaticamente i miei file multimediali di iTunes ogni volta che effettuo il login. Non hai detto esattamente quale sia lo scopo del mount esterno, quindi alcuni di questi i 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 comando mount non supporta gli UUID quindi diskutil è l'utilità consigliata. Tuttavia, il file fstab supporta gli UUID in modo che tu possa memorizzare i parametri di montaggio in fstab , quindi diskutil leggerà i parametri da fstab per montare l'unità.

  • In ~/Music/iTunes/ , crea una cartella da utilizzare per il punto di montaggio. Ho usato SSD_Music .
  • Usa sudo vifs per modificare il file fstab , aggiungi il seguente come una singola riga (modifica per UUID e USERNAME come appropriato) quindi salva / esci. 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 dei momenti in cui l'unità è stata montata come root invece che come me, quindi è meglio aspettare fino al login.
    • noowners = Ignora la proprietà sul volume. Le autorizzazioni saranno ereditate dal punto di montaggio. Se non l'ho usato, il volume montato era di proprietà di root ma le sottodirectory erano di mia proprietà.
    • nobrowse = Non mostrare il disco nella barra laterale o nel desktop del Finder.
  • Esegui il montaggio con diskutil mount F8C88B2D-5412-343B-8969-254F3AC559B8 ( Nota: non includere il prefisso UUID= in questo comando.
  • Spero che sia montato senza errori. Controllalo con mount che dovrebbe mostrare qualcosa come /dev/disk2s2 on /Users/USERNAME/Music/iTunes/SSD_Music (hfs, local, nodev, nosuid, journaled, noowners, nobrowse)
  • Se stai facendo questo per iTunes, devi creare un alias per la cartella iTunes Media in modo che 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 nella nuova unità. Salta questo se l'hai già copiato.
  • Smonta il disco con diskutil unmount ~/Music/iTunes/SSD_Music

Ora che puoi montare l'unità con UUID, automatizziamola quando esegui l'accesso.

  • In ~/Library/LaunchAgents/ , crea un nuovo file chiamato local.mount_SSD_Music.plist
  • Copia / incolla il seguente codice 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>
    
  • Assicurati che l'unità sia smontata

  • Prova il montaggio usando il nuovo plist LaunchAgent con launchctl load ~/Library/LaunchAgents/local.mount_SSD_Music.plist . Spero che sia montato senza errori di nuovo.

Quindi ora se si riavvia, l'unità esterna verrà automaticamente montata quando si accede.

Spero che questo aiuti!

    
risposta data 01.06.2016 - 20:29
fonte
0

Sto combinando alcuni dei miei commenti in una risposta in quanto ritengo che risolva il problema di fstab .

Come hai già scoperto, il comando mount non può utilizzare UUID o LABEL e deve utilizzare l'identificatore del disco, ad es. %codice%. Inoltre, come forse mayayharry ha sottolineato che il metodo OS X deve utilizzare /dev/disk0s4 . Per indirizzare il tuo aggiornamento ... Tuttavia diskutil può utilizzare fstab o UUID , basta guardare gli esempi nella pagina man per LABEL . In un tipo di terminale fstab , quindi fai clic con il pulsante destro del mouse su fstab e seleziona Apri pagina man. Leggilo nella sua interezza! :)

Non ho problemi nell'usare fstab , tuttavia uso sempre almeno i primi quattro campi. Vedo che manchi il terzo campo, (fs_vfstype), nel tuo commento. Lo stai omettendo in fstab ? Dovresti modificare la tua domanda e mostrare esattamente ciò che hai provato in fstab e quale editor hai utilizzato.

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

L'ho provato sul mio sistema usando il mio /mount/point , è il tuo UUID nella riga che sto suggerendo di provare sopra.

Nota: Verrà montato solo sul punto di montaggio definito se ho incluso il terzo campo, (fs_vfstype), altrimenti è montato in UUID anche se il secondo campo, (fs_file), esisteva .

    
risposta data 02.05.2016 - 14:50
fonte

Leggi altre domande sui tag