macOSのアップデート失敗後にダウンロード前の状態に戻す

こんにちは、hachi8833です。

macOSのアップデートに立て続けに失敗し、その後復旧したときの方法をメモします。

ファイルシステムが壊れるというより深刻な事態の場合は、起動しなくなったMacからネットワーク経由でデータをサルベージするもご覧ください。

症状

自分の場合はESET CyberSecurity ProにせかされてmacOS High Sierra 10.13.4アップデートをインストールしようとして発生しました。

もちろん、TimeMachineでのバックアップ完了を確認してから始めました。

App Storeアプリでのダウンロードがやけに時間がかかるなと思いつつ、やっと終わって再起動すると、黒背景のプログレスバーが表示されて10分ほど経過した後でこんな画面が出てきました。

せっかくなので検索用にメッセージをメモしておきます。

コンピュータにmacOSをインストールできませんでした
macOSのインストール中にエラーが起きました。Apple Diagnosticsを使ってMacハードウェアをチェックするには、シャットダウンしてから、電源ボタンを押し、すぐにDキーを押したままにして、診断が開始されるまで待ってください。
インストーラを終了してコンピュータを再起動してからやり直してください。
再起動

おそらく何らかの原因で、ダウンロードしたファイルに傷が入ってしまったのでしょう。

1. macOSを復旧する

ここから取れる道はいくつかあるといえばありますが、まずはmacOSを復旧します。

  • 起動後にDキーを押したままにして、自動診断を走らせる(これを最初にやるべき)

  • ハードウェアに問題が生じていたら、諦めてGenious barに持っていくなどする

  • ハードウェアが無事なら(自分の場合はこれ)、自動診断画面の[再起動]をクリックして再起動
  • 再起動直後にコマンドキーとRキーを同時にしばらく押し続け、復旧用の画面を出す

  • [TimeMachineバックアップから復元]を選ぶ

  • [続ける]を選ぶ

一度目は、このときにTimeMachineからバカ正直に復旧をかけてしまったので6時間ぐらいつぶしてしまいました。
二度目になって、復旧元としてローカルスナップショットを選択してみたら、3分もかからずに復旧しました。ローカルスナップショット、偉い!

ローカルスナップショットはHigh Sierra以降でないと使えませんのでご注意ください。

後はほぼ秒殺とも言える速度で復旧します。それなりに余分な容量を食うのでしょうけど、ローカルスナップショットありがたいです。

2. ダウンロードしたアップデートを消してやり直す

ローカルスナップショットのおかげでひとまず再起動前の状態には戻りましたが、ダウンロードしたファイルに傷が入ったままでは再起動するたびに同じ目に遭ってしまうので、何とかしてダウンロードからやり直したいところです。

ここからは以下の方法が使えます。

要するにダウンロードファイルを消してしまえば、ダウンロードをなかったことにしてくれるそうです。

エンジニア相手なら「ターミナルでsudo rm -rf /Library/Updates/*して再起動」でおしまいです。root権限が必要でした。


一応通常の手順も書いておきます。

Finderから消す場合は、Finderの[移動] > [フォルダへ移動]メニューを開き、/ライブラリ/Updatesと入力してフォルダを開き、そこにあるファイルを全部消し、再起動します。

これで再起動後にApp Storeを開くと、アップデートがちゃんとダウンロード可能になっています。

以上です。

関連記事

起動しなくなったMacからネットワーク経由でデータをサルベージする

Mac: homebrew caskを一括アップデートできるhomebrew-cask-upgrade

Mac+HomebrewでPostgreSQLが起動しない場合の対応

デザインも頼めるシステム開発会社をお探しならBPS株式会社までどうぞ 開発エンジニア積極採用中です! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

hachi8833

Twitter: @hachi8833、GitHub: @hachi8833 コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。 これまでにRuby on Rails チュートリアル第2版の監修および半分程度を翻訳、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れて更新翻訳中。 かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。 実は最近Go言語が好きで、Goで書かれたRubyライクなGoby言語のメンテナーでもある。 仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

hachi8833の書いた記事

夏のTechRachoフェア2019

週刊Railsウォッチ

インフラ

ActiveSupport探訪シリーズ