Как смонтировать диск по UUID или LABEL в OS X El Capitan?

17

Я получаю UUID и метку диска от 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 использование метки тома не работает:

$ 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 использование тома UUID не работает с кавычками или без них:

$ 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 с использованием идентификатора тома работает

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

Обновить:

Моя цель - поставить mountстроку так, /etc/fstabкак я хочу смонтировать том в пользовательскую точку монтирования.

biocyberman
источник
Как вы уже узнали, mountкоманда не может использовать UUIDили LABELдолжна использовать идентификатор диска, например /dev/disk0s4. Кроме того, как возможно, возможно, Бехарри указал, что метод OS X должен использовать diskutil. Чтобы обратиться к вашему обновлению ... Однако fstabможете использовать UUIDили LABEL, просто посмотрите на примеры в справочной странице для fstab. В терминале введите, fstabа затем щелкните правой кнопкой мыши fstabи выберите «Открыть справочную страницу», а затем прочитайте ее полностью! :)
user3439894
@ user3439894 Я попытался в строке, fstabкак это:, UUID=<volume_uuid> /mount/point autoи побежал sudo mount -a. Произошла ... mount_hfs: No such file or directory
такая
Второе поле (fs_file), точка монтирования, должно уже существовать, не так ли?
user3439894
Да, он существует.
biocyberman
У меня нет проблем с использованием fstab, однако я всегда использую по крайней мере первые четыре поля. Я вижу, что вы пропустили третье поле (fs_vfstype) в своем комментарии. Вы опускаете это в fstab? Вы должны отредактировать свой вопрос и показать, что именно вы пробовали fstabи какой редактор вы использовали. Тем не менее, ни одна из моих точек монтирования не является другой, Volumesчем noneзаданная по умолчанию / для которой установлена. Я протестирую, как только увижу ваши изменения и точку монтирования, которую вы пытаетесь.
user3439894

Ответы:

17

При использовании OS X обычно более целесообразно использовать diskutilдля действий, связанных с диском.

TL; DR:

Чтобы смонтировать том / диск по идентификатору:

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

Чтобы смонтировать том по UUID:

diskutil mount [Volume/Partition UUID]

Чтобы смонтировать том по метке:

diskutil mount [label]

объяснение

При этом diskutilидентификаторы узлов ( /dev/diskXsY) взаимозаменяемы с UUID: в любой diskutilоперации (например, eject) вместо идентификатора узла может быть указан UUID. Со страницы руководства:

УСТРОЙСТВА

Параметр устройства для любой из вышеперечисленных команд (кроме случаев, когда явно требуется иное) обычно может быть любым из следующих:

o Идентификатор диска (см. ниже). Любая запись в форме диска *, например, disk1s9.

o Запись узла устройства, содержащая идентификатор диска. Любая запись в формате / dev / disk *, например / dev / disk2.

o Точка монтирования тома. Любая запись в виде / Volumes / *, например / Volumes / Untitled. В большинстве случаев «пользовательская» точка монтирования, например / your / custom / mountpoint /, также принимается.

o Форма URL любой из форм точек монтирования тома, описанных выше. Например, файл: /// Тома / Без названия или файл: ///.

o UUID. Любая запись в форме, например, 11111111-2222-3333-4444-555555555555. UUID может быть «медиа» UUID, который IOKit помещает в узел IOMedia, как, например, полученный из UUID раздела карты GPT, или это может быть набор AppleRAID (или CoreStorage) (LV) или членский (PV) UUID.

Из man diskutilраздела «Устройства».


Получить эти идентификаторы / UUIDs / метки просто, с помощью одной из следующих команд:

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

Возвращенные значения из этих команд должны выглядеть примерно так:

$ 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

Как показано выше, идентификатор можно найти в IDENTIFIERстолбце, метку в NAMEстолбце и UUID из любого UUIDполя (любой UUID будет монтировать том).

По ярлыку:

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

По UUID:

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

По идентификатору диска:

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

добавление для редактирования вопроса OP: монтирование на произвольный путь

Вы можете сделать это с diskutil mountпомощью -mountPointопции. Со страницы руководства:

монтировать устройство [readOnly] [-mountPoint]

Смонтировать один том. Если указано readOnly, то файловая система монтируется только для чтения, даже если базовая файловая система тома и / или устройства и / или носителя поддерживает запись; даже суперпользователь может не писать в него; это то же самое, что и опция rdonly для монтирования (8). Если указана -mountPoint, то этот путь, а не стандартный путь / Volumes / VolumeName, будет использоваться как представление содержимого файла тома; каталог по этому пути уже должен существовать.

Из man diskutilраздела «Глаголы».

Синтаксис для монтирования в пользовательскую точку монтирования выглядит следующим образом:

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

Имейте в виду, что это /path/to/custom/mountpoint должен быть каталог , как и с mount, и что ваш идентификатор / UUID / метка относится к тому (то есть, /dev/diskXsYнет /dev/diskX). Монтирование в пользовательскую точку монтирования не может быть выполнено diskutil mountDisk, и работает только с одним томом одновременно.

perhapsmaybeharry
источник
Спасибо за ответ, не могли бы вы проверить раздел обновления в моем вопросе и обратиться к нему?
biocyberman
@biocyberman обновил мой ответ. Если для Вас не дополнение надлежащим образом , пожалуйста , дайте мне знать
perhapsmaybeharry
2

Вот то, что я использовал для подключения внешнего SSD в папку «Музыка», в которой автоматически содержатся медиафайлы iTunes при каждом входе в систему. Вы не сказали точно, для чего предназначено внешнее подключение, поэтому некоторые из этих битов могут не сработать. быть тем, что вам нужно, но опять же, это может быть именно то, что вы пытаетесь сделать.

Как упомянуто в вашем вопросе и в ответе @ Maybemaybeharry, mountкоманда не поддерживает UUID, поэтому diskutilэто рекомендуемая утилита. Тем не менее, fstabфайл поддерживает UUID, поэтому вы можете сохранить параметры монтирования, а fstabзатем diskutilпрочитать параметры fstabдля монтирования вашего диска.

  • В ~/Music/iTunes/, создайте папку, которая будет использоваться для точки монтирования. Я использовал SSD_Music.
  • Используйте sudo vifsдля редактирования fstabфайла, добавьте следующее в одну строку (редактирование UUID и USERNAME соответственно), затем сохраните / выйдите. UUID=F8C88B2D-5412-343B-8969-254F3AC559B8 /Users/USERNAME/Music/iTunes/SSD_Music hfs rw,noauto,noowners,nobrowse 0 0

    • noauto = не монтировать диск во время загрузки. Я сталкивался со случаями, когда диск был смонтирован как root, а не как me, поэтому лучше дождаться входа в систему.
    • noowners = игнорировать владение объемом. Разрешения будут унаследованы от точки монтирования. Если я не использовал это, подключенный том принадлежал пользователю root, а подкаталоги принадлежали мне.
    • nobrowse = Не показывать диск на боковой панели Finder или на рабочем столе.
  • Выполните монтирование с помощью diskutil mount F8C88B2D-5412-343B-8969-254F3AC559B8( Примечание. Не включайте UUID=префикс в эту команду.
  • Надеюсь, он смонтирован без ошибок. Проверьте это с помощью mountкоторого должно показать что-то вроде/dev/disk2s2 on /Users/USERNAME/Music/iTunes/SSD_Music (hfs, local, nodev, nosuid, journaled, noowners, nobrowse)
  • Если вы делаете это для iTunes, вам нужно создать псевдоним для iTunes Mediaпапки, указывающей на папку на смонтированном диске.
    • Закройте iTunes, если он работает
    • cd ~/Music/iTunes/
    • mv 'iTunes Media' 'iTunes Media-bak'
    • ln -s 'SSD_Music/iTunes Media' 'iTunes Media'
    • ditto 'iTunes Media-bak' 'iTunes Media'скопировать ваши медиа на новый диск. Пропустите это, если вы уже скопировали его.
  • Размонтировать диск с помощью diskutil unmount ~/Music/iTunes/SSD_Music

Теперь, когда вы можете подключить диск по UUID, давайте автоматизируем его при входе в систему.

  • В ~/Library/LaunchAgents/создайте новый файл с именемlocal.mount_SSD_Music.plist
  • Скопируйте / вставьте следующий XML в новый файл, затем сохраните / выйдите.

    <?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>
    
  • Убедитесь, что диск отключен

  • Проверьте монтаж с помощью нового LaunchAgent plist с помощью launchctl load ~/Library/LaunchAgents/local.mount_SSD_Music.plist. Надеюсь, он снова смонтирован без ошибок.

Так что теперь, если вы перезагрузите компьютер, внешний диск будет автоматически подключен при входе в систему.

Надеюсь это поможет!

Бессонница программного обеспечения
источник
0

Я объединяю некоторые из моих комментариев в ответ, так как считаю, что это решает fstabпроблему.

Как вы уже узнали, mountкоманда не может использовать UUIDили LABELдолжна использовать идентификатор диска, например /dev/disk0s4. Кроме того, как возможно, возможно, Бехарри указал, что метод OS X должен использовать diskutil. Чтобы обратиться к вашему обновлению ... Однако fstabможете использовать UUIDили LABEL, просто посмотрите на примеры в справочной странице для fstab. В терминале введите, fstabа затем щелкните правой кнопкой мыши fstabи выберите «Открыть страницу руководства». Прочитайте это полностью! :)

У меня нет проблем с использованием fstab, однако я всегда использую по крайней мере первые четыре поля. Я вижу, что вы пропустили третье поле (fs_vfstype) в своем комментарии. Вы опускаете это в fstab? Вы должны отредактировать свой вопрос и показать, что именно вы пробовали fstabи какой редактор вы использовали.

Попробуйте: UUID=1738336E-68DD-46B1-997E-57469CF0472D /mount/point hfs rw,auto где /mount/pointнаходится ранее существующий каталог.

Я проверил это на моей системе, используя мой UUID, это ваша UUIDстрока, я предлагаю вам попробовать выше.

Примечание: он будет монтироваться только в определенную точку монтирования, если я включу третье поле (fs_vfstype), в противном случае оно будет смонтировано, /Volumesдаже если второе поле (fs_file) существует.

user3439894
источник
Я проверял это ранее, и у меня UUID=... /mount/point hfs rw,autoв El Capitan были смонтированы два одинаковых тома : 1. / mount / point и 2. / Volumes.
Кланомат
@klanomath, Не уверен, что ты пытаешься сказать, иначе, может быть, это работает, как я уже сказал в своем ответе? Или вы говорите, что он крепится дважды, несмотря ни на что? Кстати я работаю OS X 10.8.5.
user3439894
@klanomath, я отредактировал это, надеюсь, это более понятно. Теперь вернемся к вашему первому комментарию. Вы говорите, что в OS X 10.11 он будет монтироваться в пользовательскую точку монтирования, но также будет также монтироваться вторая точка монтирования по умолчанию /Volumesс добавлением только одной строки fstab?
user3439894
Да, это был мой опыт. Я написал аналогичный ответ, но потом понял, что том был показан дважды: на рабочем столе (который является / Volumes) и в точке монтирования, определенной в fstab (который был / Users / user / test)
klanomath
@klanomath, я так и не увидел твой ответ, наверное, ты удалил его до того, как увидел этот вопрос. Поскольку я использую OS X 10.8.5 и у меня нет машины с OS X 10.11.x для тестирования, я не могу сделать ничего другого, кроме как удалить свой ответ.
user3439894