2021/11/23 2021/11/23
Ryzen3900X + KVM(CPU/GPUパススルー) + Big Surで夢見中のMacOS環境ですが、Catalina → Big Surは特に問題無く上げられていたのでMontereyに変えようと軽い気持ちで始めた所、サーバー稼働自体危ぶまれる所までトラブルが発生しました…
この記事はMonterey上から書けていますが、約1週間MacOSは再起不能 + サーバー自体も2時間強停止の状態からなんとか復活です。
色々なことを一緒にやるのは良くなかったです…
一応起きたことを書いておきます。
今回0.7.1→0.7.5に上げました。上げることは正しいのですが、config.plistに対する修正作業自体に失敗してました。
一番の失敗はProperTreeのOC Clean Snapshotが0.7.3で記法変更となったUEFI/Driversの記法に対応できていない事を認識していなかったことです。
0.7.3の記法変更は認識していて実際修正も行っていたのですが、直近音が鳴らなくなっていた事への対処でkext周りの見直しのためにOC Clean Snapshotを実施した上でconfig.plistを保存。
UEFI/Driversは気づかないまま旧い記述に戻って保存…
前週にホストOSであるArch Linuxと別ゲストOSであるCentOSのパッケージアップデートをかけた際にホストOS再起動をしてなかったのでやるかーと思い立ちました。
だったら最近上げてなかったX570 AORUS ELITEのBIOSアップデートもやろうとF34→F36eに上げました。
実はここにも地雷がありホストOSが何回かに1回しか起動しなくなってりますが、頻度は高くなかったのであまり気にせずの状態でスルーしてます。
一旦ホストOSは再起動され、立ち上げたBig Sur上からアップデートを実施
1回目の自動再起動走りますが、ここから悪夢がスタートします。
ここから悪夢が続きます。
OpenCoreバージョンアップ前に一応とKext UpdaterのEFI Backupを実行したんだった。
こういうときのKVM。ホストOSからパーティションをマウントして差し替えれば戻るさとEFIパーティションをマウントしてみたところ、見当たらず。
そうだ、保存先はデータパーティション側だ…たぶん。で、そちらをマウントしようとすると怒られる。APFSはLinuxは素では確かに読めない…
APFSを読めるようにホストOSに対してlinux-apfs-rw-dkms-gitをインストールするがマウントで怒られるため、再起動しないとダメかと思いホストOS自体再起動したところ、ホストOS自体が起動しない状態に。
リカバリモードでも起動しない&Arch LinuxのインストールUSBでも途中で落ちる始末に何か別トラブルが起きてる事に気が付き、もしやBIOS最新化した影響かとF36e→F34にダウングレードしたら、何事も無くホストOSは起動。
オイラの3時間を返してくれ…
で、APFSのデータパーティションもマウントできるようになり、覗いてみるもバックアップが取れてない… orz
まだまだ道程は長いとこの時点で半分諦めはじめました。
EFIバックアップが無い以上、もうMacOSを復旧できる状態にないと諦め、ブランクのSSDにクリーンインストールしようと作業開始。
その際、OpenCore 0.7.5のconfig.sampleからconfig.plistを作り直そうと手順を元に修正を始めました。
いざ見てみると手順が以前からちょこちょこ変わっていて、その中でそもそもRyzenパッチを最近更新してないことを思い出し、死亡中のconfig.plistを変えて動きを確認してみたりしましたが、状況は変わらず。
ただ、作り直したconfig.plistと死亡中のconfig.plistをdiffしたときに、ついに気が付きます。
「あれ、UEFI/Driversの記述が古いままだぞ!?」と。
いやいや、まさかこれだけじゃないだろうと思いつつ死亡中のconfig.plistを直して起動させてみた所、立ち上がったよ…
絶対更新したはずのUEFI/Driversがなんで戻ったのか色々頭を巡らせた結果、ProperTreeのOC Clean Snapshotを行った事を思い出し、これか…となりました。
ということでクリーンインスールではなく、再度アップグレードでいくことに。
障壁を取り去った今、もうこれで普通に上がるだろうと再度チャレンジ。
…何事も無く、上がりました!
ついでに音が最近鳴らなくなっていた状態への対処と、メモリスロットの警告表示の解消対処も行いました。
こちらは別で書こうと思います。
今回反省点は大きく2つかなと思っています。
① アップデート系(BIOS/OS/OpenCore)を一気にやらない
② EFIのバックアップをちゃんと取っておく&復旧しやすい場所に置いておく
この②についてはKext Updaterで取ったバックアップをEFI領域に置いておくことにしました。
元々EFI領域自体45MB程度と空きが無い状態が26MBと更に無くなりましたがまぁ大丈夫でしょう。
これでもダメならホストOS側に保管するようにします。
クリーンインストールにならなくてよかった…
コメントとトラックバック
コメントはありません