macOS Sierra 10.12.6のアップデート不良
2017年7月にmacOS 10.12.6のアップデートが来たので,いつも通りアップデートのために再起動したところ,起動画面のアップルマークのダイアログが右一杯に達して,その後login画面にならないという障害に陥った.
ネットの調査や,試行錯誤を経て,障害対策できたので,対処方法についての個人的なメモを残す.
障害回避方法 (いきなり結論)
私のMacの場合は10.12.5では問題なかったが,10.12.6に対応していないドライバが原因だった様なので,関係がありそうな拡張機能,ドライバを削除し,正常起動することを確認した.
障害内容としては,
* アップデート起動時のアップルマークのプログレスバーが最後まで行っても先に進まない(login画面が出ない)
心あたりとしては,
- キャノンのプリンタとかUSBがらみのドライバーをインストールしたことがある
- これまでのアップデートでは障害は発生しなかった という感じ.
やったこととしては,
- リモートでフリーズしているMacにloginする
- 怪しそうな拡張機能,ドライバを削除
- 再起動 (強制電源断&再電源導入)
以下,コマンド例.
$ ssh username@ip_address # 別のマシンから対象macにssh loginする
# 怪しそうなファイルがCanon printer Driverとのことなので,拡張機能から退避
$ sudo mv /Library/Extensions/CIJUSBLoad.kext/ ~/tmp/
# ついでに昔使っていたDisplayLinkのUSBディスプレイのドライバも退避
$ sudo mv /Library/Extensions/DisplayLinkDriver.kext/ ~/tmp/
$ sudo mv /Library/Extensions/DisplayLinkEthernetDriver.kext/ ~/tmp/
強制電源断後,再起動.
→これで,正常稼動.
なお,試してはいないが,リモードで操作できなくても,Command-Rで起動して,macOSの復元ユーティリティを表示させ,メニューバーのユーティリティーメニューから,ターミナルを起動させ,上記のコマンドで操作するというのも1つの方法の様だ.
障害原因
結果オーライで,最終的な原因究明までは至っていないが,
- CanonのUSBプリンタドライバ(バージョン不明) →参照リンク
- DisplayLinkのドライバ
のいずれかが,マイナーチェンジのmacOSに対応していなく,起動障害を引き起こしたのだろうと予想している.
Canonのプリンタドライバは,2016年12月に購入した,TS8030設定時に入れたモノ.
アップデートの際の事前準備
もし,macOSを10.12.6にアップデートをしようと考えているのなら,事前に(OS復旧可能な)バックアップ,不要ドライバの削除,外部アクセスできるような設定をしておくのが望ましい.
バックアップ
とにかく,日々Macを使っている場合は,バックアップは必須.
TimeMachineでのバックアップで充分.アップデートの回避方法が見つからなかった時は,2回ほどTimeMachineで10.12.5に戻して,通常環境を維持した.
障害対処できない場合,前の状態に戻れる可能性があることは,心強い.
但し,復旧時間が2〜3時間以上かかるので,時間的に余裕のあるときにアップデートするべきだろう.
不要ドライバの削除
使っていない周辺機器のドライバは,その後のトラブル回避の為に,積極的に削除した方がいい.
下記のフォルダは,時々眺めていて,知らない拡張機能は削除するようにした方が良いだろう.
もちろん,正当派としては,正式なアンインストーラーで消すのがいいだろうが,最終手段としてコマンドで削除(または移動)させる.
/Library/Extentions/
/Library/LaunchDaemons/
/Library/Preferences/
sshログインできるようにしておく
外部からloginして操作できると,何かと便利.但しsshとかわからない人は,手を出さないか,勉強するか,知っている人にお願いするのがいい.
参考:MacにSSHログインする方法 - リモートログインの設定 →リンク
誤解
今回の障害対策で時間がかった原因の1つとして,障害原因をセキュリティソフトのESETにあるのではないかと思い込んだことが大きかった.ESETをアンインストールしてからアップデートに挑んだ訳だが,ESETには今回は非がなかった.
参考 (今回削除した拡張機能)
結局,障害の主原因は不明のままだが,今回の作業で削除した項目を(怪しい順に)列挙しておく.
- Canon Printer Driver - CIJUSBLoad.kext (バージョン 16.0.10, 変更日 2016/2/16)
- DisplayLink - com.displaylink.displaylinkmanager.plist
- DisplayLink Driver - DisplayLinkDriver.kext (バージョン 2.5 (68993), 変更日 2016/3/10)
- DisplayLink Ethernet Driver - DisplayLinkEthernetDriver.kext (バージョン 1.11.0, 変更日 2016/3/10)
- m2TVEnabler - com.makie.m2TVEnabler.plist
- OneTVBooster - com.makie.OneTVBooster.plist
- Fitbit - com.fitbit.galileod.plist