Monta tutte le partizioni montabili di un disco rimovibile con diskutil

1

Ho un'unità USB contenente 2 partizioni FAT che vengono montate automaticamente quando l'unità è collegata. Se eseguo diskutil unmounDisk <device> e poi diskutil mountDisk <device> mi aspetto di tornare sullo stato iniziale.

$ 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

Vedi /dev/disk2 . Le due partizioni FAT sono attualmente montate:

$ 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)

Ora lasciamo smontare:

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

Le partizioni erano effettivamente smontate:

$ 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)

Ora proviamo a montare di nuovo:

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

L'operazione ha esito positivo, in base a diskutil , ma le partizioni non sono ancora montate:

$ 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)

È questo il comportamento previsto? In tal caso, qual è il modo corretto di ripristinare un disco di nuovo?

Sono su OS X 10.11.3.

EDIT 1: fdisk output:

$ 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
    
posta jviotti 23.03.2016 - 19:01
fonte

2 risposte

1

Anche se non posso verificarlo, penso che il problema sia legato al flag nodev delle partizioni. In teoria il flag nodev non consente a un utente non root di creare un nodo di dispositivo come / dev / disk2s5. Quindi devi anteporre sudo per rimontare le partizioni montabili del disco.

Il seguente dovrebbe funzionare:

  • Crea punti di montaggio: mkdir mnt1 e mkdir mnt2
  • Monta le partizioni

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

Ricontrollato con una vera e propria pen drive:

Usa semplicemente:

sudo diskutil mountDisk /dev/disk2

invece di diskutil mountDisk /dev/disk2

    
risposta data 23.03.2016 - 23:18
fonte
1

Fondamentalmente, il comando diskutil non ama le partizioni con l'id di 0C e, quindi, non le monterà.

Ecco il test che ho eseguito.

  1. Usando Yosemite OS X 10.10.5, ho partizionato un flash drive da 4 GB uno schema MBR per avere 5 partizioni FAT di dimensioni uguali. Questo la funzione non è più consentita da El Capitan.
  2. Unità flash rimossa, unità flash inserita, disco non montato utilizzando diskutil e disco montato usando diskutil . Tutto funziona bene Nessun problema.
  3. Avvia da El Capitan OS X 10.11.4.
  4. Unità flash rimossa, unità flash inserita, disco non montato utilizzando diskutil e disco montato usando diskutil . Tutto funziona bene. Nessun problema.

Una differenza che ho notato. Il tuo output fdisk mostra l'id per le partizioni formattate FAT come 0C . Yosemite ha creato queste partizioni, sul mio Mac, usando l'id di 0B . Ho usato il comando fdisk per cambiare l'id della partizione prima in 0C . Ora quando disinstalla e monto l'unità flash usando il comando diskutil , la prima partizione non viene montata. I restanti 4 fanno.

Ironia della sorte, se uso il comando

diskutil mount /dev/disk1s1

la prima partizione, sul flash drive, si monta. (Sul mio computer, non sto utilizzando l'archiviazione principale, quindi, l'unità flash è disk1 .)

    
risposta data 23.03.2016 - 23:02
fonte

Leggi altre domande sui tag