在OSX上没有从diskutil获取UUID

mer*_*nfo 14 uuid osx-lion

运行Mac OSX 10.7.5我想在USB3外部硬盘上启用NTFS并需要UUID来执行它(http://ntfsonmac.com)但diskutil拒绝给我UUID.我开始:

diskutil info /Volumes/HD-PCTU3/
Run Code Online (Sandbox Code Playgroud)

然后从这个:

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
Run Code Online (Sandbox Code Playgroud)

但可以看出,没有显示UUID.任何想法和/或如何获得UUID的想法?

Ant*_*ook 7

我能够找到的唯一方法涉及一个有点记录不清的特征hfs.util.

运行该diskutil命令,然后复制/记住/保存Device Identifier:

diskutil info /Volumes/my_drive_label | grep "Device Identifier" 
Run Code Online (Sandbox Code Playgroud)

您可以使用hfs.utilwith Device Identifier(替换disk2s1如下)diskutil来(重新)为您的卷生成UUID:

/System/Library/Filesystems/hfs.fs/hfs.util -s disk2s1
Run Code Online (Sandbox Code Playgroud)

请记住,如果卷不是HFS驱动器而不是它可能不起作用,则这不适用于每个卷,并且其他Filesystem/*.fs/*.util命令可能没有-s动词来生成UUID.

UPDATE

在优胜美地以及在-s源级别禁用旗帜之后.我无法找到预先修改过的版本hfs.util,但您可以使用此超级用户问题中的信息自行完成,总结如下:

  1. 从Apple下载hfs.util源并将其解压缩到临时文件夹
  2. 从Apple下载hfs_fsctl.h 并将其放在hfs.util文件夹中
  3. 改线47hfsutil_jnl.c#include <hfs_fsctl.h>
  4. 改线80hfsutil_main.c#include <System/uuid/uuid.h>
  5. 改变线81hfsutil_main.c进入static unsigned char kFSUUIDNamespaceSHA1[] = {0xB3,0xE2,0x0F,0x39,0xF2,0x92,0x11,0xD6,0x97,0xA4,0x00,0x30,0x65,0x43,0xEC,0xAC};(取代包括线)
  6. 还添加#define HFS_UUID_SUPPORT 1hfsutil_main.c

如果上述方法不起作用,参数解析部分可能仍然缺少某些内容,如果我遗漏了某些内容,请参考超级用户问题和评论.

有些人还报告说可以使用Gparted来更改驱动器的UUID.

  • 是的,它是disk1s2.但是`hfs.util -s disk1s2`似乎没有做任何事情.如果我没有选项运行它,我得到一个hfs.util的帮助屏幕,它没有提到`-s`标志. (4认同)