我正在做一个项目,将驱动器(及其相关的统计数据,比如iostat显示的数据)和分区链接到挂载点,但在OS处理Fusion Drive的方式上遇到了问题。
我已经能够从IO Registry和Disk Arbitration Framework收集有关驱动器和分区的信息。类似地,我已经能够使用statfs (或者mount或df命令)关联驱动器和挂载点。然而,在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关联起来。我花了几个小时在这里和其他地方寻找任何将disk1与disk0s2联系起来的方法。diskutil的源代码显然在DiskManagement框架中,但这并不是公开的。
除了对上述diskutil list命令的输出进行文本解析之外,是否还有其他方法可以将已挂载的(虚拟) fusion驱动器与其底层(物理)分区相关联?
发布于 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。
https://stackoverflow.com/questions/39221437
复制相似问题