Monte todas las particiones montables de un disco extraíble con diskutil

1

Tengo una unidad USB que contiene 2 particiones FAT que se montan automáticamente cuando la unidad está enchufada. Si ejecuto diskutil unmounDisk <device> y luego diskutil mountDisk <device> esperaría volver al estado inicial.

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            250.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +249.8 GB   disk1
                                 Logical Volume on disk0s2
                                 DCD23031-6322-4269-A142-CD36C8FD95D7
                                 Unlocked Encrypted
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *7.8 GB     disk2
   1:             Windows_FAT_32 flash-boot              1.7 GB     disk2s1
   2:                      Linux                         197.1 MB   disk2s2
   3:                      Linux                         197.1 MB   disk2s3
   4:             Windows_FAT_32 flash-conf              21.0 MB    disk2s5
   5:                      Linux                         4.2 MB     disk2s6

Ver /dev/disk2 . Las dos particiones FAT están montadas actualmente:

$ mount
/dev/disk1 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk2s5 on /Volumes/flash-conf (msdos, local, nodev, nosuid, noowners)
/dev/disk2s1 on /Volumes/flash-boot (msdos, local, nodev, nosuid, noowners)

Ahora desmontamos:

$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful

Las particiones fueron desmontadas:

$ mount
/dev/disk1 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, no browse)

Ahora intentemos volver a montar:

$ diskutil mountDisk /dev/disk2
Volume(s) mounted successfully

La operación se realiza correctamente, según diskutil , pero las particiones aún no están montadas:

$ mount
/dev/disk1 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)

¿Es este el comportamiento esperado? Si es así, ¿cuál es la forma correcta de volver a montar un disco?

Estoy en OS X 10.11.3.

EDIT 1: fdisk de salida:

$ sudo fdisk /dev/disk2
Password:
Disk: /dev/disk2        geometry: 951/255/63 [15280192 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
*1: 0C   64   0   1 - 1023   3  32 [      8192 -    3276800] Win95 FAT32L
 2: 83 1023   3  32 - 1023   3  32 [   3284992 -     385024] Linux files*
 3: 83 1023   3  32 - 1023   3  32 [   3670016 -     385024] Linux files*
 4: 0F 1023   3  32 - 1023   3  32 [   4055040 -      65536] Extended LBA
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: 0C 1023   3  32 - 1023   3  32 [   4063232 -      40960] Win95 FAT32L
 2: 05 1023   3  32 - 1023   3  32 [   4112256 -       8320] Extended DOS
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: 83 1023   3  32 - 1023   3  32 [   4112384 -       8192] Linux files*
 2: 00    0   0   0 -    0   0   0 [         0 -          0] unused
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused
    
pregunta jviotti 23.03.2016 - 19:01

2 respuestas

1

Aunque no puedo verificar esto, creo que el problema está relacionado con el indicador nodev de las particiones. En teoría, el indicador nodev no permite que un usuario no root cree un nodo de dispositivo como / dev / disk2s5. Por lo tanto, debe anteponer sudo para volver a montar las particiones del disco que se pueden montar.

Lo siguiente debería funcionar:

  • Crear puntos de montaje: mkdir mnt1 y mkdir mnt2
  • Montar las particiones

    sudo mount -t msdos /dev/disk2s1 ~/mnt1 
    #and respectively for the 2nd partition
    sudo mount -t msdos /dev/disk2s5 ~/mnt2
    

Se volvió a verificar con una unidad de disco USB real:

Simplemente use:

sudo diskutil mountDisk /dev/disk2

en lugar de diskutil mountDisk /dev/disk2

    
respondido por el klanomath 23.03.2016 - 23:18
1

Básicamente, al comando diskutil no le gustan las particiones con el id de 0C y, por lo tanto, no las montará.

Aquí está la prueba que realicé.

  1. Usando Yosemite OS X 10.10.5, particioné una unidad flash de 4 GB usando un esquema MBR para tener 5 particiones formateadas FAT de igual tamaño. Esta La función ya no está permitida bajo El Capitán.
  2. Unidad flash extraída, unidad flash insertada, disco sin montar usando diskutil , y disco montado usando diskutil . Todo funciona bien. No hay problemas.
  3. Arranque en El Capitan OS X 10.11.4.
  4. Unidad flash extraída, unidad flash insertada, disco sin montar usando diskutil , y disco montado usando diskutil . Todo funciona multa. No hay problemas.

Una diferencia que hice notar. La salida de fdisk muestra el id para las particiones formateadas FAT como 0C . Yosemite creó estas particiones, en mi Mac, usando el id de 0B . Usé el comando fdisk para cambiar el id de la partición first a 0C . Ahora, al desmontar y montar la unidad flash utilizando el comando diskutil , la primera partición no se monta. Los 4 restantes lo hacen.

Irónicamente, si uso el comando

diskutil mount /dev/disk1s1

la primera partición, en la unidad flash, se monta. (En mi computadora, no estoy usando el almacenamiento central, por lo tanto, la unidad flash es disk1 .)

    
respondido por el David Anderson 23.03.2016 - 23:02

Lea otras preguntas en las etiquetas