2016-08-30 54 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

相關問題