我们用管理者管理我们的 Mac OS X 加载集,因此,当新操作系统发布时,由于更新内核扩展等原因,我们经常会遇到困难。过去的工作流程(操作系统修订版 <= 10.4)是删除内核扩展缓存,更新扩展,然后重新启动。这很有效,因为系统会在启动时重新创建丢失的缓存。在 Leopard 中,您需要删除缓存后用新版本替换内核扩展,因为当您替换它们时系统会自动开始创建它们;确保没有缓存无效扩展的唯一方法是在重新启动之前删除缓存。
我正在寻找一种方法来防止内核扩展缓存在下次重新启动之前重新创建。如果您修改的内容/System/Library/Extensions/
,kextcache
将自动启动。我查看了/System/Library/LaunchDaemons/
和其他地方,但找不到启动的东西kextcache
。有什么想法吗?
答案1
好吧,在深入研究了 Apple 的一些开源代码后,我解决了这个问题(至少对于 Snow Leopard 来说)。通过发出以下命令:
launchctl unload /System/Library/LaunchDaemons/com.apple.kextd.plist
您可以更新内核扩展,删除其缓存文件,然后重新启动;扩展缓存将在启动时重新创建。我仍需要针对 Leopard 进行测试,但对于 Snow Leopard 来说,它运行良好。