首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式获取OSX融合驱动器信息

以编程方式获取OSX融合驱动器信息
EN

Stack Overflow用户
提问于 2016-08-30 15:33:45
回答 1查看 475关注 0票数 1

我正在做一个项目,将驱动器(及其相关的统计数据,比如iostat显示的数据)和分区链接到挂载点,但在OS处理Fusion Drive的方式上遇到了问题。

我已经能够从IO RegistryDisk Arbitration Framework收集有关驱动器和分区的信息。类似地,我已经能够使用statfs (或者mountdf命令)关联驱动器和挂载点。然而,在Fusion Drive进入画面的地方缺少一个环节。以下是diskutil list的示例输出

代码语言:javascript
复制
$ 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关联

代码语言:javascript
复制
$ 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命令的输出进行文本解析之外,是否还有其他方法可以将已挂载的(虚拟) fusion驱动器与其底层(物理)分区相关联?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-31 00:02:45

经过几个多小时的研究,我发现了一个关键事实,即融合驱动器(以及在Lion中引入的全磁盘FileVault加密)利用了一种称为“核心存储”(或CoreStorage)的功能,其中一个或多个物理磁盘/分区链接到一个虚拟磁盘。

似乎没有任何公开可用的应用程序接口来以编程方式获取CoreStorage信息,并且有哪些命令的文档也很少。

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39221437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档