WindowsでOllamaのモデルを別のドライブへ移動する
OllamaがダウンロードしたモデルをCドライブから移動するには、Ollamaを実行しているアカウントに対してOLLAMA_MODELSを設定します。アプリケーション自体の移動は別の操作です。変数を変更するだけでは既存のモデルはコピーされないため、新しい保存先が検証できるまで古い保存先を残してください。
このガイドは通常のWindowsデスクトップ版インストールを対象としています。サービス、コンテナ、WSLでのインストールは別のアカウントや設定で動作することがあり、それぞれの管理元で対処する必要があります。
コピーする前に現在の保存先を特定する
OllamaのWindowsドキュメントでは、アプリケーションのバイナリ、ログ、モデルデータが区別されています。既定のモデル保存先は%USERPROFILE%\.ollama\modelsの下にあります。以前にOLLAMA_MODELSを設定している場合は別の場所を指していることがあります。
新しく開いたPowerShellウィンドウで、ユーザーレベルの設定を確認します。
[Environment]::GetEnvironmentVariable("OLLAMA_MODELS", "User")
ollama list
設定が空であっても、ユーザーレベルの上書きがないというだけで、サービスや別のアカウントが既定値を使っていない証拠にはなりません。モデルの一覧を記録し、このインストールで使われているフォルダーを確認してください。保存先にはblobsとmanifestsが含まれます。最も大きいファイルだけをコピーするのではなく、相対的な構造を保ってください。
フォルダーのコピーで起こり得る2つの誤りを確認する
コピーする前に、コピー先の空き容量とコピー元の正確なパスの両方を確認してください。古いユーザーレベルの上書き設定、別のWindowsアカウント、2つ目のOllamaインストールがあると、既定のパスが誤解を招く可能性があります。既存の変数の値は、存在しなかった場合も含めて記録しておき、ロールバック時に元の状態へ戻せるようにしてください。
コピー先では、blobsとmanifestsがOLLAMA_MODELSで指定したフォルダーの直下にある必要があります。変数がD:\AI\Ollama\modelsを指している場合、想定される子はD:\AI\Ollama\models\blobsとD:\AI\Ollama\models\manifestsです。誤ってmodelsの階層が余分に入ってしまうのはよくある設定ミスなので、再度ダウンロードする前に除外してください。
この移行では、専用の空のコピー先を使用してください。無関係なストアに統合し、ファイル名が一致するからといって中身が互換性を持つと判断しないでください。コピーしたストア全体と通常の将来の使用に十分な容量を確保してください。変数を変更しても、2つのコピーが1つ分の容量しか消費しなくなるわけではありません。
先にコピーし、その後でアプリケーションを切り替える
十分な空き容量があり、今後も利用できるローカルドライブを選びます。たとえばD:\AI\Ollama\modelsは、そのドライブが存在しアカウントが書き込める場合に保存先として使えます。外付けドライブが切断されているのは予測できる障害であり、アプリケーションに管理者権限を与える理由にはなりません。
- 実行中の生成とダウンロードを終わらせ、システムトレイのメニューからOllamaを終了します。
- エクスプローラーを使い、現在のモデル保存先の内容を選んだ保存先へコピーします。元のデータはそのまま残し、コピーのエラーは先に解決してください。
- Windowsの検索からユーザー環境変数の編集を開きます。
OLLAMA_MODELSを新規作成または編集し、保存先のパスを入力して保存します。- スタートからOllamaを再起動し、新しいターミナルを開きます。
Ollamaの環境変数の手順では、変更を引き継ぐためにアプリケーションを再起動する必要がある理由が説明されています。以前に開いたターミナルは古い環境を保持していることがあります。トレイのアプリケーションが動作している間に、変数を試すためだけに2つ目のサーバーを起動しないでください。
大規模なストア向けの任意のコピーコマンド
コピーが正常に完了する場合はエクスプローラーで十分です。コピーログが役立つ大規模なストアでは、WindowsにRobocopyが含まれています。次のPowerShellの例は、確認済みのコピー元が既定のストアで、コピー先が新しく作成した専用フォルダーであることを前提としています。インストール状況が異なる場合は両方のパスを置き換え、コピー前にOllamaを終了してください。
$source = "$env:USERPROFILE\.ollama\models"
$destination = "D:\AI\Ollama\models"
robocopy "$source" "$destination" /E /L /R:1 /W:1
/Lはコピーせずに実行予定の内容を一覧表示します。出力の先頭にあるコピー元とコピー先を確認してください。それらが正しければ、/Lを付けずにコピーを実行し、ログをモデルストアの外に保存してください:
robocopy "$source" "$destination" /E /R:1 /W:1 /TEE /LOG:"$env:TEMP\ollama-model-copy.log"
$copyExitCode = $LASTEXITCODE
$copyExitCode
/Eはサブディレクトリを含めますが、再試行オプションは失敗したファイルに対する再試行回数を制限します。この例では意図的にコピー元をミラーリングも移動もしません。/MIR、/PURGE、/MOVEは追加しないでください。ロールバック用のコピーを保持するうえで、これらの削除動作は不要です。
Robocopyは、失敗ではない一部の結果にも0以外のコードを使用します。8以上のコードは、少なくとも1つのコピー失敗を示します。8未満でも、特にコピー先が空でなかった場合は、概要と一致しないファイルや余分なファイルを確認してください。変数を変更する前にエラーを解決してください。モデル一覧の取得に成功しても、失敗したファイルのコピーが完了したことにはなりません。
古い保存先を削除する前に新しい場所が機能することを確認する
もう一度ollama listを実行し、記録した一覧と比較します。一覧にあるモデルを選び、その正確な名前で小さなリクエストを送ります。モデルが見つからない場合は作業を止め、新たにダウンロードさせて移行の失敗を覆い隠すのではなく、フォルダー構造と設定を確認してください。
テスト中に保存先を確認し、アプリケーションが意図した保存先を使っていることを検証します。重要な作業が成功し、ローカルで作成したモデルがバックアップされるまで、古いディレクトリを残してください。ディレクトリのサイズが一致するだけでは、必要なモデルを実際に使えたことよりも弱い証拠にしかなりません。
切り替えに失敗した場合は、Ollamaを終了し、以前の変数値に戻すか新しく追加した上書きを削除して再起動します。元の保存先に手を付けていなければ、この復旧は容易です。
フォルダーサイズの一致よりも強い検証を行う
実行中のサーバーは古い環境や読み込み済みのモデルを保持している可能性があります。作業中の処理を終え、トレイアプリケーションを終了し、新しいパスを設定した後に再起動してから、新しいターミナルを開いてください。モデルを実行する前に、ollama listを保存しておいた一覧と比較してください。必要なエントリが欠けている場合は、まずパスとmanifestsの構造を調べてください。
重要度の高いローカル作成モデルごとに、新しい起動後に小さなリクエストでテストしてください。よく使うダウンロード済みモデルを1つだけテストしても、カスタムモデルが残っていることは確認できません。それらの必要なモデルと通常のアプリケーション作業が正しく動作するまで、元のストアを保持してください。
サーバーがどのディレクトリを使用しているかまだ不明な場合は、公式のトラブルシューティングの場所を参照し、起動と読み込みの前後における%LOCALAPPDATA%\Ollama内の現在のserver.logを確認してください。報告された設定済みパスがあれば、意図したコピー先と照合してください。新しく開いたターミナル内のパスはそのターミナルを表すだけで、既に実行中の別のサーバーについての証拠にはなりません。
空のコピー先を有効に見せるためだけに、新たにダウンロードしないでください。移行の失敗を隠し、Cドライブの容量をさらに消費する可能性があります。証拠が決め手に欠ける場合は、両方のストアを保持し、元を削除する前に設定を解決してください。ロールバックするには、アプリを終了し、記録しておいた変数を復元するか、上書き設定が存在しなかった場合は新しい上書き設定を削除してから、再起動して元のモデル一覧を確認してください。
検証済みの古いモデル保存先だけを削除する
検証後、エクスプローラーで削除する前に古いmodelsディレクトリを確認します。設定やその他の状態を含むことがある.ollamaディレクトリ全体を削除しないでください。Windowsはごみ箱に入れるには大きすぎるファイルを完全に削除することがあるため、確認の表示を読み、必要なバックアップを保持してください。
モデルを移動しても、現在メモリに読み込まれているモデルはアンロードされず、生成が速くなることも保証されません。遅い保存先では初回の読み込みに時間がかかることがあります。問題がCドライブの容量ではなくメモリにある場合は、ワークロードとWindowsのメモリガイドを確認してください。
他のAIダウンロードについては、Hugging Faceには独自のキャッシュ設定があります。共有の親ディレクトリを移動してすべてのアプリケーションが従うことを期待するのではなく、各ツールの実際の保存先の管理元を設定してください。