最近、MBP M4 の 16GB メモリがきつくなってきたので、Mac mini M6 32GB メモリに変えようかなーとずーっと思っていました。
でもよく考えたら、新型のタッチパネル MBP が発表されたら、今の M4 の下取り価格が下がるのでは?ということで、焦って購入しました。
キーボードとマウスがない
Mac mini M6 はデスクトップ機なので、当たり前ですがキーボードもマウスもありません。というわけで、昔の Anker の Bluetooth キーボードと、Amazon で 500 円くらいの有線マウス、それと USB-A から USB-C の変換器を購入しました。
「マウスだけでも設定できる」という話もネットにあったんですが、自分がやった限りはできませんでした。最初のセットアップはキーボードとマウスの両方が必要です。さらにモニタも必要です。逆に、一度設定してしまえば、あとは画面共有でコントロールできます。
移行アシスタントは1時間で終了
届いたら、Thunderbolt でつないで移行アシスタントでコピー。これは 1 時間で終わりました。
実はコピーの前に、Claude に移行チェックリストを作らせておきました。旧機の cron や LaunchAgent を先に止める、認証まわりは引き継がれたか確認する、といった内容です。
起動してから、チェックリストと照らし合わせる
Mac mini M6 を起動してからは、チェックリストと照らし合わせながら、Claude と一緒に 1 つ 1 つ復旧させていきました。丸ごとコピーしたのに、実際に動かすと、いくつか落とし穴がありました。
ブラウザ自動化のブラウザ本体が入っていなかった
ブラウザ自動化で使っているツール(Playwright)のスクリプトを動かすと、こんなエラーが出ました。
BrowserType.launch_persistent_context: Executable doesn't exist at ~/Library/Caches/ms-playwright/chromium-...
venv(Python の仮想環境)は丸ごとコピーされたのに、ブラウザ本体は ~/Library/Caches に入る「キャッシュ」だったので、コピーされていなかったわけです。ブラウザを使う自動化ジョブがほぼ全部、これで止まるところでした。playwright install chromium を venv ごとに実行して解決。
SNS の「アクセス確認」で無人投稿が止まる
ある SNS の自動投稿が、無人実行だと「アクセス確認」画面にリダイレクトされて投稿できませんでした。画面を表示したまま手動で実行して、確認を通したら復旧。このとき、完了前にブラウザを閉じてしまって一度やり直したのはナイショです。
crontab は引き継がれない
crontab の本体は移行アシスタントでは引き継がれませんでした。自分で管理している正本のファイルと現行を比べて、スクリプト経由で反映。Claude Code の実行環境だと crontab の書き込みが、エラーも出ずに失敗するので、通常のターミナルで自分で実行しました。
dry-run のつもりが本番書き込み
動作確認のために各ジョブを dry-run で一斉に回したら、dry-run の機能がそもそも無いスクリプトがあって、本番のデータに 220 行を追記してしまいました……。バックアップから元に戻して実害はなし。dry-run があるかは、--help ではなくコードで確認しようと思います。
UPS をつないで、電源まわりの設定
Mac mini M6 には UPS もつないでいます。ここで知ったのが、UPS 給電時の電源設定は、コンセント給電時とは別プロファイルだということ。初期値のままだと、停電して 1 分でスリープしてしまい、せっかくのジョブも通信も止まります。
sudo pmset -a autorestart 1 # 停電復旧後に自動起動
sudo pmset -u haltremain 10 # UPS 残り 10 分で自動シャットダウン
sudo pmset -u sleep 0 disksleep 0 womp 1
あと、FileVault がオンだと再起動後にパスワード入力で止まってしまい、自動ログインが使えません。据え置きの無人機なので FileVault はオフにして、自動ログインに設定しました。ディスクが暗号化されなくなるのはトレードオフです。
UPSはCyberPowerのCPJ500なんですが、付属のアプリを使わなくてもMacOSからコントロールできます。
事後の設定も1時間くらい
こうした事後の設定も Claude と進めて、大枠は 1 時間くらいで終わりました。最後に再起動して、自動ログイン・VPN・cron・LaunchAgent が全部ちゃんと戻ってくることを確認。
旧機はまだ初期化せず、全ジョブの動作確認が済むまで電源オフで残しています。
「丸ごとコピー」といっても、ブラウザ本体はキャッシュだからコピーされない、crontab は引き継がれない、UPS の電源プロファイルは別、とそれなりに落とし穴がありました。事前にチェックリストを作っておいたおかげで、サクッと移設できたと思います。