
macOSでは起動時引数/ブート引数 - Boot Arguments(boot-args)コマンドをターミナルで実行することで特殊なモードの指定や処理をさせることが可能だ(iOSにもBoot Argumentsは存在するが脱獄が必要なため非推奨)。
Boot Argumentsは膨大な数に上るため、本記事ではmacOSで指定できるBoot Argumentsコマンドの中でも特に重要であると思われるものをまとめる。
なお、コマンドによっては「Error setting variable iokit/common not permitted」というエラーが表示され、Macをリカバリーモードで起動してリカバリーモード内のターミナルで実行する、あるいはSIPを無効にする必要があるがSIPの無効化についてはここでは割愛するため必要であれば下記記事をご参照頂きたい。
また、リカバリーモード内でコマンドを実行する場合はどのようなコマンドであってもSIPの無効化や「sudo」と入力する必要はない。

INDEX
主なBoot Argumentsと処理の内容一覧

下記ではmacOSで指定できる主なBoot Argumentsをまとめているが、macOSのバージョンやMacのモデルによっては効果がない、あるいは不具合を起こす可能性があるものも含まれるため実行する際は注意して頂きたい。
なお、管理人は下記のコマンドをmacOS Catalina 10.15.6/macOS Big Sur Beta 6の環境で実際に全て実行している。
コマンド | 実行内容 | SIPの無効化 |
---|---|---|
sudo nvram boot-args="-x" | 常にセーフブートで起動する | 必要 |
sudo nvram boot-args="-v" | 常にVerboseモードで起動する | 不要 |
sudo nvram boot-args="-s" | 常にシングルユーザーモードで起動する | 必要 |
sudo nvram boot-args="vm_compressor=2" | macOSのスワップを完全に無効化する | 必要 |
sudo nvram boot-args="vm_compressor=1" | macOSのメモリ圧縮機能を完全に無効にする | 必要 |
sudo nvram boot-args="iog=0x0" | MacBookシリーズなどで外部モニターを接続すると蓋を閉じなくても内蔵のモニターが消灯する macOS Catalina及びBig Surにおいて効果なし | 必要 |
sudo nvram boot-args="maxmem=16" | 使用されるメモリの容量を制限する 単位はGBであり、このコマンドの場合はmacOSで使用されるメモリが最大16GBに制限される macOS Catalina及びBig Surにおいて効果なし | 不要 |
sudo nvram boot-args="cpus=1" | 使用されるCPUのコア数を制限する 元々はマルチプロセッサ向けのコマンドだが現在のMacではコア数が対象となる このコマンドの場合は「1コア1スレッド」に制限される この場合、Hyper Threadingにより論理コアが存在していても1スレッドに制限される 「1コア1スレッド」に制限した場合、とんでもなくMacの処理が重くなるため注意 なお、使用されるコアを制限するのであってCPUのコア数自体は正常に認識される | 不要 |
sudo nvram boot-args="arch=x86_64" | macOSを強制的に64bitモードで起動する Mac OS X Snow Leopardなどではカーネル自体は64bit対応だが、デフォルトの動作は32bitになっているため、このコマンドでSnow Leopardなどを強制的に64bitで起動させることができる | 必要 |
sudo nvram boot-args="no32exec=0" | 32bitアプリの実行を許可する 64bitアプリのサポートが終了したmacOS Catalina以降でこのコマンドを実行した場合、一部のCLIアプリが動作するようになるが大半のユーザーにとっては関係がなく、GUIアプリは依然として実行不可 | 必要 |
sudo nvram boot-args='"Graphics Mode"="1024x768x32@30"' | 解像度を強制的に指定する このコマンドの場合、1024x768解像度・32bitカラー・リフレッシュレートを30Hzに制限するが、少なくともmacOS Catalina及びBig Surにおいて実行した場合、起動時に画面が真っ暗になりmacOSが固まってしまう 復旧にはキーボード操作によるNVRAMのリセットが必要 | 必要 |
sudo nvram boot-args="debug=0x144" | カーネルデバッグを有効にする ソフトウェアデベロッパーが主に使用するコマンドであり、このコマンドの恩恵を受けるには別途Apple Developer ProgramでKernel Debug Kitを入手する必要がある | 必要 |
sudo nvram boot-args="" sudo nvram -d boot-args | Boot Argumentsに指定した処理を全て削除する このコマンドによりここまでに紹介したBoot Argumentsコマンドの指定を全て消去し、デフォルトの動作に戻すことが可能 | 不要 |
Boot Argumentsの指定でトラブルが起きた場合の対処法

Boot Argumentsの指定でMacが起動しなくなったなどの場合、一度Macを終了させMacの電源ボタンを押してすぐにCommand+Option+P+Rキーを押し続けてNVRAMをリセットすることで大抵の場合、問題なく復旧させることが可能だ。
絶対安全というわけではないがBoot Argumentsの指定は例え起動不可になったとしてもNVRAMをリセットすれば解決するため、管理人は前述のようなコマンドの実行にそれほど抵抗はない。
Boot Argumentsの関連記事
上記でまとめたBoot Argumentsのいくつかは個別の記事で詳しく解説しているため、そちらもご覧頂きたい。


まとめ
特に有用であると思われるBoot Argumentsをまとめたが、中でも重宝するのは「セーフブート」、「Verbose」関連だろう。
SIPを無効にする必要はあるものの「セーフブートで起動する」という挙動をリカバリーモード内のターミナルで指定できるため、管理人はリカバリーモード中にMacをセーフブートで起動させたいといった場合に使用している。