普段はMacBook Pro (M2 Pro, 2023, 10CC/16CG/16GB/512GB) を使っていますが、MacOS 26.3.1からMacOS 26.4.1へのアップデートに失敗し、Apple(の代理店)への持ち込み修理が必要になった結果、3日間MBPが使えないという事象に遭遇しました。
本記事では、急遽メイン機に返り咲いたSurface Pro 7 (i5 Gen10, 8GB/256GB)をどのように騙し騙し使えるようにしたのかについて、備忘録的に述べます。
経緯
状況
- MacOS 26.3.1からMacOS 26.4.1へのアップデートに失敗、起動不可に
- キー入力に全く反応しない
- 重めのレポートの期限が1週間後
対処
- Apple Support appですぐに代理店を予約
- 新幹線に飛び乗り代理店を訪問
- 修理を依頼
- 「修理に3日かかる」「リセットが必要」の旨説明を受ける
修理依頼の際聞いた話によると、このMBP M2の機種に限ってOSアップデートに失敗することがあり、同様の事例の報告があるそうです。(問題があるとわかっているなら修正パッチを配信してほしいですが...)
Surface Pro 7
Surface Pro 7は以下のような状況でした。
- メモリが8GBしかなく、ほぼ100%で張り付き
- ストレージも空き容量10GB程度
- gitはかろうじて入っているが、LaTeXなどはない
- (画面が焼き付いている)
- Webに触れ始めて割とすぐMBPに買い換えたので開発環境がそこまで整っていない
この時点ではPCがリセットされるものだと思っていたということもあり、環境構築を2回行う手間を考慮し、Surface Pro 7を仮想環境用のクライアントとして使うことを念頭に、軽く動かすことに重点を置いて、以下の簡易な整備を行いました。
- 仮想メモリを自動設定→12~24GBの半手動に
- Adobe系アプリ、動画編集ソフト、LINEなどを消した
- 空き容量をPowerShellを使って増やした (後述)
-
git,gh,nanoぐらいは入れた - VSC他をアップデート
- iCloud系アプリを入れた
- IMEをいじって環境差分を減らした
- PDFをプレビューできるアプリとスクショを取りやすくするアプリを入れた
なお、仮想環境はGitHub CodespacesでUbuntuのイメージを利用しました。
以下では実施した項目の一部について詳細に述べます。
空き容量を増やす簡単な方法
空き容量を増やしたいが、何が大きな割合を占有しているかがわからない場合、各フォルダ・ファイルの容量は次の簡単なスクリプトをPowerShellで再起的に実行することによって確認できます。
Get-ChildItem | ForEach-Object {
$size = 0
if ($_.PSIsContainer) {
# フォルダの場合は中身の合計を計算
$size = (Get-ChildItem $_.FullName -Recurse -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum
} else {
# ファイルの場合はそのままのサイズ
$size = $_.Length
}
# カスタムオブジェクトとして出力
[PSCustomObject]@{
Name = $_.Name
Size_MB = [Math]::Round($size / 1MB, 2)
Type = if ($_.PSIsContainer) { "Folder" } else { "File" }
}
} | Sort-Object Size_MB -Descending
IME
Google日本語入力を入れて、変換/無変換にIME無効化/有効化を割り当てました。
Macユーザーには変換キーを押すのに左端まで指を持っていくのが地味にストレスだったので、これでかなり環境差分が減りました。
Live Conversionがないのは痛かったが、現環境で最善を尽くすならこうだと思います。
入れたアプリ
- ShareX
- Sumatra PDF
- Duet Display
ShareXはスクショが撮れるアプリ。Snipping Toolsでも撮影はできますが、
- (Macに比べて)遅い
- キー割り当てを変更できない
という問題があったのでわざわざサードパーティーを入れました。Alt+Shift+3で全画面スクショ、Alt+Shift+4で範囲選択を割り当てました。
PDFビューワーはいろんなアプリがありますが、
- ダークテーマがある
- 速い
を求めた結果、このアプリに決まりました。
Duet DisplayはiPadを拡張ディスプレイとして利用するために使いました。OSが異なることを考えるとアプリとしては申し分ない品質でした。
ただ、これはDuet DisplayではなくWindowsの問題ですが、Windowsではディスプレイ単位でウィンドウを切り替えられません。例えばPDFのビューワーを切り替えるときにトラックパッドのスクロールだけで切り替えられない点には注意が必要です。
MBPの復旧
土曜日に作業完了の旨の連絡があり、日曜日に回収した。受け取り後セットアップを覚悟してMBPを開いたところ、何故かリセットされていませんでした。
作業内容を見ると、
- リカバリーモードになることを確認した
- Apple Configration(Configrator?)のダウングレードにて改善
の旨記載がありました。
後から調べたところ、リカバリーモードでのApple Configratorによる復旧ではデータがリセットされないそうで、持ち込みせずともMacBookをもう一台用意すれば復旧できていた(かもしれない)ことが判明しました。
その他: 仮想環境化によって可搬性が劇的に向上した
あくまでサイドエフェクトですが、GitHub Codespaces側でMacの環境と同じようにuplatexをリアルタイムでコンパイル(=入力があるたびにコンパイル)する環境を構築しました。これにより、どこでも普段使っている環境が使えるようになったため、十分な解像度がある環境では今後も使えるかもしれません。