![](/img/trans.png)
[英]How do I make a bootable flash drive with Windows 7 on Mac (OS X) to boot into PC
[英]How do I programmatically determine which Mac drive is the boot drive?
這個問題中有關通過IOKit詢問已安裝驅動器的詳細信息。 但是,是否有辦法確定IOIteratorNext()
返回的設備中的IOIteratorNext()
是引導驅動器? 或者更好的是,是否有辦法在IOServiceGetMatchingServices()
返回的迭代器中僅獲取啟動驅動器?
引導是從介質完成的,而不是從設備本身完成的。 設備有媒體,媒體有卷。 我不相信IOKit中會顯示卷。
使用磁盤仲裁,這可能是最簡單的。 將DADiskCreateFromVolumePath()
與/
的CFURL
使用。 然后調用DADiskCopyDescription()
以獲取描述字典。 這將包括卷,介質,設備甚至總線的屬性,如果需要,還包括IOKit路徑。 但是,您要查找的信息很有可能直接在描述字典中。
Mark Setchell引用的NVRAM信息也可以從IOKit獲得,位於路徑IOService:/AppleACPIPlatformExpert/AppleEFIRuntime/AppleEFINVRAM
。 有一個屬性efi-boot-device
。 它的值是一個包含服務匹配字典的屬性列表。 如您所見,它將查找IOMedia
提供程序類的條目, IOMedia
UUID
屬性是某個UUID。
您可以使用此:
nvram efi-boot-device
efi-boot-device <array><dict><key>IOMatch</key><dict><key>IOProviderClass</key><string>IOMedia</string><key>IOPropertyMatch</key><dict><key>UUID</key><string>78025031-4C42-4FDE-8DD1-A515A2BF6032</string></dict></dict><key>BLLastBSDName</key><string>disk0s3</string></dict></array>%00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.