Como montar um disco por UUID ou LABEL no OS X El Capitan?

17

Recebo o UUID e o rótulo de um 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 o uso do rótulo de volume não 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 o uso do volume UUID não funciona com ou sem aspas:

$ 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 o identificador de volume funciona

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

Atualizar:

Meu objetivo é inserir a mountlinha /etc/fstabconforme desejo montar um volume em um ponto de montagem personalizado.

biocibernético
fonte
Como você já descobriu, o mountcomando não pode usar UUIDou LABELdeve usar o Identificador de Disco, por exemplo /dev/disk0s4. Além disso, como talvez seja possível apontar que o método OS X deve ser usado diskutil. Para resolver sua atualização ... No entanto, fstabpode usar o UUIDou LABEL, basta ver os exemplos na página do manual fstab. Em um tipo de terminal fstab, clique com o botão direito do mouse em fstabe selecione Abrir página de manual e leia-a na íntegra! :)
user3439894
@ user3439894 Tentei uma linha fstabassim: UUID=<volume_uuid> /mount/point autoe corri sudo mount -a. O mesmo erro aconteceu:... mount_hfs: No such file or directory
biocyberman
O segundo campo, (fs_file), o ponto de montagem, já deve existir, existe?
User3439894
Sim, existe.
Biocyberman
Não tenho problemas em usar fstab, no entanto, sempre uso pelo menos os quatro primeiros campos. Vejo sua falta do terceiro campo (fs_vfstype) no seu comentário. Você está omitindo fstab? Você deve editar sua pergunta e mostrar exatamente o que tentou fstabe qual editor usou. Dito isto, nenhum dos meus pontos de montagem é outro que o padrão / Volumespara o qual noneestá definido. Testarei assim que visualizar sua edição e o ponto de montagem que você está tentando.
User3439894

Respostas:

17

Ao usar o OS X, geralmente é mais aconselhável usar diskutilpara atividades relacionadas ao disco.

TL; DR:

Para montar um volume / disco por identificador:

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

Para montar um volume por UUID:

diskutil mount [Volume/Partition UUID]

Para montar um volume por etiqueta:

diskutil mount [label]

Explicação

Com diskutil, identificadores de nó ( /dev/diskXsY) são intercambiáveis ​​com UUIDs: em qualquer diskutiloperação (como eject), um UUID pode ser especificado em vez de um identificador de nó. Na página do manual:

DISPOSITIVOS

Um parâmetro de dispositivo para qualquer um dos comandos acima (exceto onde explicitamente exigido em contrário) geralmente pode ser um dos seguintes:

o O identificador de disco (veja abaixo). Qualquer entrada na forma de disco *, por exemplo, disk1s9.

o A entrada do nó do dispositivo que contém o identificador de disco. Qualquer entrada no formato / dev / disk *, por exemplo, / dev / disk2.

o O ponto de montagem do volume. Qualquer entrada no formato / Volumes / *, por exemplo, / Volumes / Sem título. Na maioria dos casos, um ponto de montagem "personalizado", por exemplo, / your / custom / mountpoint / here também é aceito.

o O formulário de URL de qualquer um dos formulários de ponto de montagem de volume descritos acima. Por exemplo, arquivo: /// Volumes / Sem título ou arquivo: ///.

o Um UUID. Qualquer entrada no formato, por exemplo, 11111111-2222-3333-4444-555555555555. O UUID pode ser um UUID de "mídia" que o IOKit coloca em um nó do IOMedia como derivado, por exemplo, de um UUID de partição do mapa GPT, ou pode ser um AppleRAID (ou CoreStorage) set (LV) ou membro (PV) UUID.

De man diskutil, seção 'Dispositivos'.


A obtenção desses identificadores / UUIDs / labels é simples, com um dos seguintes comandos:

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

Os valores retornados desses comandos devem se parecer com o seguinte:

$ 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 mostrado acima, o identificador pode ser encontrado na IDENTIFIERcoluna, o rótulo da NAMEcoluna e o UUID de qualquer um dos UUIDcampos (o UUID montará o volume).

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

adição para edição à pergunta do OP: montagem em um caminho personalizado

Você pode fazer isso com diskutil mounte a -mountPointopção Na página do manual:

montar o dispositivo [readOnly] [-mountPoint path]

Monte um único volume. Se readOnly for especificado, o sistema de arquivos será montado como somente leitura, mesmo que o sistema de arquivos subjacente e / ou o dispositivo e / ou a mídia do volume ofereçam suporte à gravação; mesmo o superusuário não pode escrever nele; é o mesmo que a opção rdonly para montar (8). Se um -mountPoint for especificado, esse caminho, em vez do caminho padrão de / Volumes / VolumeName, será usado como a visualização no conteúdo do arquivo de volume; um diretório nesse caminho já deve existir.

De man diskutil, seção 'Verbos'.

A sintaxe para montar em um ponto de montagem personalizado é a seguinte:

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

Lembre-se de que /path/to/custom/mountpoint deve ser um diretório , assim como com mount, e que seu identificador / UUID / label é específico ao volume (ou seja, /dev/diskXsYnão /dev/diskX). A montagem em um ponto de montagem personalizado não pode ser feita diskutil mountDiske funciona apenas com um único volume de cada vez.

talvez talvez
fonte
Obrigado pela resposta, você pode verificar a seção de atualização na minha pergunta e resolvê-la?
Biocyberman
@biocyberman atualizou minha resposta. Se ele não abordar sua adição de forma adequada, entre em contato comigo
talvez
2

Aqui está o que eu tenho usado para montar um SSD externo na minha pasta Música que contém meus arquivos de mídia do iTunes automaticamente sempre que eu faço o login. Você não disse exatamente qual é o objetivo da montagem externa, então alguns desses bits podem não seja o que você precisa, mas, novamente, pode ser exatamente o que você está tentando fazer.

Conforme mencionado na sua pergunta e na resposta do @ talvez talvez, o mountcomando não suporta UUIDs, assim diskutilcomo o utilitário recomendado. No entanto, o fstabarquivo suporta UUIDs, para que você possa armazenar os parâmetros de montagem fstabe diskutiller os parâmetros fstabpara montar sua unidade.

  • Em ~/Music/iTunes/, crie uma pasta a ser usada para o ponto de montagem. Eu usei SSD_Music.
  • Use sudo vifspara editar o fstabarquivo, adicione o seguinte como uma única linha (edição para o UUID e USERNAME conforme apropriado) e salve / saia. UUID=F8C88B2D-5412-343B-8969-254F3AC559B8 /Users/USERNAME/Music/iTunes/SSD_Music hfs rw,noauto,noowners,nobrowse 0 0

    • noauto = não monte a unidade durante a inicialização. Encontrei momentos em que a unidade foi montada como raiz, e não como eu, por isso é melhor esperar até você fazer login.
    • noowners = Ignora a propriedade do volume. As permissões serão herdadas do ponto de montagem. Se eu não usasse isso, o volume montado era de propriedade da raiz, mas os subdiretórios eram de minha propriedade.
    • nobrowse = Não mostre o disco na barra lateral do Finder ou na área de trabalho.
  • Execute a montagem com diskutil mount F8C88B2D-5412-343B-8969-254F3AC559B8( Nota: Não inclua o UUID=prefixo neste comando.
  • Espero que ele tenha montado sem erros. Marque com mountque deve mostrar algo como/dev/disk2s2 on /Users/USERNAME/Music/iTunes/SSD_Music (hfs, local, nodev, nosuid, journaled, noowners, nobrowse)
  • Se você estiver fazendo isso no iTunes, precisará criar um alias para a iTunes Mediapasta apontar para a pasta no disco montado.
    • Saia do iTunes se estiver em execução
    • 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 sua mídia para a nova unidade. Ignore isso se você já tiver copiado.
  • Desmonte o disco com diskutil unmount ~/Music/iTunes/SSD_Music

Agora que você pode montar a unidade pelo UUID, vamos automatizá-la quando você efetuar login.

  • Em ~/Library/LaunchAgents/, crie um novo arquivo chamadolocal.mount_SSD_Music.plist
  • Copie / cole o seguinte XML no novo arquivo e salve / saia.

    <?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>
    
  • Verifique se a unidade está desmontada

  • Teste a montagem usando o novo plistador LaunchAgent com launchctl load ~/Library/LaunchAgents/local.mount_SSD_Music.plist. Espero que ele tenha montado novamente sem erros.

Portanto, agora, se você reiniciar, a unidade externa será montada automaticamente quando você efetuar o login.

Espero que isto ajude!

Insomniac Software
fonte
0

Estou combinando parte do meu comentário em uma resposta, pois acredito que ela resolve o fstabproblema.

Como você já descobriu, o mountcomando não pode usar UUIDou LABELdeve usar o Identificador de Disco, por exemplo /dev/disk0s4. Além disso, como talvez seja possível apontar que o método OS X deve ser usado diskutil. Para resolver sua atualização ... No entanto, fstabpode usar o UUIDou LABEL, basta ver os exemplos na página do manual fstab. Em um tipo de terminal fstab, clique com o botão direito do mouse em fstabe selecione Abrir página de manual. Leia na íntegra! :)

Não tenho problemas em usar fstab, no entanto, sempre uso pelo menos os quatro primeiros campos. Vejo que está faltando o terceiro campo (fs_vfstype) no seu comentário. Você está omitindo fstab? Você deve editar sua pergunta e mostrar exatamente o que tentou fstabe qual editor usou.

Tente: UUID=1738336E-68DD-46B1-997E-57469CF0472D /mount/point hfs rw,auto onde /mount/pointé um diretório preexistente.

Eu testei isso no meu sistema usando o meu UUID, é o seu UUIDna linha que eu estou sugerindo que você tente acima.

Nota: Ele seria montado apenas no ponto de montagem definido se eu incluísse o terceiro campo (fs_vfstype); caso contrário, ele seria montado /Volumesmesmo que o segundo campo (fs_file) existisse.

user3439894
fonte
Eu testei isso anteriormente e tenho dois volumes idênticos montados UUID=... /mount/point hfs rw,autono El Capitan: 1. / mount / point e 2. / Volumes.
Klanomath 2/16
@ klanomath, Não sei o que você está tentando dizer, senão talvez funcione como eu disse na minha resposta? Ou você está dizendo que monta duas vezes, não importa o quê? BTW eu estou executando o OS X 10.8.5.
User3439894
@ Klanomath, eu editei, espero que seja mais claro. Agora, voltando ao seu primeiro comentário, você está dizendo que no OS X 10.11 ele será montado em um ponto de montagem personalizado, mas também montará um segundo ponto de montagem no padrão /Volumestambém, com apenas uma linha adicionada fstab?
user3439894
Sim, essa foi a minha experiência. Eu escrevi uma resposta semelhante, mas percebi que o volume era mostrado duas vezes: na área de trabalho (que é / Volumes) e no ponto de montagem definido no fstab (que era / Users / user / test)
klanomath
@ klanomath, nunca vi sua resposta, acho que você a excluiu antes de eu ver esta pergunta. Como estou executando o OS X 10.8.5 e não tenho uma máquina OS X 10.11.x para testar, não há muito mais que eu possa fazer além de excluir minha resposta também.
User3439894