Chromeのプロファイル移行をMacで行う|書き出し機能がない理由と2つの道
新しいMacが届いて、Chromeのインストールは1分で終わります。問題はそのあとです。前のMacには、個人のメール用、仕事用、Google Workspaceのアカウントが他と同居してくれない取引先用、検証用、そして誰も作った記憶のないもの、といった具合にプロファイルがいくつも並んでいます。ところがChromeのメニューを探しても、それらをまとめて書き出す項目はどこにもありません。chrome プロファイル移行 macで検索して出てくるのはフォルダの場所と注意書きばかりで、それが正しい答えなのですが、探していた答えではありません。
書き出し機能が無いのには理由があり、そこを理解しておくと、プロファイルごとに「同期で作り直す」と「フォルダを手でコピーする」のどちらを選ぶべきかが決まります。
プロファイルは書類ではない
ブックマークはHTMLファイルとして書き出せます。パスワードはCSVとして書き出せます。プロファイル全体を書き出す機能だけが無いのは、プロファイルが1個のファイルではないからです。
中身を分解すると、履歴・クッキー・入力履歴といった複数のSQLiteデータベース、設定を保持するJSONファイル、インストール済み拡張機能の実体とその拡張機能が保存したデータ、キャッシュ、そして「鍵が別の場所に置かれている暗号化されたデータ」が同居しています。最後の項目が、この作業の難所です。
Chromiumの公式ドキュメントは、このフォルダの性格をこう説明しています。
The user data directory contains profile data such as history, bookmarks, and cookies, as well as other per-installation local state. 出典: chromium.googlesource.com
per-installation local state、つまり「そのインストール環境に固有の状態」という言葉が肝心です。一部は、そのMacに結び付いていることを前提に作られています。Googleが案内している正規の手順は、新しいMacで同じGoogleアカウントにログインして同期で作り直すことであり、それ以外はすべて、Chromeが動作を保証していないファイルのコピーになります。
どちらの道も実際には使えます。ただし運ばれるものが違い、そこを混同すると、よくある結末に着地します。新しいMacでプロファイルを開くと、見た目は完全に元通りで、ブックマークもアイコンも拡張機能もそろっているのに、すべてのサイトからログアウトしている、という状態です。
フォルダはどこにあるのか
macOSでは、Chromeのデータは次の1か所にまとまっています。
~/Library/Application Support/Google/Chrome/
この中に Default、Profile 1、Profile 2、Profile 3 といったディレクトリと、Guest Profile、System Profile、そして Local State というファイルが並びます。
ここで引っかかる点が2つあります。
- ディレクトリ名は作られた順番であって、名前ではない。
Profile 3は「そのMacで4番目に作られたプロファイル」という意味しか持たず、プロファイル選択画面に出ている表示名とは無関係です - 表示名・アイコン・そもそもどのプロファイルが存在するかという一覧は、プロファイルのフォルダの中ではなく
Local StateというJSONファイルのprofile.info_cacheに書かれている。フォルダだけを新しいMacに置いても、Chromeの選択画面には現れません
どのフォルダがどのプロファイルなのかを確かめる方法は決まっています。そのプロファイルの窓を開いて chrome://version を表示し、「プロファイルパス」の行を読むだけです。プロファイルの数だけこれを繰り返して手元に控えておく作業は数分で終わりますが、この工程を飛ばすと、間違ったフォルダをコピーして1週間後に気づく、という最も面倒な事故が起きます。
同期が運ぶもの、運ばないもの
新しいMacで同じGoogleアカウントにログインして同期を有効にすると、かなりの部分は復元されます。ただし、多くの人が当てにしている部分だけが、静かに抜け落ちます。
| 項目 | Chromeの同期 | フォルダのコピー |
|---|---|---|
| ブックマーク | 運ばれる | 運ばれる |
| 履歴 | 運ばれる | 運ばれる |
| 保存済みパスワード | 同じアカウントなら運ばれる | ほぼ失われる |
| 住所やお支払い情報 | 運ばれる | ほぼ失われる |
| 拡張機能の一覧 | 運ばれる | 運ばれる |
| 拡張機能が保存したデータ | その拡張機能が同期していれば | だいたい運ばれる |
| 開いていたタブ・リーディングリスト | 運ばれる | 運ばれる |
| クッキーとログイン状態 | 運ばれない | ほぼ失われる |
| サイトごとの権限・表示倍率 | 一部のみ | 運ばれる |
| プロファイルの表示名とアイコン | 運ばれる | Local Stateも一緒でなければ不可 |
決定的なのはクッキーの行です。Chromeの同期は仕様としてクッキーを運びません。したがって同期で作り直したプロファイルは、家具はそろっているのに全部ログアウトしている状態で立ち上がります。開くサイトが3つか4つのプロファイルなら、ログインし直して15分で終わります。社内ツールが十数個入っていて、それぞれにシングルサインオンとセキュリティキーの確認が挟まるプロファイルなら、半日仕事になります。
もう1行、拡張機能のデータも読み飛ばさないほうがよい箇所です。同期で運ばれるのは「どの拡張機能を入れていたか」という一覧で、その拡張機能がローカルに保存した設定やカスタムルールは、開発者が同期対象にしていなければ移りません。同期に対応していない拡張機能は珍しくありません。
手でコピーするときの手順
移す価値があるプロファイルについては、フォルダのコピーが有効です。条件が2つあります。
まず、Chromeを完全に終了させてから作業すること。窓を閉じるだけでは足りません。アプリケーションを終了させたうえで、アクティビティモニタに Google Chrome Helper が残っていないことを確認します。Chromeが動いている間はSQLiteのデータベースが開いたままなので、書き込みの途中でコピーすると、開いた瞬間に破損の警告が出て履歴が途中で切れているプロファイルができます。
そのうえで、進め方は2通りあります。
Chromeフォルダごと入れ替える
いちばん単純で、JSONを編集しなくて済む方法です。新しいMacをセットアップし、Chromeを一度だけ起動してフォルダ構造を作らせ、終了させてから、~/Library/Application Support/Google/Chrome/ を丸ごと前のMacのもので置き換えます。すべてのプロファイルと、それを説明する Local State が一致した状態で同時に移るため、食い違いが起きません。
代償は、新しいMacですでに作ってあったものが消えることです。新しいMacを2週間使っていてブックマークが増えているなら、それは失われます。この方法は移行の初日にだけ使えるもので、途中から使うものではありません。
プロファイルを1つずつ移す
Profile 2 だけをコピーしても、Chromeの選択画面には出てきません。手順としては、新しいMacで空のプロファイルを1つ作り、chrome://version でどのディレクトリが作られたかを確認し、Chromeを終了させてから、そのディレクトリの中身を前のMacのもので置き換えます。Local State にはすでにそのフォルダを指す記述があるので、取り込んだデータが仮の名前のプロファイルとして現れます。あとは表示名を変えれば終わりです。
Local State の profile.info_cache を直接書き換える方法もあり、プロファイルが6つあるような場合はそのほうが速いのですが、Chromeは起動のたびにこのファイルを書き直すため、必ず完全に終了させた状態で編集する必要があります。
コピーしたプロファイルがログアウトしている理由
ここが一番驚かれる部分で、不具合ではありません。
macOS版のChromeは、保存したパスワードとクッキーの中身を、ログインキーチェーンに置かれた鍵で暗号化しています。キーチェーンの項目名は「Chrome Safe Storage」です。この鍵はプロファイルのフォルダの中には入っていません。フォルダを別のMacへ移すと、暗号化されたデータだけが移動して鍵は元のMacに残るため、Chromeは「読めないパスワードの入れ物」と「復号できないセッションのクッキー」を受け取ることになります。見た目は完全なのに、全サイトがログイン画面に戻る理由はこれです。
ここから、実務上の判断が3つ出てきます。
- 移す前にパスワードを書き出しておく。Chromeで
chrome://password-manager/settingsを開き、パスワードのエクスポートを実行するとCSVができます。中身は平文なので、内蔵ディスクに置き、新しいMacで取り込んだ直後に削除します。共有フォルダやクラウドと同期するダウンロードフォルダには置かないでください - 移行アシスタントだけは例外で、ユーザーアカウントごと、つまりログインキーチェーンごと移すため、手でコピーしたときに壊れるパスワードとログイン状態が保たれます。5つのプロファイルを本当にそのまま持っていきたくて、新しいMacがまだ初期設定の画面にあるなら、使うべき道具はこれです
- ハードウェアのセキュリティキーや端末に結び付いたパスキーで守られているセッションは、どんなファイルコピーでも復元できません。端末に紐づけることが目的の仕組みなので、新しいMacで登録し直す以外に道はありません
同期で運ばれないものは大きく3つ、クッキー、キーチェーンに紐づく暗号化データ、そして同期に対応していない拡張機能のローカル設定です。この3つに何が乗っているかで、プロファイルごとの判断が決まります。
プロファイルごとに、移す価値を判定する
作業に入る前に効くのは、そもそもどのプロファイルが移す価値を持っているのかという問いです。5つあるうち、本当に必要なのはたいてい2つです。
前のMacでプロファイル選択画面を開き、1つずつ次の3点に答えてみてください。
- この1か月で開いたか
- 作り直すのが面倒な拡張機能の設定が入っているか
- 他と分けている理由が「Googleアカウントが同じ窓に同居できないから」だけではないか
3つ目に当てはまるだけのプロファイルは、作り直しがいちばん安く済みます。新しいMacでログインして同期に任せ、ログインし直す10分を払えば終わりです。拡張機能を丁寧に組んであり、サイトごとの権限が何年分も積み上がっているプロファイルは、フォルダのコピーとパスワードの書き出しに手間をかける価値があります。春から一度も開いていないプロファイルには価値がなく、運べば散らかりが引き継がれるだけです。移行は、消すことにコストがかからない唯一の機会でもあります。
プロファイルの数を減らすという解き方
プロファイルが5つある理由は、たいていの場合「5人分の人格がある」からではありません。同じ窓では共存できないWebアプリがいくつかあり、その背後に同居できないアカウントがある、というだけです。
Chromeのプロファイルはその問題を解決しますが、新しいMacに移した直後にコストが見えてきます。プロファイルはどれも「同じアプリケーションの別の窓」なので、Dockのアイコンは1つに集まり、Command+Tabの一覧ではすべて同じ名前で並び、切り替えるたびにプロファイル選択画面か、あるいは「いまどの窓がどのアカウントか」を頭の中で覚えておく作業が発生します。移行の手間は一度きりですが、この手数は毎日かかります。
Webアプリを1つの窓にまとめるブラウザは、同じ問題に別の形で答えます。Gmail、Slack、取引先の管理画面をそれぞれ独立した窓として持ち、セッションも通知設定も分けるという考え方で、これはアプリごとに独立したワークスペースとしてプロファイルが担っていた役割をそのまま置き換えます。仕事の単位で窓とセッションをまとめる仕組みはワークスペースで説明されており、どのサービスがその形で動くようにしてあるかは使えるアプリに一覧があります。すでに同種の道具を検討している場合は、料金と対応範囲の違いを並べたWaveboxとの比較が判断材料になります。
移す前にやると効く順番
この作業で費用対効果が高いのは、コピーそのものではなく、その手前の棚卸しです。chrome://version で各プロファイルのディレクトリ名を控え、作り直すのが本当に面倒なものだけに印を付け、残りは新しいMacで同期に任せる。ここまでを先にやると、コピーの対象は5つから2つに減ります。
そして移行が終わったあと、もう一度その一覧を見てください。「アカウントを分けるためだけに存在しているプロファイル」がいくつあるかが、次に道具を変えるかどうかの判断材料になります。プロファイルの数ではなく、窓の数と、切り替えに使っている操作の回数で数えるのがこつです。移行のたびに同じ手間を払い続けているなら、移行の手順を磨くより、プロファイルを増やさなくて済む置き方に変えるほうが、翌年に効きます。
よくある質問
Chromeのプロファイルをファイルとして書き出す方法はありますか?
ありません。ブックマークはHTML、パスワードはCSVとして書き出せますが、プロファイル全体を1つのファイルにまとめる機能は用意されていません。実際に使える道は、新しいMacで同じGoogleアカウントにログインして同期で作り直すか、Chromeを完全に終了させてから ~/Library/Application Support/Google/Chrome/ の中のフォルダを手でコピーするかの2つです。
コピーしたプロファイルが全部ログアウトしているのはなぜですか?
macOS版のChromeは、保存したパスワードとクッキーをログインキーチェーン内の鍵で暗号化しており、その鍵はプロファイルのフォルダに含まれないためです。別のMacではキーチェーンが違うので復号できません。移す前にパスワードをCSVへ書き出しておくか、ユーザーアカウントごと運ぶ移行アシスタントを使ってください。
どのフォルダがどのプロファイルなのか、見分けられますか?
そのプロファイルの窓で chrome://version を開き、「プロファイルパス」の行を読めば Profile 2 のようにディレクトリ名が分かります。フォルダ名は作成順であって表示名とは無関係なので、コピーする前にプロファイルの数だけ確認しておくと、別のプロファイルを移してしまう事故を防げます。
1つのプロファイルだけを移すことはできますか?
できますが、ひと工夫が要ります。プロファイルの一覧は Local State というファイルに書かれていて、フォルダを置くだけでは選択画面に現れません。新しいMacで空のプロファイルを作り、そのディレクトリ名を chrome://version で確認し、Chromeを終了させてから中身を差し替えると表示されます。