我目前正在寻找一种获取Mac上所有可启动分区列表的方法吗?
我知道你可以获得所有卷的清单吗?但我不知道如何检查每个特定卷是否可引导?
有没有办法使用 swift 或目标c 执行此操作?
答案 0 :(得分:0)
使用objective-c或swift可能没有,但你可以从你的objective-c应用程序运行一个苹果脚本(终端命令)(在OS X上,我不知道它是否可以在iOS上完成) 这就是你执行苹果脚本的方式:
//Begin of the script
NSAppleScript *script = [[NSAppleScript alloc]
initWithSource:@"Tell application \"Terminal\" \n\
do shell script \" some script here \"\n\
end tell"];
NSDictionary *errors = nil;
NSAppleEventDescriptor *result = [script executeAndReturnError:&errors];
NSLog(@"result: %@", result);
NSLog(@"errors: %@", errors);
if(errors==NULL){
NSLog(@"Succeeded");
}
else{
NSLog(@"Failed");
}
//End of the script
答案 1 :(得分:0)
执行此操作的快速而肮脏的方法是发出bless --info
或systemsetup liststartupdisks
命令。您可以指定希望以plist格式输出,以便更容易解析。
就执行这些命令而言,典型的NSTask应该有效。您也可以使用system(),但它并不是OS X上的标准做法,因为NSTask有很多优点。
执行此操作的纯代码方法是获取磁盘列表,然后查看每个磁盘列表以查找使OS X可引导的已知文件。例如/ System / Library / CoreServices中的boot.efi文件,mach内核文件以及/System/Library/CoreServices/SystemVersion.plist的内容。