最近、HackintoshでGoogle Chromeがどうしても起動しないという厄介な問題に遭遇しました。普段は信頼できるブラウザなのに、アイコンを何度クリックしても起動しません。原因につながるエラーメッセージを確認するため、トラブルシューティングとしてターミナルからChromeを実行してみました。
Terminalを使い、アプリケーションバンドル内のChromeをシークレットモードで直接起動しました。
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome --incognito
このコマンドにより、一連のエラーが表示されました。
chrome_crashpad_handler: --database is required
Try 'chrome_crashpad_handler --help' for more information.
[0120/122011.654659:ERROR:file_io.cc(94)] ReadExactly: expected 8, observed 0
[0120/122011.658139:ERROR:crash_report_database_mac.mm(109)] mkdir : No such file or directory (2)
[47470:259:0120/122011.738754:ERROR:process_singleton_posix.cc(335)] Failed to create /Users/lachlan/Library/Application Support/Google/Chrome/SingletonLock: Permission denied (13)
[47470:259:0120/122011.739140:ERROR:process_singleton_posix.cc(476)] Could not open singleton lock: Permission denied (13)
[47470:259:0120/122011.739344:ERROR:chrome_main_delegate.cc(554)] Failed to create a ProcessSingleton for your profile directory. This means that running multiple instances would start multiple browser processes rather than opening a new window in the existing process. Aborting now to avoid profile corruption.
重要な手がかりは、Chromeのプロファイルディレクトリに関するPermission deniedメッセージでした。特に、SingletonLockの作成またはオープンに失敗している点です。これは、ChromeがApplication Supportディレクトリ配下のファイルに書き込めないことを示していました。
権限を修正するため、次のコマンドを実行しました。
sudo chown -R "$(whoami)" ~/Library/Application Support/Google/Chrome/
sudo chmod -R u+rw ~/Library/Application Support/Google/Chrome/
1つ目のコマンドは、Chromeのプロファイルディレクトリの所有者を現在のmacOSユーザーに戻します。2つ目のコマンドは、そのユーザーがディレクトリ内のファイルを読み書きできるようにします。
それでもChromeがSingletonLockについて文句を言う場合で、Chromeが実行中でないことをすでに確認しているなら、古いロックファイルを削除することも役立ちます。
rm ~/Library/Application Support/Google/Chrome/SingletonLock
権限を調整したあと、もう一度Chromeを開くと正常に起動しました。最初は複雑そうに見えた問題でしたが、ターミナル出力によって根本原因は明確になりました。Chromeが自分自身のプロファイルファイルにアクセスできていなかったのです。Hackintoshでは、移行やシステム変更のあとに権限やファイルシステムまわりの癖が表面化することがあります。そのため、所有者と書き込み権限を確認することは、多くの場合、実用的な最初の一手になります。
