
Macのコマンドラインからセーフモードを有効にする方法
Mac の複雑な問題のトラブルシューティングは、それ自体が困難な場合があります。特に複雑な状況に直面した場合、コマンドラインが大きな助けとなることがあります。このような場合、上級ユーザーであれば、ファームウェア変数を直接操作できるツールである nvram ユーティリティを使用して、Mac をセーフモードで起動できます。nvram を使用することで、コマンドラインから完全にセーフブートが可能になります。これにより、Mac OS X のシステム起動時に Shift キーを押しながらセーフモードで起動するという Mac の標準的な方法が不要になります。これにより、リモートでセーフモードを有効にしてリモートトラブルシューティングを改善したり、さまざまなスクリプトアプリケーションを使用したりできます。
これはかなり高度なアプリケーションでしか使えないトリックなので、ほとんどのユーザーはこれを使う必要はないでしょう。とはいえ、nvramコマンドは完全なリモートトラブルシューティングを可能にし、MacのキーボードやUSBインターフェースに問題があり、Shiftキーを使ってセーフブートを通常通りに実行できない場合にも役立ちます。
Mac OS Xのターミナルからセーフブートを有効にする
NVRAM を搭載したターミナルからセーフ モードを有効にするコマンド シーケンスは次のとおりです。
sudo nvram boot-args="-x"
注意: これはブート引数を適用してセーフ モードが常に有効になるように設定します。つまり、明示的に再度無効にするまで、すべてのブートは付随するすべての制限付きで「安全」になります。
トラブルシューティングが完了したら、Mac が通常どおり起動して再び通常どおり動作できるように、ファームウェアから boot-arg を削除します。これは、次のコマンド文字列で boot-args をクリアすることで実行できます。
sudo nvram boot-args=""
次のコマンドを使用して、現在の nvram ブート引数を確認することもできます。
nvram boot-args
クリアされている場合は、変数が見つからなかったことを示すエラー メッセージが表示されます。
これは明らかに Mac OS X のローカル端末から直接使用できますが、別のマシンでリモート管理の目的でこの nvram コマンドを使用できるようにするには、対象の Mac で SSH サーバーを有効にして、Mac を管理するためのリモート ログインを許可する必要があります。
-x ブート引数は -v 引数と組み合わせて使用して、セーフモードでのブートと常に詳細モードでのブートを組み合わせることもできますが、リモートで管理されている Mac で詳細ブートがどの程度役立つかは疑問です。
キーボードとUSBインターフェースが機能しなくなり、不可解な動作をするMacのトラブルシューティングにこのトリックを使う必要がありました。最終的にMacが水に濡れていたことが判明し、乾燥させることでマシンは回復しました。この場合はトラブルシューティングのトリックは必要ありませんでしたが、必要な状況は他にもたくさんあります。