19 votes

Comment monter un disque par UUID ou LABEL dans OS X El Capitan ?

Je récupère l'UUID et le label d'un disque à partir 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 L'utilisation de l'étiquette du volume ne fonctionne pas :

$ 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'utilisation de l'UUID du volume ne fonctionne pas avec ou sans guillemets :

$ 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 l'utilisation de l'identifiant de volume fonctionne

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

Mise à jour :

Mon but est de mettre le mount ligne dans /etc/fstab car je veux monter un volume sur un point de montage personnalisé.

18voto

F0RR Points 337

Lorsque vous utilisez OS X, il est généralement plus judicieux d'utiliser diskutil pour les activités liées au disque.

TL;DR :

Pour monter un volume/disque par identifiant :

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

Pour monter un volume par UUID :

diskutil mount [Volume/Partition UUID]

Pour monter un volume par étiquette :

diskutil mount [label]

Explication

Avec diskutil les identifiants de nœuds ( /dev/diskXsY ) sont interchangeables avec les UUID : dans toute diskutil (par exemple eject ), un UUID peut être spécifié à la place d'un identifiant de nœud. De la page de manuel :

DISPOSITIFS

Un paramètre de périphérique à l'une des commandes ci-dessus (sauf si cela est explicitement requis autrement) peut généralement être l'un des suivants :

o L'identifiant du disque (voir ci-dessous). Toute entrée de la forme disk*, par exemple disk1s9.

o L'entrée du nœud de périphérique contenant l'identifiant du disque. Toute entrée de la forme /dev/disk*, par exemple /dev/disk2.

o Le point de montage du volume. Toute entrée de la forme /Volumes/*, par exemple /Volumes/Untitled. Dans la plupart des cas, un point de montage personnalisé, par ex. /votre/custom/mountpoint/here est également accepté.

o La forme URL de l'une des formes de point de montage de volume décrites ci-dessus. Par exemple, file:///Volumes/Untitled ou file:///.

o Un UUID. Toute entrée de la forme de, par exemple, 11111111-2222-3333-4444-555555555555. L'UUID peut être un UUID "média". que IOKit place dans un noeud IOMedia dérivé par exemple de l'UUID de la partition d'une carte GPT, ou peut être un UUID d'ensemble (LV) ou de membre (PV) AppleRAID (ou CoreStorage).

De man diskutil , section 'Appareils'.


L'obtention de ces identifiants/UUIDs/labels est simple, avec l'une des commandes suivantes :

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

Les valeurs renvoyées par ces commandes devraient ressembler à ce qui suit :

$ 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

Comme indiqué ci-dessus, l'identifiant peut être trouvé à partir de l'élément IDENTIFIER l'étiquette de la colonne NAME et l'UUID de la colonne UUID (l'un ou l'autre UUID montera le volume).

Par étiquette :

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

Par UUID :

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

Par identifiant de disque :

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

ajout pour modification à la question de l'OP : montage sur un chemin personnalisé

Vous pouvez le faire avec diskutil mount et le -mountPoint option. De la page de manuel :

mount [readOnly] [-mountPoint path] device

Monter un seul volume. Si readOnly est spécifié, alors le système de fichiers est monté en lecture seule, même si le système de fichiers et/ou le périphérique et/ou le support sous-jacent du volume supporte l'écriture ; même le super-utilisateur ne peut pas y écrire ; c'est la même chose que l'option rdonly de mount (8). Si un -mountPoint est spécifié, alors ce chemin, plutôt que le chemin standard de /Volumes/VolumeName, sera utilisé comme vue dans le con- tente de fichiers du volume ; un répertoire à ce chemin doit déjà exister.

De man diskutil , section 'Verbes'.

La syntaxe pour monter sur un point de montage personnalisé est la suivante :

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

N'oubliez pas que /path/to/custom/mountpoint doit être un répertoire comme avec mount et que l'identifiant, l'UUID et le label sont spécifiques au volume (c'est-à-dire qu'il s'agit de l'identifiant de l'utilisateur). /dev/diskXsY no /dev/diskX ). Le montage sur un point de montage personnalisé ne peut pas être effectué avec la fonction diskutil mountDisk et ne fonctionne qu'avec un seul volume à la fois.

4voto

Insomniac Software Points 1843

Voici ce que j'ai utilisé pour monter un SSD externe dans mon dossier Musique qui contient mes fichiers multimédia iTunes automatiquement à chaque fois que je me connecte. Vous n'avez pas dit exactement quel est le but du montage externe, donc certains de ces éléments peuvent ne pas correspondre à vos besoins, mais il se peut aussi que ce soit exactement ce que vous essayez de faire.

Comme mentionné dans votre question et dans la réponse de @perhapsmaybeharry, la mount ne supporte pas les UUIDs donc diskutil est l'utilitaire recommandé. Cependant, le fstab supporte les UUIDs, vous pouvez donc stocker les paramètres de montage dans le fichier fstab puis diskutil lira les paramètres de fstab pour monter votre disque.

  • Sur ~/Music/iTunes/ créez un dossier qui sera utilisé pour le point de montage. J'ai utilisé SSD_Music .
  • Utilisez sudo vifs pour modifier le fstab ajoutez ce qui suit sur une seule ligne (en modifiant l'UUID et le USERNAME comme il convient), puis sauvegardez et quittez. UUID=F8C88B2D-5412-343B-8969-254F3AC559B8 /Users/USERNAME/Music/iTunes/SSD_Music hfs rw,noauto,noowners,nobrowse 0 0

    • noauto = ne pas monter le disque pendant le démarrage. J'ai rencontré des cas où le disque était monté en tant que Root au lieu de moi, il est donc préférable d'attendre que vous vous connectiez.
    • noowners = Ignorer la propriété sur le volume. Les permissions seront héritées du point de montage. Si je n'avais pas utilisé cette option, le volume monté appartiendrait à Root mais les sous-répertoires m'appartiendraient.
    • nobrowse = Ne pas afficher le disque dans la barre latérale du Finder ou sur le bureau.
  • Effectuez le montage avec diskutil mount F8C88B2D-5412-343B-8969-254F3AC559B8 ( Note : Ne pas inclure le UUID= dans cette commande.
  • Espérons qu'il soit monté sans erreur. Vérifiez-le avec mount qui devrait montrer quelque chose comme /dev/disk2s2 on /Users/USERNAME/Music/iTunes/SSD_Music (hfs, local, nodev, nosuid, journaled, noowners, nobrowse)
  • Si vous faites cela pour iTunes, vous devez créer un alias pour le fichier iTunes Media pour pointer vers le dossier sur le disque monté.
    • Quitter iTunes s'il est en cours d'exécution
    • cd ~/Music/iTunes/
    • mv 'iTunes Media' 'iTunes Media-bak'
    • ln -s 'SSD_Music/iTunes Media' 'iTunes Media'
    • ditto 'iTunes Media-bak' 'iTunes Media' pour copier vos médias sur le nouveau disque. Ignorez cette étape si vous l'avez déjà copié.
  • Démontez le disque avec diskutil unmount ~/Music/iTunes/SSD_Music

Maintenant que vous pouvez monter le lecteur par UUID, automatisons-le lorsque vous vous connectez.

  • Sur ~/Library/LaunchAgents/ créez un nouveau fichier appelé local.mount_SSD_Music.plist

  • Copiez/collez le XML suivant dans le nouveau fichier puis enregistrez/quittez.

    <?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>
  • Assurez-vous que le lecteur est démonté

  • Testez le montage en utilisant le nouveau plist de LaunchAgent avec launchctl load ~/Library/LaunchAgents/local.mount_SSD_Music.plist . Espérons qu'il se monte à nouveau sans erreur.

Donc maintenant, si vous redémarrez, le disque externe sera automatiquement monté lorsque vous vous connecterez.

J'espère que cela vous aidera !

0voto

user3439894 Points 52496

Je combine une partie de mon commentaire dans une réponse car je pense qu'elle aborde le fstab question.

Comme vous l'avez déjà découvert, le mount ne peut pas utiliser UUID o LABEL et doit utiliser l'identificateur de disque, par ex. /dev/disk0s4 . De plus, comme peut-êtremaybeharry l'a souligné, la méthode d'OS X consiste à utiliser diskutil . Pour répondre à votre mise à jour... Cependant fstab peut utiliser le UUID o LABEL il suffit de regarder les exemples dans la page de manuel de fstab . Dans un type de terminal fstab puis cliquez avec le bouton droit de la souris sur fstab et sélectionnez Ouvrir la page de l'homme. Lisez-le dans son intégralité ! :)

Je n'ai aucun problème à utiliser fstab Cependant, j'utilise toujours au moins les quatre premiers champs. Je vois que vous oubliez le troisième champ, (fs_vfstype), dans votre commentaire. L'omettez-vous dans fstab ? Vous devriez éditer votre question et montrer exactement ce que vous avez essayé en fstab et quel éditeur vous avez utilisé.

Essayez : UUID=1738336E-68DD-46B1-997E-57469CF0472D /mount/point hfs rw,auto/mount/point est un répertoire préexistant.

Je l'ai testé sur mon système en utilisant ma carte de crédit. UUID c'est votre UUID dans la ligne que je vous suggère d'essayer ci-dessus.

Note : Il ne se monte sur le point de montage défini que si j'ai inclus le troisième champ (fs_vfstype). /Volumes même si le deuxième champ, (fs_file), existait.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X