Mac

“Can't create kext cache under / - owner not root” を解決した手順

More than 3 years have passed since last update.

TL;DR: sudo chown root:wheel /


いつのころからか、コンソールに com.apple.kextd: Can't create kext cache under / - owner not root. というエラーメッセージが出力されるようになっていた。文面からするとルートディレクトリのオーナーが root でないことが原因らしい。実際に ls -ld / してみるとオーナーが一般ユーザーになっていた:

% ls -ld /
drwxrwxrwx  34 uasi  staff  1224  4  7 11:10 /

ディスクユーティリティの「ディスクのアクセス権を修復」を実行したが、解決しなかった。このエラーメッセージで検索してみるといくつかのページで解決方法が紹介されているのが見つかる。com.apple.kextd Can't create kext cache under owner not root.の時は :じゃむ☆ぽろりではターミナルで sudo chown root:admin / を実行すればいいとされているが、ルートディレクトリの元々のオーナーとグループが root:admin で合っているのか不安だったので調べてみた。

Apple のサポートフォーラムのとある投稿によれば、次のコマンドでルートディレクトリのアクセス権の初期設定を確認できるそうだ:

% lsbom -p MUGsf /private/var/db/receipts/com.apple.pkg.BaseSystem.bom | head -1
drwxrwxr-t root admin .

しかし Mavericks では com.apple.pkg.BaseSystem.bom ファイルが存在しない(OS X 10.9.2で確認)。どうやら com.apple.pkg.BaseSystemBinaries.bomcom.apple.pkg.BaseSystemResources.bom の2つに分かれているようなので、 Resources のほうを見てみることにした:

% lsbom -p MUGsf /private/var/db/receipts/com.apple.pkg.BaseSystemResources.bom | head -5
drwxr-xr-x  root    wheel       .
-rw-rw-r--  root    admin   0   ./.DS_Store
----------  root    admin   0   ./.file
drwxr-xr-x  root    wheel       ./.vol
drwxrwxr-x  root    admin       ./Applications

どう使い分けているかは分からないが、システムディレクトリのグループは wheel と admin が混在しているようだった。肝心のルートディレクトリのグループは wheel だ。 sudo chown root:wheel / を実行すると、エラーメッセージは出なくなった。パーミッションも sudo chmod 1755 / で755に戻しておいた。