
*画像は移行の概念を示す生成イメージです。実際の操作画面ではありません。*
MacのOllamaモデルは、既存ファイルを外付けSSDへコピーし、OLLAMA_MODELSで保存先を指定して、Ollamaを起動し直すことで移行できます。容量を空けるために元のファイルを整理するのは、外付け側での動作を確認した後です。
この記事では、公式のOllamaアプリを使い、既定の~/.ollama/modelsに保存したモデルを初めて移す場合を扱います。アプリ本体はMacに残します。Homebrewのサービス、Docker、別PCのサーバー、既にシンボリックリンクを使った環境には、そのまま適用しないでください。
手順は2026年9月17日に確認した公式資料を基に構成しています。macOS実機での移行・再起動試験は未実施です。 各段階の確認が一致しなければ先へ進まず、元データを残して原因を調べてください。
移行で変わるものと、先に用意するもの
外付けへ移すのはモデルの保存ファイルです。実行時に必要なMacのメモリ容量は、SSDを増設しても増えません。製品や容量を選ぶ段階なら、ローカルLLM用Macの外付けSSD選びを参照してください。
ここではSSDのボリューム名をLLM-SSDとし、その中にOllamaフォルダーを作ります。ボリュームは、Finderで1つのディスクとして表示される保存領域です。実際の名前が違う場合、以下のパスをすべて自分の環境に置き換えます。
| 対象 | この記事の例 | 用途 |
|---|---|---|
| コピー元 | ~/.ollama/models |
現在のモデル。確認が終わるまで保持 |
| SSDの接続先 | /Volumes/LLM-SSD |
実際に接続されたSSDか確認 |
| コピー先 | /Volumes/LLM-SSD/Ollama/models |
移行後にOllamaへ指定するフォルダー |
SSDにはモデル一式をコピーできる空きを用意します。再取得できない独自モデルは別の媒体にもバックアップしてください。この作業のために、データの入ったSSDを初期化する必要はありません。
1. 現在の保存先とモデルを記録する
ターミナルで次を実行します。
# 移行前後で同じモデルを比較し、別サーバーへの接続を見落とさないため。
ollama --version
ollama list
printenv OLLAMA_HOST
launchctl getenv OLLAMA_MODELS
du -sh "$HOME/.ollama/models"
モデル一覧の名前とタグを控えます。OLLAMA_HOSTにリモート接続先が表示された場合は、この作業を続けず、ローカルのOllamaを操作しているか確認します。launchctl getenv OLLAMA_MODELSに既存の保存先が出る場合も、この記事の既定パスからの移行とは条件が異なります。
getenvが空でも、別の起動方法や設定がないことまでは証明できません。Finderの「移動」→「フォルダへ移動」で~/.ollama/modelsを開き、実際にモデルのファイルがあることを確認します。フォルダーが見つからない、リンクになっている、モデル一覧に比べて極端に小さい場合は、先に現在の保存先を調べます。
Ollama公式では、macOSのモデル既定保存先と、保存先を変える変数を案内しています。Ollama公式FAQ
2. Ollamaを終了し、modelsフォルダーをコピーする
生成中のチャットとモデルのダウンロードを止め、メニューバーのOllamaからアプリを終了します。ウインドウを閉じるだけで終了したと判断しないでください。手動のollama serveなども併用している場合は、それらの起動元も確認します。
FinderでSSDを開き、次の順番でコピーします。
- SSD内に新しい
Ollamaフォルダーを作る。 - 「フォルダへ移動」で
~/.ollamaを開く。 modelsフォルダーを選び、コピーする。- SSD内の
Ollamaへ貼り付け、コピー完了を待つ。
コピー元を残す操作を選び、同名のコピー先が既にある場合は上書き・結合をせずに停止します。 検証途中のデータや別モデルと混ぜると、後で内容を比較しにくくなります。
コピー先の構造は次の形です。models/modelsと二重に入っていないか確認してください。
/Volumes/LLM-SSD/Ollama/models/
├── blobs/
└── manifests/

*Ollama公式FAQの保存先設定を基に筆者作成。図のパスは例です。*
コピーの確認を一段強めるなら、Ollamaを終了したまま、モデル本体と管理情報をそれぞれ比較します。大きなモデルでは読み取りに時間がかかります。
# 容量が同じだけでは内容の一致を確認できないため、両方の中身を比較する。
diff -qr "$HOME/.ollama/models/blobs" "/Volumes/LLM-SSD/Ollama/models/blobs"
diff -qr "$HOME/.ollama/models/manifests" "/Volumes/LLM-SSD/Ollama/models/manifests"
両方とも何も出ず正常終了すれば、この比較で差は見つかっていません。異なるファイル、片側だけのモデル、アクセスエラーが出たら、その原因を確認してから進めます。.DS_StoreなどFinderの補助ファイルだけの差と、モデルデータの差は分けて判断してください。
3. アプリが使う保存先を外付けへ切り替える
FinderでSSDが接続されていることを確認し、ターミナルでも対象を調べます。
# 同名のフォルダーと実際のSSDを取り違えないため、ボリューム情報を確認する。
diskutil info "/Volumes/LLM-SSD"
ls "/Volumes/LLM-SSD/Ollama/models"
diskutil infoの接続先や容量が意図したSSDと一致し、lsでblobsとmanifestsが見えることを確認します。見つからない場合は、SSDの名前やFinderでの表示を確認してください。SSDがない状態で/Volumes/LLM-SSDを手作業で作って進めないでください。
Ollamaを終了した状態で、保存先を設定します。sudoは付けません。
# Finderから起動する公式アプリへ保存先を渡すため、launchctlで設定する。
launchctl setenv OLLAMA_MODELS "/Volumes/LLM-SSD/Ollama/models"
launchctl getenv OLLAMA_MODELS
2行目が指定したパスと一致したら、「アプリケーション」からOllamaを起動します。設定前から動いているプロセスには、新しい値が反映されていない可能性があります。
ターミナルでのexportや.zshrcへの追記だけでは、Finderから起動するアプリに同じ設定が渡ると判断できません。シェルの環境変数は、そのシェルから動くコマンドへ継承されるためです。Apple公式・ターミナルの環境変数
この記事は、Ollama公式のMacアプリ向け設定方法に合わせてlaunchctlを使います。Ollama公式FAQ・Macの環境変数設定
4. 一覧・生成・実際の保存先を確認する
起動後にモデル一覧を確認します。
# コピー前の一覧と照合して、タグやモデルの欠落を確認する。
ollama list
続いて、控えておいた既存モデルの名前を使い、短い質問を送ります。下の保存済みのモデル名:タグは、そのまま実行せず置き換えてください。
# 未保存モデルの新規ダウンロードと混同しないよう、既存モデルを指定する。
ollama run '保存済みのモデル名:タグ' '日本語で一文だけ挨拶してください。'
予期しない大容量ダウンロードが始まる場合は中断し、モデル名・タグ・コピー先の階層を調べます。モデル一覧と短い回答が一致しても、内蔵側のコピーを使っている可能性は残ります。
補助的な確認として、生成直後などモデルが読み込まれている間に、開いているファイルを調べられます。
# 外付け側のモデルファイルを開いているプロセスを確認するため。
lsof -nP | grep -F '/Volumes/LLM-SSD/Ollama/models/'
外付け側のblobs内のファイルと、Ollamaに関係するプロセスが表示されれば、読取り先を確かめる材料になります。何も表示されない場合は、タイミングや権限の影響もあるため、移行失敗とは断定しません。 逆に、設定値の表示だけで元データを削除することも避けます。
新しいモデルを追加する機会には、SSD側に新しいモデルファイルが作られ、内蔵側が増えていないことも確認してください。モデル操作コマンドの意味はOllama公式CLIリファレンスで確認できます。
5. Mac再起動後は、SSD接続と設定を確認してから使う
launchctl setenvを一度実行しただけで、再起動・再ログイン後の設定まで完了したとは判断しません。次の手動確認を、Macの起動後に行う運用にします。
- 自動起動していたOllamaを終了する。
- SSDを接続し、Finderと
diskutil infoで接続先を確認する。 launchctl getenv OLLAMA_MODELSで値を確認する。- 値が空、または違うなら、手順3の
setenvを再実行する。 - Ollamaを起動し、手順4の一覧・生成・保存先確認を繰り返す。
getenv・setenv・unsetenvは、launchdが管理する環境変数を確認・設定・解除する操作です。自動化する場合はログイン時の実行とSSD接続待ちも設計する必要があるため、この記事では自動起動の登録は行いません。Apple公開のlaunchctlマニュアル
SSDを外すときは、生成・ダウンロードを止めてOllamaを終了し、Finderで取り出してからケーブルを抜きます。Apple公式・外部ストレージの接続と取り出し
6. 元のコピーを整理する前に、戻せる状態を確認する
コピーしただけでは内蔵SSDの空きは増えません。外付けでの利用とMac再起動後の確認が済んだら、Ollamaを終了し、Finderで内蔵側の~/.ollama/modelsを別名に変更して一時退避します。例えばmodels-before-ssdとします。同名が既にあれば別の名前を選んでください。
この段階でも、元のコピーはMacに残っています。SSDの接続とlaunchctlの値を確認してOllamaを起動し、既存モデルが使えるか再確認します。内蔵側の元の場所に新しいmodelsができた場合は、設定が反映されているか調べます。空フォルダーの作成だけで決めつけず、モデル本体が内蔵側へ増えていないかを見ます。
確認できたら、一時退避した内蔵側のコピーだけをFinderで整理できます。ゴミ箱に残っている間は容量を保持するため、空きを増やすには最終的な削除が必要です。独自モデルのバックアップとSSD側の正常性を確認してから判断してください。~/.ollama全体には別の情報もあるため、まとめて削除しません。Ollama公式・macOSのファイル保存場所
内蔵SSDへ戻す場合
Ollamaを終了し、退避していたフォルダーを~/.ollama/modelsへ戻します。既に新しいmodelsがある場合は、上書きせず両方の内容を確認します。その後、今回追加した設定を解除します。
# 既定保存先から初めて移行した環境を元に戻すため、追加した設定を解除する。
launchctl unsetenv OLLAMA_MODELS
launchctl getenv OLLAMA_MODELS
アプリを起動し直し、モデル一覧と生成を確認します。元のコピーを削除済みなら、SSD側の最新データを内蔵側へコピーし直す必要があります。移行後に追加したモデルは古い退避コピーに含まれないため、その点も確認してください。
うまくいかないときの切り分け
| 症状 | 確認する場所 | 次の操作 |
|---|---|---|
| モデル一覧が空 | 指定先直下のblobsとmanifests |
modelsの二重階層やコピー未完了を直す |
| 内蔵SSDに保存され続ける | アプリの終了・再起動、別サーバーの起動 | 設定を適用するプロセスをそろえる |
| Mac再起動後だけ見つからない | SSD接続、ボリューム名、getenv |
接続確認後に再設定して起動 |
| 権限エラーになる | SSDへFinderで書き込めるか | 読取り専用状態やアクセス許可を調べる |
| SSDを取り出せない | 生成・ダウンロード、ほかの利用アプリ | 利用を終了してから取り出す |
| 生成速度が変わらない | 保存先以外の実行条件 | SSD移行による速度向上を前提にしない |
Windowsでの保存先変更は、OllamaのモデルをDドライブへ移す手順で扱っています。
移行完了の判断は、コピー先があることに加えて、Ollamaが外付け側を使い、Macを再起動した後も同じ確認を再現できることです。元のコピーを残す期間を設けると、設定の取り違えが見つかっても戻しやすくなります。



コメント