まとめ記事(この記事だけ見ればOK)
PRAMクリアやBR2032バッテリー交換を行うとNVRAMの設定がリセットされ画面が映らなくなるだけでなく、SIP(システム整合性保護)が自動的に有効(Enabled)に戻る。
SIPが有効なままだと、シングルユーザーモードでのファイル書き込み(システム変更)が完全にブロックされてしまうので必ず最初に以下の「ステップ0(SIP無効化)」を実行します。
【パターン1】手動コマンド入力で復旧する流れ
すべてを手入力で行なっていく場合は以下のステップで作業をすすめます。
ステップ 0:【最重要】リカバリーモードでSIPを無効化する
1. Macの電源を入れ、すぐに Command + R を押し続けてリカバリーモードを起動。
2. 上部メニューの「ユーティリティ」から「ターミナル」を開き、以下のコマンドを実行する。
csrutil disable
3. 実行後、左上のアップルメニューからMacを一度「システム終了」。
ステップ 1:シングルユーザーモードの起動と書き込み権限の取得
Macの電源を入れ、すぐに Command + S を押し続けてシングルユーザーモードを起動。起動後、最初に入力ディスクへの書き込み権限を取得。
mount -uw /
ステップ 2:NVRAMの書き換え(iGPUの固定化設定)
グラフィックをIntel HD Graphics 3000(iGPU)に固定する命令をNVRAMに書き込み、シングルユーザーモードの自動起動を解除。
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
nvram -d boot-args
ステップ 3:dGPU(Radeon 6630M)給電遮断スクリプトの作成
OS起動時に壊れたdGPUへの電源供給をカットするためのシェルスクリプトを作成し、実行権限を与える。
printf '%s\n' '#!/bin/sh' 'outb 0x750 0x07' 'outb 0x751 0x33' 'outb 0x754 0x02' 'outb 0x755 0x02' > /sbin/disable-amd.sh
chmod +x /sbin/disable-amd.sh
ステップ 4:自動実行設定(LaunchDaemons)の登録
Macが起動するたびに、手順3のスクリプトが自動的に実行されるようplistファイルを作成。
cat << 'EOF' > /Library/LaunchDaemons/com.disable-amd.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://apple.com">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.disable-amd</string>
<key>ProgramArguments</key>
<array>
<string>/sbin/disable-amd.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
EOF
ステップ 5:再起動
すべての設定が完了したら、Macを再起動。正常にデスクトップ画面が表示されれば復旧完完了。
reboot
【パターン2】USBメモリを使って手打ちミスを減らす方法
あらかじめ通常のMac環境で復旧USBメモリを作っておき、トラブル発生時に最小限の手間で復旧させる手順。
A:事前準備(通常起動できる時に作業)
1. USBメモリ(半角英大文字で RECOVERY という名前にフォーマットしたもの)を用意する。
2. テキストエディタを開き、以下のコードをそのまま貼り付けて fix_gpu.sh というファイル名でUSBメモリの直下(ルート)に保存する。
#!/bin/sh
mount -uw /
nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
nvram -d boot-args
printf '%s\n' '#!/bin/sh' 'outb 0x750 0x07' 'outb 0x751 0x33' 'outb 0x754 0x02' 'outb 0x755 0x02' > /sbin/disable-amd.sh
chmod +x /sbin/disable-amd.sh
cat << 'EOF' > /Library/LaunchDaemons/com.disable-amd.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://apple.com">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.disable-amd</string>
<key>ProgramArguments</key>
<array>
<string>/sbin/disable-amd.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
EOF
echo "--- GPU Fix Completed! Rebooting... ---"
sleep 2
reboot
B:トラブル発生時の復帰手順
Macの電源を入れ、すぐに Command + R を長押ししてリカバリーモードを起動。メニューの「ユーティリティ」>「ターミナル」を開き、
csrutil disable を実行して一度Macをシステム終了。
②シングルユーザーモードでUSBスクリプトを実行:
作成したUSBメモリをMac miniに挿し、Command + S を押しながらシングルユーザーモードで起動。
黒い画面が出たら、以下の2行だけを入力。
cd /Volumes/RECOVERY
sh fix_gpu.sh
💡 さらにミスをなくすコツ(Tabキー補完):
cd /Volumes/REC まで入力した時点で [Tab]キー を押すと、USBメモリの名前(RECOVERY/)が自動補完される。続く2行目も sh fi あたりで [Tab]キー を押せばファイル名が自動補完されるため、一文字も打ち間違えることなく確実に実行できる。実行後は全自動で処理が進み自動で再起動がかかる。
0 件のコメント:
コメントを投稿