新たなセキュリティアップデート「Security update 2019-002」が公開されました。
早速インストールしてみたところ・・・パフォーマンスガタ落ち&激重で操作性に問題が生じました。
不具合というよりはうまくインストール出来ていない感じ。
その後手段を変えて何度かインストールした結果、ようやく安定したのでその方法を紹介してみます。
お約束ですが、以下の手順は「サポート外」のMacに High Sierra をインストールしている場合でのお話です。通常はApp Storeなどからアップデートを適用してください。
「Security update 2019-003」はこちら↓
先にリカバリーHDをアップデートしてからセキュリティアップデートを行う
Appleは2019/03/25(現地時間)に「Security update 2019-002」を公開しましたが、その後数日経って更に新しい「Security update 2019-002(名称同じ)」をリリースしました。
実際確認したものでは最初のものが 10.13.6(17G6029)、後のものが 10.13.6(17G6030)になりました。
以前のインストール方法ではパフォーマンスが落ちて使い物にならない。
そこで今回は違う方法でアップデートしました。
1、アップデータファイルをダウンロード
まずアップデータのファイルをこちらからダウンロードします。
→ Download Security Update 2019-002 (High Sierra)
2、パッケージを展開し、中にある「リカバリーHD更新スクリプト」を実行
インストール時にエラーが出るのはリカバリーHDの更新プロセスなので、先にそれをクリアしてしまいます。
ダウンロードされた「SecUpd2019-002HighSierra.dmg」を開きます。
マウントされたディスクイメージ「Security Update 2019-002」を
右クリック > サービス > フォルダに新規ターミナル
ターミナルからコマンド入力。パッケージの中身を展開します。
pkgutil --expand SecUpd2019-002HighSierra.pkg ~/Desktop/Expanded
しばらく時間がかかるので待ちましょう。
デスクトップ上に「Expanded」フォルダとして展開されたら、「リカバリーHDのアップデートスクリプト」を実行します。
ターミナルから直接スクリプトの尻を叩く(実行する)とエラーなくアップデートできます。
#一時的にパスを通す export PACKAGE_PATH=~/Desktop/Expanded/EmbeddedOSFirmware.pkg/RecoveryHDMeta.dmg #スクリプトフォルダへ移動 cd ~/Desktop/Expanded/SecUpd2019-002HighSierra.RecoveryHDUpdate.pkg/Scripts #スクリプトを実行 ./replaceRecovery / / #最後のスラッシュをスクリプトにターゲットボリュームとして渡しています。
ずらずら〜っとログが出てきて
Operation fully complete
Operation finished
と言われたら完了です。
3、ターミナルからコマンドラインでソフトウエアアップデート
次にソフトウェアアップデートを行います。
softwareupdate -i -a
これは利用可能なアップデートを全てダウンロードしてインストールするという意味。
すでにファイルはダウンロードしてありますが、
それをインストールしようとすると「BoardID」や「Macモデル」の書き換えが必要となります。ちょと面倒臭い。
コマンドラインからならその手間が省けます。
実行するとアップデートがはじまります。
$ softwareupdate -i -a Software Update Tool Finding available software Downloading セキュリティアップデート2019-002 Downloaded セキュリティアップデート2019-002 Installing セキュリティアップデート2019-002 Done with セキュリティアップデート2019-002 Done. You have installed one or more updates that requires that you restart your computer. Please restart immediately. To automate the restart process with softwareupdate(8), use --restart.
結構時間がかかりました。気長に待ちましょう。
終わったら「リスタートが必要」と言われますので、ターミナルを閉じて再起動。
4、外れたバックライトコントロールなどのパッチを再インストール
バックライトコントロールなどのパッチが外れているので
アプリケーション > ユーティリティ > Patch Updater.app
から再度インストールしましょう。
これで問題なくアップデートできたはずです。
なお現時点ではリカバリーHD関連のパッチは当てていませんが(使わないので)、使う人はUSBインストーラ(次項参照)から起動してパッチを当てておきましょう。
もう一つのインストール方法
一つ前のバージョンをインストールした時の方法です。
これでも問題なくアップデートできます。
上の方法が万が一うまくいかなかった場合にはこちらの方法も試してみてください。
- macOSのインストーラを作成(※手元にあれば新たに作る必要はありません)
- インストーラの中にあるリカバリーHD関連のファイルを最新のものに置き換え
- OSを上書きインストール
- ターミナルからコマンドラインでソフトウエアアップデート
- 外れたバックライトコントロールなどのパッチを再インストール
1、macOSのインストーラを作成
こちらの記事を参考にUSBインストーラを作成してください。
以前インストールした時のものが残っていれば新たに作る必要はありません。
ツールからダウンロードできるmacOSのインストーラもバージョンは「13.6.02」。
2018年7月リリースから変わっていませんので。(2019/03/28現在)
2、インストーラの中にある一部ファイルを最新のものに置き換え
まずアップデータのファイルをダウンロードします。
ダウンロードした「SecUpd2019-002HighSierra.dmg」を開き、
マウントされたディスクイメージ「Security Update 2019-002」から中身を展開。
展開されたフォルダ内の「EmbeddedOSFirmware.pkg」を右クリックしてパッケージの内容を表示、「RecoveryHDMeta.dmg」を開きます。
中に入っている4つのファイルをUSBインストーラの中にあるものと置き換えます。
- AppleDiagnostics.chunklist
- AppleDiagnostics.dmg
- BaseSystem.chunklist
- BaseSystem.dmg
3、OSを上書きインストール
一旦電源を切り、optionキーを押しながら再起動。
USBインストーラを選んで起動し、OSを上書きインストールします。(ディスク内容を削除orフォーマットせずにそのままインストール)
途中再起動がかかったら再びoptionキーを押してUSBインストーラから起動。
「macOS POST Install」からパッチを適用して再起動。
たちあがったら10.13.6(17G65)に戻っているはずです。
4、ターミナルからコマンドラインでソフトウエアアップデート
ターミナルを開き、
コマンドラインからソフトウエアアップデートを行います。
終わったらリスタート。
5、外れたバックライトコントロールなどのパッチを再インストール
バックライトコントロールなどのパッチが外れているので再度インストールしましょう。
試行錯誤の経緯
あまり意味はありませんがここに至るまでの試行錯誤を書いておきます。
1、スタンドアローンのアップデータをそのまま適用
ダウンロードしたアップデータファイルを展開後、
Distributionファイル内の「boardId」および「除外モデル」部分を変更。
リカバリーHD関連の記述はそのまま残して実行。
結果:当然エラーを吐いて終了。ただしセキュリティアップデートは適用済み。
2、リカバリーHDのパッケージを除外してアップデータを適用
上記Distributionファイル内のリカバリーHD関連を削除して適用。
のちに手動でリカバリーHDのアップデートを敢行。
結果:エラーなくセキュリティもリカバリーHDもアップデート完了。ただし激重!SMCリセットも効かず。メモリプレッシャーは問題なさそうなのになぜかブラウザのタブ一つ開くのに手間取る。
一旦リセット。(OS上書きインストール)
3、10.13.6(17G65)から2019-002を適用
今までのセキュリティアップデートをすっ飛ばして直接2019-002を適用。
一つ上の手順で作ったリカバリーHDなしのアップデータを適用。
結果:エラーなくインストールできるがパフォーマンスガタ落ちは相変わらず。ダメダメ
一旦リセット。(OS上書きインストール)
4、10.13.6(17G65)から2019-001を適用
もうあきらめて一つ前に戻そうかとOSの再インストール。そして2019-001を適用。
元に戻った。やはり軽い、良い感じ。
この時、セキュリティアップデートは「2019-001」が適用され、リカバリーHDは「2019-002」の内容になっている状態。
リカバリーHDへのパッチは当てていない。
5、10.13.6(17G5019)から2019-002を適用
「2019-001」が適用された10.13.6(17G5019)から、コマンドラインでソフトウエアアップデートを実施。
問題なくアップデート完了。
結果:セキュリティアップデートも適用され、パフォーマンスも問題ない。
ただしリカバリーHDがすでに最新のものになっていたのでエラーが出なかったのだと思われます。
6、10.13.6(17G6029)から10.13.6(17G6030)へ
名前の同じ「2019-002」が再びアップデート通知されました。
そこでターミナルからソフトウェアアップデートをしてみました。
Installing セキュリティアップデート2019-002 Done. Error installing updates.
失敗。やはりリカバリーHDでひっかかったようです。
ビルド番号は変わっていたのでセキュリティアップデートは適用されたようですが中途半端。
結果:セキュリティアップデートは適用されたがエラー発生。パフォーマンスもガタ落ち。
最初に紹介した方法を試すのに良い機会かもしれないとUSBインストーラに「2019-001」のファイルを入れ、OSを上書きインストール。
つまり古い状態にもどしてから試したところうまくいきました。
パフォーマンスも問題ありません。
なんだかんだ結構時間がかかってしまった。
・・・つかれた。
【追記】セキュリティアップデート2019-003
次のアップデート「セキュリティアップデート2019-003」も1番目に紹介した手順でアップデートできました。
コメント
リカバリーHDのアップデートスクリプトがわからないのですが、どうすればよいでしょうか??
記事中にあるコマンドをターミナルから入力してください。デスクトップ上に「Expanded」というフォルダがあり、その中に展開されていればそのままコピペでいけるはずです。それがリカバリーHDのアップデートスクリプトを実行すると言う意味です。
コピペとはどこにすれば良いでしょうか?
記事中にあるコマンドをターミナルから入力してください。
大変助かりました!!
スクリプトの最後に、Operation finishedの後にこれが出てきてしまったのですが大丈夫でしょうか。。
HFS/CS EnsureRecoveryPartition: Error: A boot helper partition is required when working with Core Storage (-69690)
調べたところ、SIP関連の可能性はあるかなーと思っています。
ソフトウェアアップデートを実行してエラーが出ていなければ大丈夫だと思います。
リカバリーHDはアップデートに失敗している可能性がありますね。ちなみにスクリプトでは現在のルートパスを渡しています。この時High Sierraのディスクが渡されることを期待しているのですが環境(パーティションテーブル)によってはちょっと違った結果になるのかもしれません。どこに問題があるのか定かではありませんがリカバリーHDの代わりにUSBインストーラから起動できますし、問題はないかなぁと思います。
もしソフトウェアアップデートでエラーが出ていたら2番目の方法でいけるかと。すこし時間がかかるのが難点ですが。
丁寧にありがとうございます!
実はこの後2番目の方法も試したのですが、両方とも同じ場所で止まってしまいました。。
ターミナルでアップデートした後、再起動してこの記事の2つ目のCore Storageで〜という画面になってしまいます。。
https://qiita.com/hidehiro98/items/c7b029cd611a1ef37b1a
リカバリーHDがうまくいってない感じですかね。。
2の方法で作ったUSBでクリーンインストールなども試そうかなと思っています。
多分このあたりがヒントかな?というのを見つけました。
Yosemite使いは知っておくべき「Core Storage対策」
Mac OS X 10.10 (Yosemite) で CoreStorage を無効にする
ターミナルから diskutil list で見てみるとこちらではこうなっています。
Apple_HFS Macintosh HD
そちらでは
Apple_CoreStorage Macintosh HD
のようになっていませんか?
となるとパーティションを変換するか、スクリプトに渡すパスを変更するか(どう変わるのか、そもそも変わるのか、それでスクリプトが動くのかは要検証)などの対応が必要そうです。
【追記】
diskutil cs list
とターミナルから打ち、出てきた情報から「Logical Volume xxxxxxxx-xxxx…」下の「Disk:」項目を探してください。Volume名からHigh Sierraのパーティションであることを確認し、それが例えば「disk1」だったとしたら記事中のスクリプトの2番目の値、”/(スラッシュ)”を
./replaceRecovery / disk1
のように変えて実行してみてください。うまくいけばアップデートできるかも。
ありがとうございます!
$ diskutil cs revert disk1
で物理パーティションに戻したところ1の方法で出来ました!!
ちなみに同じ方法で2019-003もいけました。
https://support.apple.com/kb/DL2004?locale=ja_JP
うまくいったようで何よりです。
ところで2019-003も来ていたんですね。全然気がつきませんでした。(^^;
結果のご報告もありがとうございます!