Не получать UUID с diskutil на OSX

Запуск Mac OSX 10.7.5 Я хочу включить NTFS на внешний жесткий диск USB3 и ему нужен UUID (http://ntfsonmac.com), но diskutil отказывается дать мне UUID. Я начинаю с:

diskutil info /Volumes/HD-PCTU3/

то из этого:

diskutil info disk2s1
   Device Identifier:        disk2s1
   Device Node:              /dev/disk2s1
   Part of Whole:            disk2
   Device / Media Name:      Untitled 1

   Volume Name:              HD-PCTU3
   Escaped with Unicode:     HD-PCTU3

   Mounted:                  Yes
   Mount Point:              /Volumes/HD-PCTU3
   Escaped with Unicode:     /Volumes/HD-PCTU3

   File System Personality:  NTFS
   Type (Bundle):            ntfs
   Name (User Visible):      Windows NT File System (NTFS)

   Partition Type:           Windows_NTFS
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 USB
   SMART Status:             Not Supported

   Total Size:               500.1 GB (500107804672 Bytes) (exactly 976773056 512-Byte-Blocks)
   Volume Free Space:        499.9 GB (499896778752 Bytes) (exactly 976360896 512-Byte-Blocks)
   Device Block Size:        512 Bytes

   Read-Only Media:          No
   Read-Only Volume:         Yes
   Ejectable:                Yes

   Whole:                    No
   Internal:                 No

но, как видно, не отображается UUID. Любые идеи, почему и/или как получить UUID?

Ответ 1

Единственный способ, которым я смог найти, - это несколько плохо документированная функция hfs.util.

Запустите команду diskutil, а затем скопируйте/запомните/сохраните Device Identifier:

diskutil info /Volumes/my_drive_label | grep "Device Identifier" 

Вы можете использовать hfs.util с Device Identifier (заменяя disk2s1 ниже) от diskutil до (re) сгенерировать UUID для вашего тома:

/System/Library/Filesystems/hfs.fs/hfs.util -s disk2s1

Помните, что это не будет работать для каждого тома, если том не является файлом HFS, чем он может не работать, а другие команды Filesystem/*.fs/*.util могут не иметь глагола -s для генерации UUID.

UPDATE

В Yosemite и после того, как флаг -s отключен на уровне источника. Я не смог найти предварительно измененную версию hfs.util, но вы можете сделать это самостоятельно, используя информацию, найденную в этом вопросе суперпользователя, вкратце изложенный здесь:

  • Загрузите источник hfs.util из Apple и извлеките его во временную папку
  • Загрузите hfs_fsctl.h из Apple и поместите его в папку hfs.util.
  • Измените строку 47 of hfsutil_jnl.c на #include <hfs_fsctl.h>
  • Измените строку 80 of hfsutil_main.c на #include <System/uuid/uuid.h>
  • Измените строку 81 of hfsutil_main.c на static unsigned char kFSUUIDNamespaceSHA1[] = {0xB3,0xE2,0x0F,0x39,0xF2,0x92,0x11,0xD6,0x97,0xA4,0x00,0x30,0x65,0x43,0xEC,0xAC}; (заменив строку include)
  • Также добавьте #define HFS_UUID_SUPPORT 1 в hfsutil_main.c

В разделе анализа синтаксиса все еще может быть что-то отсутствует, если приведенное выше не работает, обратитесь к вопросу суперпользователя и прокомментируйте, если я что-то пропустил.

Некоторые люди также сообщили, что для изменения UUID диска можно использовать Gparted.