Я работаю над проектом, который связывает диски (и их связанные с ними статистики, такие как отображаемые iostat
), и разделы для монтирования точек, но сталкиваются с проблемами с тем, как OS X делает Fusion Drive ,Программно получить информацию о драйвере OSX
Я смог собрать информацию о дисках и разделах из 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
Статистика IORegistry из iostat
(чтение/запись/байты чтения/записанные байты, время, затраченное передачи и т.д.) связаны с 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
, связать установленный (виртуальный) привод слияния с его основным (физическим) разделом?