状況
Mac OS X 10.9 MavericksでgdbでGoのコードをデバッグするhttp://qiita.com/ymotongpoo/items/81d3c945483cae734122
の記事に従い
/System/Library/LaunchDaemons/com.apple.taskgated.plist
を以下のように編集したら起動しなくなった(このバグは自分が内容をよく理解できずに変更したことが原因だと考えられる・・・、いるかわからないが同じようにハマった人向けに記述する)
com.apple.taskgated.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>POSIXSpawnType</key>
<string>Interactive</string>
<key>EnableTransactions</key>
<true/>
<key>Label</key>
<string>com.apple.taskgated</string>
<key>MachServices</key>
<dict>
<key>com.apple.taskgated</key>
<dict>
<key>TaskSpecialPort</key>
<integer>9</integer>
</dict>
</dict>
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/taskgated</string>
- <string>-s</string>
+ <string>-sp</string>
</array>
</dict>
</plist>
対処法
- 基本上で編集したファイルを元に戻す
- そのためにシングルモードで起動する
- read only file systemによりwrite protectがかかっているので、再マウントする
シングルモードで起動
- 電源ボタンを押して、コンピュータを起動します。
- その直後に、「command + S」
「S」キーはシングルユーザモードで起動という意味。黒い画面になったら離していい
再マウント
シングルユーザーモードになるとcuiで動作するので以下をタイプ+enter
mount -uw /
ファイルの編集
eamcs -nw /System/Library/LaunchDaemons/com.apple.taskgated.plist
emacs が起動する
以下に置き換える
com.apple.taskgated.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>POSIXSpawnType</key>
<string>Interactive</string>
<key>EnableTransactions</key>
<true/>
<key>Label</key>
<string>com.apple.taskgated</string>
<key>MachServices</key>
<dict>
<key>com.apple.taskgated</key>
<dict>
<key>TaskSpecialPort</key>
<integer>9</integer>
</dict>
</dict>
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/taskgated</string>
<string>-s</string>
</array>
</dict>
</plist>
注: emacsの編集コマンドはネットを参照のこと
emacs は ctrl + x ctrl + sでセーブ
emacs は ctrl + x ctrl + cで終了
最後にシングルユーザーモードを終了する
reboot
read onlyでchmodも使えない場合にいかに書き込み可能にするかがポイント
参考
- 知ってると便利な UNIX のコマンド
http://www.gadgety.net/shin/tips/unix/faq.html