Claude Desktopの無限メモリリークバグでMacのディスクが論理破損した
Claude Max 5x plan で weekly usage limit を使い果たしたので、ゲームでもするかと思ってちょっと目を離してた隙に「Claude Code が120GBくらいメモリ食い潰してるから強制終了した方がええやで」ってMacさんが教えてくれたんですが、なんというか時すでに遅しな感じでした。
環境はMac Studio メモリ96GB。自分よりも大きなメモリ空間。そりゃswapでメモリスラッシングするわ。HDD積んでた時代なら、やべえ物理の音がしてたはず。
注意: 「うっかり」な人向けに補足です。ClaudeだからってAIが暴走した!消しやがった!の類いの話ではないです。単に Claude Desktop というアプリがバグを抱えてて無限にメモリ確保しようとしただけです。AIが暴走したの類いならむしろ笑い話だったかもしれない。これを対策しようと思うと、「アプリ何も入れられない!!!!」になるやつです(理論上どんなアプリでも生じうるやつなので)。
Anthropicさん、Claude Desktop バグ多すぎるので安定したソフトにしてください。。。。
で、再起動すると、パスワード入力まではうまくいくんだけど、その先プログレスバー5%だか10%だか、ほぼ初期状態で完全に停止。
最近のMacは電源ボタン長押しだけで復旧モードに入るのね。昔のMacだとCMD+Rとか覚えられないキー操作必要だったけど。
まずセーフモードを試した。結果は通常起動と同じ
次にディスクユーティリティで、first aidを試す。起動パーティションは問題なし。Data パーティションが破損状態。first aid失敗!!!!二回やっても失敗。
Apple サポートにお問い合わせ。この状態だとthunderboltでつないで「ディスクユーティリティ」->「ディスク共有」で読み出せるかも!でも、だめならOS再インストールからやってみ!(OS再インストールでもそのままだとファイルは消えないらしい?)と教えてもらった
ということで、生きてるMacBook Proにケーブルでつないで、ditto コマンドで吸い出し中。
最初Codexに「こういうときどうしたらいい?」と聞いたが、rsyncを進めてくる鬼畜の所業。読み出しが安定してるとは限らない(論理破損はまだあるはずなので、どっかでI/Oエラーが生じる可能性はある)のに、最初に一括読みだしする rsync は向かないじゃろうて。
で、今度は cp か ditto でいいんじゃね?っていってきたんでとりあえずdittoでコピー中。どうやらコピーで吸い出せる模様
追記: 復旧モードでは、ユーティリティ -> ターミナルで、ターミナルが起動できるらしい!!!!!!外付けSSDを接続して、ダイレクトにコピーすれば最速かつ安全やん。。。
追記: ターミナルでSSDにホーム以下を全部コピーできた。これが正しい保証もないし、ホームだけで良いのか?ってのはあるけど、ここからmacOS再インストールやる
余談: 壊れた外付けSSDのレスキュー
生きてるMacBook Proの方はディスク空き容量50GB。ってことで外付けSSDいるよねってことで二つほどSSDを引っ張り出してきたんだけど、片方がなぜか死んでる。mount不可能
Codexに調べさせたら、どうやらパーティションテーブルが壊れてるらしい。「なおして!」って言ったらなおしてくれた。さすがやで。久々に「ありがとう。これは最高の仕事だ」ってお礼を言うことになったよ。
