2016-08-30 55 views
0

我正在致力于将驱动器(及其相关联的统计信息,如iostat显示的那些驱动器)和分区链接到挂载点的项目上,但遇到了OS X的操作方式Fusion Drive以编程方式获取OSX Fusion驱动器信息

我已经能够收集来自IO RegistryDisk Arbitration Framework的驱动器和分区的信息。同样,我可以使用statfs(或mountdf命令)关联驱动器和安装点。但是,Fusion Drive输入图片时缺少链接。下面是一个diskutil list示例输出:

$ diskutil list 
/dev/disk0 (internal, physical): 
    #:      TYPE NAME     SIZE  IDENTIFIER 
    0:  GUID_partition_scheme      *1.0 TB  disk0 
    1:      EFI EFI      209.7 MB disk0s1 
    2:   Apple_CoreStorage Macintosh HD   999.7 GB disk0s2 
    3:     Apple_Boot Recovery HD    650.0 MB disk0s3 
/dev/disk1 (internal, virtual): 
    #:      TYPE NAME     SIZE  IDENTIFIER 
    0:     Apple_HFS Macintosh HD   +999.3 GB disk1 
           Logical Volume on disk0s2 
           FA33A826-C98E-425A-BCF1-9A68A926D36E 
           Unlocked Encrypted 

iostat的IORegistry统计(读/写/读字节写入/字节,所花费的时间传送,等等)与disk0在上面的输出相关联。然而,df(或等效方案的statfs功能)相关联的/挂载点与/dev/disk1

$ df 
Filesystem      512-blocks  Used Available Capacity iused  ifree %iused Mounted on 
/dev/disk1      1951825920 575057552 1376256368 30% 71946192 172032046 29% /

我希望能够给相关的读/在文件系统中的/物理驱动器disk0写道。我花了几个小时在这里和其他地方搜索任何关联disk1disk0s2的方法。 diskutil的源代码显然在DiskManagement框架中,该框架未公开。

除了文本解析上述diskutil list命令的输出之外,还有什么方法可以将挂载(虚拟)融合驱动器与其基础(物理)分区相关联吗?

回答

0

经过几个小时的挖掘,我发现了Fusion Drives(以及Lion中引入的全磁盘FileVault加密)利用名为“Core Storage”(或CoreStorage)的功能,其中一个或多个物理磁盘/分区链接到虚拟磁盘。

似乎没有任何公开可用的API以编程方式获取CoreStorage信息,并且其中有哪些命令是稀疏记录的。

虽然仍然是命令行,但是diskutil cs list提供足够的可解析信息来建立我需要的连接。

A P DF with examples and a lot more information can be found here

相关问题