Security Update 2018-003をエラー無くインストールする(High Sierra)

コンピュータ関連
スポンサーリンク


以前からのアップデートで必ずと言っていいほど出るエラー、
リカバリーHDのアップデートスクリプトエラー

今回の「Security Update 2018-003」でも同様にエラーが発生しアップデートに失敗します。

もうどうせ失敗するのならはじめから

リカバリーHDのアップデートスクリプトなんて除外してしまえ!

と思い、パッケージ内容を変更してインストールしてみました。

「Security update 2019-003」についてはこちら

スポンサーリンク

経緯

※以下はサポート外のMacにHigh Sierraをインストールして使っている場合のお話です。

10.13.5、10.13.6などバージョンナンバーが変わるアップデートが出た時にはコンボアップデート(統合アップデート)も一緒にリリースされ、そちらを使えば特に問題なくアップデートすることができました。

High Sierra 10.13.5へのアップデートでエラー発生!でも大丈夫?
「High Sierra 10.13.5のアップデート通知」が来ていることに気がつきました。 そのままアップデートしようとしましたが、 念のためフォーラムをのぞいて見ると何やらエラーが出ると報告されている。 どうやらリカバ...

が、10.13.6以降のセキュリティアップデート2018-002、そして今回の2018-003ではそうもいかず、必ず同じところでエラーが出るという悩ましい問題を抱えています。

それでも一応セキュリティアップデート自体は完了します。
再起動後にOSのバージョン横に表示される「ビルド番号」が変わることで確認できます。

ただしセキュリティアップデートのみで、同梱されている他のパッケージについてはインストール出来ているのかどうかはっきりしません。

問題への対処

毎回エラーが出るのはリカバリーHDのアップデートスクリプト。
(今回は「SecUpd2018-003HighSierra.RecoveryHDUpdate.pkg」)

それならば”パッケージ内の実行スクリプトを骨抜きにしてやろう!”というやり方がフォーラムに投稿されました。

当該パッケージ内の Scripts > replaceRecovery にある実行スクリプトをことごとく消去、
つまりインストールパッケージ自体は実行するものの、実際には何もせず終了する、という形です。

インストールは成功し、エラーもなく完了したと報告されています。

それでもいいのですが、
そもそもそのパッケージだけインストールリストから外せばいいのでは?と思い、
今回も前回(2018-002)と同様、Distributionファイルの方を変更してインストールしてみました。

Security Update 2018-002をインストール(High Sierra 10.13.6)
サポート外のMacにセキュリティアップデート(スタンドアローンアップデート)を適用する方法を紹介します。 通常はApp Storeからのアップデートで良いのですが、 今回はエラーが発生することが事前にわかっているのでアップデ...

Security Update 2018-003を変更

前回の記事と一部内容が重複しますが、念のため一連の手順を記します。

1、セキュリティアップデート2018-003をダウンロード

まずはAppleのサイトからファイルをダウンロードします。
Download Security Update 2018-003 (High Sierra)

サイズは1.7GBあります。

ファイルをダウンロード

スポンサーリンク

2、パッケージを展開

このままではインストールできませんので中の設定ファイルを書き換える必要があります。

デスクトップ上に適当なフォルダを作成します。

ダウンロードした「SecUpd2018-003HighSierra.dmg」を開き、
中にある「SecUpd2018-003HighSierra.pkg」を新たに作ったフォルダにコピーします。

フォルダにコピー

フォルダを右クリックして

サービス > フォルダに新規ターミナル

でターミナルを開き、

pkgutil --expand SecUpd2018-003HighSierra.pkg ~/Desktop/Expanded

と入力、リターンキーを押せば「Expanded」というフォルダにパッケージの中身が展開されます。

3、機種ID、BoardIDを調べる

機種ID(Macモデル)を調べる

りんご > このMacについて から、システムレポート → ハードウェア > 機種ID を見ると記載されています。

機種ID、BoardIDを調べる

BoardIDを調べる

ターミナルを開き、

ioreg -l | awk -F\" '/board-id/ { print $4 }'

と打てば BoardID が表示されます。

スポンサーリンク

4、Distributionファイルを変更する

Expanded フォルダ内に Distribution というファイル(xml)があるのでこれをテキストエディタで開きます。
Distribution

まず44行目にある番号の一つを自分の BoardID に書き換えます。

	var boardIds = ['Mac-06F11F11946D27C5','Mac-031B6874CF7F642A','Mac-A5C67F76ED83108C',...

さらに52行目から自分の機種IDを探して削除します。

	var nonSupportedModels = ['MacBookPro4,1','MacPro2,1','MacBookPro5,1',...,'iMac9,1',...

パッケージリストからの削除

次に RecoveryHDUpdate.pkg に関するものを削除していきます。

32行目

<pkg-ref id="com.apple.pkg.SecUpd2018-003HighSierra.RecoveryHDUpdate.17G4015" auth="Root" packageIdentifier="com.apple.pkg.SecUpd2018-003HighSierra.RecoveryHDUpdate.17G4015" active="RecoveryHD10(my.target.mountpoint)" installEnvironment="ClientOS">#SecUpd2018-003HighSierra.RecoveryHDUpdate.pkg</pkg-ref>

185行目

<pkg-ref id="com.apple.pkg.SecUpd2018-003HighSierra.RecoveryHDUpdate.17G4015" installKBytes="0" version="1.0.0.0"/>

この2箇所を削除します。

19-21行目の

<system-image id="SecUpd2018-003HighSierra.RecoveryHDUpdate">
  <pkg-ref id="com.apple.pkg.SecUpd2018-003HighSierra.RecoveryHDUpdate.17G4015"/>
</system-image>

も削除してよかったかもしれませんが、今回は残しました。

<system-image>

というものが何を設定してどう使われているのかわからないのと、
他のパッケージからの参照なんかがあった場合に困るので。(ないとは思いますけど)

ちなみにこれらの内容については
Distribution Definition XML Schema Reference から確認できます。
ちょっと情報が古くて載っていないものもありますが。(2012-12-13が最終更新)

終わったら上書き保存。

5、パッケージを再びまとめる

Distributionファイルから記述は消しましたがファイル自体(SecUpd2018-003HighSierra.RecoveryHDUpdate.pkg)はそのまま残しています。

ターミナルから

pkgutil --flatten ~/Desktop/Expanded ~/Desktop/Modified.pkg

と入力。
これで Modified.pkg というファイルが出来上がります。

Modified.pkg

スポンサーリンク

変更したアップデータをインストール

出来上がった Modified.pkg を開いてインストールします。

インストール

インストール

エラーが出ることもなく、無事にインストールが完了しました。
インストールが完了

特に問題ないとは思いますが、
万が一問題が起きた時のため、復旧できるようタイムマシーンなどでバックアップは取っておきましょう。

スポンサーリンク

また、High SierraのインストーラUSBも消さずに取っておきましょう。
リカバリーHDが使えなくなる以上、何かあった時にリカバリーモードで(と同様に)起動するのに必要になります。

インストール後のビルド番号は「10.13.6(17G4015)」に。
10.13.6(17G4015)

App Storeの更新履歴には出てきませんが、
システムレポートのインストール履歴にはちゃんと表示されています。
インストール履歴

パッチの再インストール

再起動後には画面が暗くなるなど、以前当てたパッチが外れています。

アプリケーション > ユーティリティ > Patch Updater.app

から再インストールしていきます。

Patch Updaterで入れたパッチを再インストールするには【High Sierra Patcher】
MacOS 10.13.4 にUpdateしたらディスプレイの輝度が変更できなくなりました。 なんか画面が・・・暗い、暗すぎるぅ。 設定のスライダーを動かしても変化なし。 なんじゃこりゃ〜 で、右往左往した結果、...

ただし、「Night Shift」パッチだけは入れない方が良いかもしれません。
パッチを当てた後にシステム環境設定パネル内で問題が起こることが報告されています。

コンフリクトは解消されたようです。(2019/01/24)

アップデート後のパフォーマンスについて

実を言うと前回の2018-002を適用以降、パフォーマンスがガッタガタに落ちました。
ちょっとしたことでレインボーカーソルになって引っかかる。

そして今回もまた同じような状態に。

どうやらメモリにプレッシャーがかかっている模様。

アクティビティモニタで確認してみると、メモリの使用量がはじめから多い。
色も緑から黄色へと変わり、それでブラウザのタブ一つ開くだけで引っかかるようになっているみたい。

でもこのiMacには8GBまでしかメモリは積めない。そしてもう目一杯積んでいる。

しばし悩んだ後、SMC(システム管理コントローラ)リセットをしてみることに。

やり方はこちら
Mac の SMC (システム管理コントローラ) をリセットする方法

基本的には電源引っこ抜いてしばらく待ってから起動するだけ。

そしたらなんと!!!

治りました。

もはやタブ一つで引っかかるようなことはありません。メモリプレッシャーも元の健全な状態に。

前回もそうすればよかったんだなきっと。

スポンサーリンク

まとめ

ということで無事にアップデートすることができました。

実を言うと前回の2018-002適用後に酷くパフォーマンスが落ちてから、
我慢できずに結局すぐ前の状態に戻して使っていました。

セキュリティは気になるけれどあの状態では使い物にならなかったし・・・。

が、今回はそんなことはありません。
普通に使えています。少なくとも今のところは。

これでとりあえず・・・大丈夫かな?

あくまでも自己責任で、ということにはなりますが、
この記事が少しでも参考になれば幸いです。

追記:手動でリカバリーHDのアップデート(2019/01/17)

その後、手動でリカバリーHDのアップデートを試みました。
SecUpd2018-003HighSierra.dmg をダウンロードして「~/Desktop/Expanded」フォルダに展開しておいてください。

さてターミナルを開いたら以下を入力。(#行は説明です。入力不要)

#一時的にパスを通しておきます
export PACKAGE_PATH=~/Desktop/Expanded/EmbeddedOSFirmware.pkg/RecoveryHDMeta.dmg
#スクリプトフォルダへ移動
cd ~/Desktop/Expanded/SecUpd2018-003HighSierra.RecoveryHDUpdate.pkg/Scripts
#スクリプトを実行
./replaceRecovery / /
#最後のスラッシュをスクリプトにターゲットボリュームとして渡しています。(スクリプト内の TARGET="$2")
#故に一つ目のスラッシュはダミーで特に意味はありません。

ただ実際にやってみたところ、
アップデートスクリプトは問題なく完了してアップデートされたはずなのですが、いざリカバリーモードで起動しようとすると丸ペケマークが出て起動できませんでした。
まぁ通常使う分には支障ありませんし、USBインストーラーもあるので心配はしていませんが。

【さらに後日の追記】
・・・とか言って
Post Install のパッチの存在をすっかり忘れておりました。

High SierraのUSBインストーラーから起動して「macOS POST Install」を開き、「Recovery Partition Patch」にだけチェックを入れてボリュームを選択、「Patch」ボタンでパッチを当てたらOKです。
リカバリーHD(復旧-10.13.6)から起動できました。

コメント

タイトルとURLをコピーしました