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

17

J'obtiens l'UUID et l'étiquette d'un disque 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 de 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 du volume UUID 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 objectif est de mettre la mountligne /etc/fstabcomme je veux monter un volume sur un point de montage personnalisé.

biocyberman
la source
Comme vous l'avez déjà découvert, la mountcommande ne peut pas utiliser UUIDou LABELet doit utiliser l'identificateur de disque, par exemple /dev/disk0s4. De plus, comme peut-être peut-être l'a souligné, la méthode OS X est à utiliser diskutil. Pour répondre à votre mise à jour ... Cependant, vous fstabpouvez utiliser le UUIDou LABEL, regardez simplement les exemples dans la page de manuel pour fstab. Dans un type de terminal fstab, puis cliquez avec le bouton droit sur fstabet sélectionnez Ouvrir la page de manuel, puis lisez-la dans son intégralité! :)
user3439894
@ user3439894 J'ai essayé une ligne fstabcomme celle-ci :, et j'ai UUID=<volume_uuid> /mount/point autocouru sudo mount -a. La même erreur s'est produite:... mount_hfs: No such file or directory
biocyberman
Le deuxième champ, (fs_file), le point de montage, doit déjà exister, n'est-ce pas?
user3439894
Oui, ça existe.
biocyberman
Je n'ai aucun problème à utiliser fstab, mais j'utilise toujours au moins les quatre premiers champs. Je vois que vous manquez le troisième champ, (fs_vfstype), dans votre commentaire. L'omettez-vous fstab? Vous devez modifier votre question et montrer exactement ce que vous avez essayé fstabet l'éditeur que vous avez utilisé. Cela dit, aucun de mes points de montage n'est autre que le / par défaut Volumesqui noneest défini. Je testerai une fois que je verrai votre modification et le point de montage que vous essayez.
user3439894

Réponses:

17

Lorsque vous utilisez OS X, il est généralement préférable de l'utiliser diskutilpour 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 noeud ( /dev/diskXsY) sont interchangeables avec les UUID: dans toute diskutilopération (telle que eject), un UUID peut être spécifié à la place d'un identifiant de noeud. Depuis la page de manuel:

DISPOSITIFS

Un paramètre de périphérique pour l'une des commandes ci-dessus (sauf indication contraire explicite) peut généralement être l'un des suivants:

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

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

o Le point de montage du volume. Toute entrée sous la forme de / Volumes / *, par exemple / Volumes / Sans titre. Dans la plupart des cas, un point de montage "personnalisé", par exemple / votre / personnalisé / point de montage / ici, est également accepté.

o La forme URL de l'une des formes de point de montage de volume décrites ci-dessus. Ex: fichier: /// Volumes / Sans titre ou fichier: ///.

o UN UUID. Toute entrée du formulaire, par exemple 11111111-2222-3333-4444-555555555555. L'UUID peut être un UUID «média» que IOKit place dans un nœud IOMedia comme dérivé, par exemple, d'un UUID de partition d'une carte GPT, ou il peut être un ensemble (LV) AppleRAID (ou CoreStorage) ou un UUID de membre (PV).

De man diskutil, section 'Appareils'.


L'obtention de ces identifiants / UUID / étiquettes 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 doivent ressembler à ceci:

$ 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é dans la IDENTIFIERcolonne, l'étiquette dans la NAMEcolonne et l'UUID dans l'un ou l'autre UUIDchamp (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 OP: montage sur un chemin personnalisé

Vous pouvez le faire avec diskutil mountet l' -mountPointoption. Depuis la page de manuel:

montez le périphérique [readOnly] [-mountPoint path]

Montez un seul volume. Si readOnly est spécifié, 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 prennent en charge l'écriture; même le super-utilisateur peut ne pas y écrire; c'est la même chose que l'option rdonly à monter (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 contenu du fichier de volume; un répertoire sur 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)]

Gardez à l'esprit qu'il /path/to/custom/mountpoint doit s'agir d'un répertoire , tout comme avec mount, et que votre identifiant / UUID / label est spécifique au volume (c'est-à-dire /dev/diskXsYpas /dev/diskX). Le montage sur un point de montage personnalisé ne peut pas être effectué avec diskutil mountDisk, et ne fonctionne qu'avec un seul volume à la fois.

peut-être peut-être
la source
Merci pour la réponse, pourriez-vous vérifier la section de mise à jour dans ma question et y répondre?
biocyberman
@biocyberman a mis à jour ma réponse. S'il ne traite pas votre ajout de manière appropriée, veuillez me le faire savoir
peut-être
2

Voici ce que j'ai utilisé pour monter un SSD externe dans mon dossier Musique qui contient automatiquement mes fichiers multimédias iTunes chaque fois que je me connecte. Vous n'avez pas dit exactement quel était le but du montage externe, donc certains de ces bits pourraient ne pas être ce dont vous avez besoin mais là encore, ce pourrait être exactement ce que vous essayez de faire.

Comme mentionné dans votre question et dans la réponse de @ Maybemaybeharry, la mountcommande ne prend pas en charge les UUID, tout diskutilcomme l'utilitaire recommandé. Cependant, le fstabfichier prend en charge les UUID afin que vous puissiez stocker les paramètres de montage dans fstabpuis diskutillira les paramètres de fstabpour monter votre lecteur.

  • Dans ~/Music/iTunes/, créez un dossier à utiliser pour le point de montage. J'ai utilisé SSD_Music.
  • Utilisez sudo vifspour modifier le fstabfichier, ajoutez ce qui suit sur une seule ligne (modification pour l'UUID et le NOM D'UTILISATEUR selon le cas), puis enregistrez / quittez. UUID=F8C88B2D-5412-343B-8969-254F3AC559B8 /Users/USERNAME/Music/iTunes/SSD_Music hfs rw,noauto,noowners,nobrowse 0 0

    • noauto = ne montez pas le lecteur pendant le démarrage. J'ai rencontré des moments où le lecteur était monté en tant que root au lieu de moi, il est donc préférable d'attendre jusqu'à ce que vous vous connectiez.
    • noowners = Ignorer la propriété du volume. Les autorisations seront héritées du point de montage. Si je ne l'utilisais pas, le volume monté appartenait à root mais les sous-répertoires appartenaient à moi.
    • 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( Remarque: n'incluez pas le UUID=préfixe dans cette commande.
  • Espérons qu'il soit monté sans erreur. Vérifiez avec mountqui devrait montrer quelque chose comme/dev/disk2s2 on /Users/USERNAME/Music/iTunes/SSD_Music (hfs, local, nodev, nosuid, journaled, noowners, nobrowse)
  • Si vous procédez ainsi pour iTunes, vous devez créer un alias pour que le iTunes Mediadossier pointe vers le dossier sur le disque monté.
    • Quittez 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 fichiers multimédias sur le nouveau lecteur. Ignorez ceci 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.

  • Dans ~/Library/LaunchAgents/, créez un nouveau fichier appelélocal.mount_SSD_Music.plist
  • Copiez / collez le code 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 à l'aide du nouveau plist LaunchAgent avec launchctl load ~/Library/LaunchAgents/local.mount_SSD_Music.plist. Avec un peu de chance, il est remonté sans erreur.

Alors maintenant, si vous redémarrez, le lecteur externe sera automatiquement monté lorsque vous vous connecterez.

J'espère que cela t'aides!

Logiciel insomniaque
la source
0

Je combine une partie de mon commentaire en une réponse car je pense que cela résout le fstabproblème.

Comme vous l'avez déjà découvert, la mountcommande ne peut pas utiliser UUIDou LABELet doit utiliser l'identificateur de disque, par exemple /dev/disk0s4. De plus, comme peut-être peut-être l'a souligné, la méthode OS X est à utiliser diskutil. Pour répondre à votre mise à jour ... Cependant, vous fstabpouvez utiliser le UUIDou LABEL, il suffit de regarder les exemples dans la page de manuel pour fstab. Dans un type de terminal, fstabcliquez avec le bouton droit sur fstabet sélectionnez Ouvrir la page de manuel. Lisez-le dans son intégralité! :)

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

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

J'ai testé cela sur mon système en utilisant mon UUID, c'est votre UUIDligne, je vous suggère d'essayer ci-dessus.

Remarque: Il ne monterait au point de montage défini que si j'incluais le troisième champ, (fs_vfstype), sinon il se montait /Volumesmême si le deuxième champ, (fs_file), existait.

user3439894
la source
J'ai déjà testé cela et j'ai monté deux volumes identiques UUID=... /mount/point hfs rw,autodans El Capitan: 1. / mount / point et 2. / Volumes.
klanomath
@klanomath, vous ne savez pas ce que vous essayez de dire, à part cela peut-être que cela fonctionne comme je l'ai dit dans ma réponse? Ou dites-vous qu'il monte deux fois, quoi qu'il arrive? BTW j'utilise OS X 10.8.5.
user3439894
@klanomath, je l'ai édité, j'espère que c'est plus clair. Revenons maintenant à votre premier commentaire, dites-vous que sous OS X 10.11, il se montera sur un point de montage personnalisé, mais qu'il montera également un deuxième point de montage par défaut /Volumeségalement, avec une seule ligne ajoutée fstab?
user3439894
Oui, c'était mon expérience. J'ai écrit une réponse similaire mais j'ai ensuite réalisé que le volume était affiché deux fois: sur le bureau (qui est / Volumes) et au point de montage défini dans fstab (qui était / Users / user / test)
klanomath
@klanomath, je n'ai jamais vu votre réponse, je suppose que vous l'avez supprimée avant d'avoir vu cette question. Étant donné que j'utilise OS X 10.8.5 et que je n'ai pas de machine OS X 10.11.x à tester, je ne peux pas faire grand chose d'autre que de supprimer ma réponse.
user3439894