¿Cómo montar el disco por UUID o LABEL en OS X El Capitan?

13

Obtengo el UUID y la etiqueta de un disco de 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 usando la etiqueta de volumen no funciona:

$ 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 utilizando el volumen UUID no funciona con o sin comillas:

$ 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 usando el identificador de volumen funciona

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

Actualización:

Mi objetivo es poner la línea mount en /etc/fstab ya que quiero montar un volumen en un punto de montaje personalizado.

    
pregunta biocyberman 17.04.2016 - 18:44

3 respuestas

15

Cuando se usa OS X, generalmente es más recomendable usar diskutil para actividades relacionadas con el disco.

TL; DR:

Para montar un volumen / disco por identificador:

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

Para montar un volumen por UUID:

diskutil mount [Volume/Partition UUID]

Para montar un volumen por etiqueta:

diskutil mount [label]

Explicación

Con diskutil , los identificadores de nodo ( /dev/diskXsY ) son intercambiables con UUID: en cualquier operación diskutil (como eject ), se puede especificar un UUID en lugar de un identificador de nodo. Desde la página del manual:

  

DEVICES

     

Un parámetro de dispositivo para cualquiera de los comandos anteriores (excepto donde   explícitamente requerido de lo contrario) generalmente puede ser cualquiera de los siguientes:

     

o El identificador de disco (ver más abajo). Cualquier entrada de la forma de disco *, por ejemplo, disk1s9.

     

o La entrada de nodo del dispositivo que contiene el identificador de disco. Cualquier entrada de la forma de / dev / disk *, p. Ej. / dev / disk2.

     

o El punto de montaje de volumen. Cualquier entrada de la forma de / Volumes / *, p. Ej. / Volúmenes / Sin título. En la mayoría de los casos, un montaje "personalizado"   punto por ejemplo                  / su / custom / mountpoint / aquí también se acepta.

     

o El formulario de URL de cualquiera de los formularios de puntos de montaje de volumen descritos anteriormente. P.ej. archivo: /// Volúmenes / Sin título o archivo: ///.

     

o A UUID. Cualquier entrada de la forma de por ej. 11111111-2222-3333-4444-555555555555. El UUID puede ser un UUID "multimedia"   que IOKit coloca en un nodo IOMedia                  como se deriva de, por ejemplo, un UUID de partición de un mapa GPT, o puede ser un conjunto de AppleRAID (o CoreStorage) (LV) o un miembro (PV).

     

De man diskutil , sección "Dispositivos".

La obtención de estos identificadores / UUID / etiquetas es simple, con cualquiera de los siguientes comandos:

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

Los valores devueltos de estos comandos deberían tener un aspecto similar al siguiente:

$ 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

Como se muestra arriba, el identificador se puede encontrar en la columna IDENTIFIER , la etiqueta en la columna NAME y el UUID en el campo UUID (cualquiera de los dos UUID montará el volumen).

Por etiqueta:

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

Por UUID:

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

Por identificador de disco:

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

adición para editar la pregunta de OP: montaje en una ruta personalizada

Puedes hacer esto con diskutil mount y la opción -mountPoint . Desde la página del manual:

  

montar [readOnly] [-mountPoint path] device

     

Montar un solo volumen. Si se especifica readOnly, entonces el sistema de archivos se monta solo para lectura, incluso si el sistema de archivos subyacente del volumen y / o el dispositivo y / o los medios admiten la escritura; incluso el superusuario no puede escribir en él; esto es lo mismo que la opción rdonly para montar (8). Si se especifica un -mountPoint, entonces esa ruta, en lugar de la ruta estándar de / Volumes / VolumeName, se usará como la vista en el contenido del archivo de volumen; un directorio en esa ruta ya debe existir.

     

De man diskutil , sección 'Verbos'.

La sintaxis para montar en un punto de montaje personalizado es la siguiente:

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

Tenga en cuenta que /path/to/custom/mountpoint debe ser un directorio , al igual que con mount , y que su identificador / UUID / label son específicos del volumen (es decir, /dev/diskXsY no /dev/diskX ). El montaje en un punto de montaje personalizado no se puede realizar con diskutil mountDisk , y solo funciona con un solo volumen a la vez.

    
respondido por el perhapsmaybeharry 02.05.2016 - 06:19
1

Esto es lo que he estado usando para montar un SSD externo en mi carpeta de Música que contiene mis archivos multimedia de iTunes automáticamente cada vez que inicio sesión. No dijo exactamente cuál es el propósito del soporte externo, por lo que algunos de estos Los bits pueden no ser lo que necesitas, pero, de nuevo, podría ser exactamente lo que estás tratando de hacer.

Como se mencionó en su pregunta y en la respuesta de @tal vez puede haber una respuesta, el comando mount no admite UUID, por lo que diskutil es la utilidad recomendada. Sin embargo, el archivo fstab admite UUID, por lo que puede almacenar los parámetros de montaje en fstab y luego diskutil leerá los parámetros de fstab para montar su unidad.

  • En ~/Music/iTunes/ , cree una carpeta que se usará para el punto de montaje. Utilicé SSD_Music .
  • Use sudo vifs para editar el archivo fstab , agregue lo siguiente como una sola línea (edición para el UUID y USERNAME según corresponda) luego guarde / salga. UUID=F8C88B2D-5412-343B-8969-254F3AC559B8 /Users/USERNAME/Music/iTunes/SSD_Music hfs rw,noauto,noowners,nobrowse 0 0

    • noauto = no montar la unidad durante el arranque. He encontrado momentos en los que la unidad se montó como root en lugar de como yo, por lo que es mejor esperar hasta que inicie sesión.
    • noowners = Ignora la propiedad en el volumen. Los permisos serán heredados del punto de montaje. Si no usé esto, el volumen montado era propiedad de root pero los subdirectorios eran de mi propiedad.
    • nobrowse = No mostrar el disco en la barra lateral o en el escritorio del Finder.
  • Realice el montaje con diskutil mount F8C88B2D-5412-343B-8969-254F3AC559B8 ( Nota: No incluya el prefijo UUID= en este comando.
  • Esperemos que se haya montado sin errores. Compruébalo con mount que debería mostrar algo como /dev/disk2s2 on /Users/USERNAME/Music/iTunes/SSD_Music (hfs, local, nodev, nosuid, journaled, noowners, nobrowse)
  • Si está haciendo esto para iTunes, debe crear un alias para la carpeta iTunes Media para que apunte a la carpeta en el disco montado.
    • Sal de iTunes si se está ejecutando
    • cd ~/Music/iTunes/
    • mv 'iTunes Media' 'iTunes Media-bak'
    • ln -s 'SSD_Music/iTunes Media' 'iTunes Media'
    • ditto 'iTunes Media-bak' 'iTunes Media' para copiar sus medios a la nueva unidad. Omita esto si ya lo ha copiado.
  • Desmonte el disco con diskutil unmount ~/Music/iTunes/SSD_Music

Ahora que puede montar la unidad por UUID, automaticemos cuando inicie sesión.

  • En ~/Library/LaunchAgents/ , crea un nuevo archivo llamado local.mount_SSD_Music.plist
  • Copie / pegue el siguiente XML en el nuevo archivo, luego guarde / salga.

    <?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>
    
  • Asegúrese de que la unidad no esté montada

  • Pruebe el montaje con la nueva lista de LaunchAgent con launchctl load ~/Library/LaunchAgents/local.mount_SSD_Music.plist . Esperemos que vuelva a montarse sin errores.

Entonces, si reinicia, la unidad externa se montará automáticamente cuando inicie sesión.

Espero que esto ayude!

    
respondido por el Insomniac Software 01.06.2016 - 20:29
0

Combino algunos de mis comentarios en una respuesta, ya que creo que aborda el problema fstab .

Como ya descubrió, el comando mount no puede usar UUID o LABEL y debe usar el Identificador de disco, por ejemplo. %código%. Además, como tal vez quizás Harry señaló que el método OS X es utilizar /dev/disk0s4 . Para abordar su actualización ... Sin embargo, diskutil puede usar fstab o UUID , solo mire los ejemplos en la página del manual para LABEL . En una Terminal, escriba fstab y luego haga clic con el botón derecho en fstab y seleccione Abrir página de manual. Léelo en su totalidad! :)

No tengo problemas al usar fstab , sin embargo, siempre uso al menos los primeros cuatro campos. Veo que te estás perdiendo el tercer campo, (fs_vfstype), en tu comentario. ¿Lo estás omitiendo en fstab ? Debes editar tu pregunta y mostrar exactamente lo que has probado en fstab y qué editor has usado.

Intente: fstab donde UUID=1738336E-68DD-46B1-997E-57469CF0472D /mount/point hfs rw,auto es un directorio preexistente.

He probado esto en mi sistema usando mi /mount/point , es tu UUID en la línea que te estoy sugiriendo que pruebes arriba.

Nota: Solo se montaría en el punto de montaje definido si incluyera el tercer campo, (fs_vfstype); de lo contrario, se montaría en UUID aunque el segundo campo (fs_file) existiera .

    
respondido por el user3439894 02.05.2016 - 14:50

Lea otras preguntas en las etiquetas