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

Я получаю 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, поскольку я хочу подключить том к настраиваемой точке монтирования.

13 голосов | спросил biocyberman 17 PMpSun, 17 Apr 2016 19:44:52 +030044Sunday 2016, 19:44:52

3 ответа


14

При использовании 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. На странице man:

  

DEVICES

     

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

     

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

     

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

     

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

     

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

     

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

     

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


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

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. На странице man:

  

mount [readOnly] [-mountPoint path] устройство

     

Установите один том. Если указано 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 not /dev/diskX). Установка на пользовательскую точку монтирования не может быть выполнена с помощью diskutil mountDisk и работает только содин том за раз.

ответил perhapsmaybeharry 2 Mayam16 2016, 07:19:42
1

Вот то, что я использовал для монтирования внешнего 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 вместо меня, поэтому лучше подождать, пока вы войдете в систему.
    • 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 с помощью launchctl load ~/Library/LaunchAgents/local.mount_SSD_Music.plist. Надеюсь, он снова установил ошибки.

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

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

ответил Insomniac Software 1 J0000006Europe/Moscow 2016, 21:29:06
0

Я сочетаю некоторые мои комментарии с ответом, поскольку считаю, что он обращается к проблеме fstab.

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

У меня нет проблем с использованием 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 2 Maypm16 2016, 15:50:39

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132