在 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;請保留其相對結構,不要只複製最大的檔案。
檢查資料夾複製可能出錯的兩件事
複製前,請先確認目的地的可用空間與來源的確切路徑。舊的使用者層級覆寫、不同的 Windows 帳戶,或第二個 Ollama 安裝,都可能讓預設路徑造成誤導。請記下現有變數的值,包括它原本是否不存在,以便復原時能還原原始狀態。
在目的地中,blobs 與 manifests 應直接位於名為 OLLAMA_MODELS 的資料夾內。若變數指向 D:\AI\Ollama\models,預期的子項為 D:\AI\Ollama\models\blobs 與 D:\AI\Ollama\models\manifests。意外多出一層 models 是常見的設定錯誤,重新下載任何內容前應先排除。
這次移轉請使用專用的空白目的地。不要合併到無關的存放區,並假設檔名相符就能證明內容可互換。請保留足夠空間給完整複製的存放區及日後一般使用;變更變數不會讓兩份複本只佔用一份的空間。
先複製,再切換應用程式
選擇有足夠可用空間且會持續保持可用的本機磁碟機。例如,如果該磁碟機存在且您的帳戶可以寫入,D:\AI\Ollama\models 可以作為目的地。外接磁碟機中斷連線是可預期的失敗情況,不是授予應用程式系統管理員權限的理由。
- 完成進行中的生成和下載,然後從系統匣功能表結束 Ollama。
- 使用檔案總管將目前模型存放區的內容複製到所選目的地。保持原始內容不變,並在繼續之前解決任何複製錯誤。
- 從 Windows 搜尋開啟 編輯您的帳戶的環境變數。
- 以目的地路徑建立或編輯
OLLAMA_MODELS,然後儲存。 - 從 [開始] 重新啟動 Ollama,並開啟新的終端機。
Ollama 的 環境變數指示 說明為何應用程式必須重新啟動才能繼承變更。較早開啟的終端機可能保留舊環境。當系統匣應用程式仍在執行時,不要只為了測試變數而建立第二個伺服器。
大型存放區的選用複製命令
若檔案總管的複製能順利完成,這樣就足夠。對於需要複製記錄的大型存放區,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 對某些非失敗結果會使用非零代碼。代碼 8 或以上表示至少有一個複製失敗。即使低於 8,也請檢查摘要及任何不相符或多出的檔案,尤其是目的地原本不是空的時候。變更變數前請先解決錯誤;模型清單成功並不能讓失敗的檔案複製變得完整。
移除舊存放區之前先證明新位置可用
再次執行 ollama list,並與記錄的清單比較。選擇已顯示的模型,並使用其確切名稱發出小型要求。如果模型遺失,請停止並檢查資料夾結構和設定,不要讓新的下載掩蓋遷移失敗。
在測試期間檢查目的地,並確認應用程式使用預定的存放區。保留舊目錄,直到重要工作負載成功,且任何在本機建立的模型都已備份。單憑目錄大小相符,比成功使用所需模型的證據更薄弱。
如果切換失敗,請結束 Ollama,還原先前的變數值或移除新增的覆寫,然後重新啟動。未受變更的原始存放區讓此復原程序變得簡單直接。
讓驗證比對資料夾大小相符更嚴謹
執行中的伺服器可能保留舊的環境或已載入的模型。請先完成進行中的工作,結束常駐程式,設定新路徑後重新啟動,然後開啟全新的終端機。在要求任何模型執行前,請將 ollama list 與已儲存的清單比對。若有必要的項目缺少,請先檢查路徑與 manifests 結構。
對於每個重要的本機自訂模型,請在該次全新啟動後測試一個小型請求。只測試一個常見的下載模型,無法證明自訂模型也保留下來。請保留原始存放區,直到這些必要模型與一般應用程式工作負載都能正常運作。
若仍不清楚伺服器使用哪個目錄,請在啟動與載入前後,於 %LOCALAPPDATA%\Ollama 中檢查目前的 server.log,並參考官方疑難排解位置。請將任何回報的已設定路徑與預定目的地比對。新開啟終端機中的路徑只描述該終端機,不能證明另一個已在執行的伺服器也是如此。
不要只為了讓空白目的地看起來有在運作而建立新的下載。這可能掩蓋失敗的移轉,並在 C 槽佔用更多空間。若證據不明確,請保留兩個存放區,並在刪除原始存放區前先解決設定問題。若要復原,請結束應用程式,還原記錄的變數,若原本沒有覆寫則移除新的覆寫,然後重新啟動並驗證原始模型清單。
只移除已驗證的舊模型存放區
驗證之後,先檢閱舊的 models 目錄,再透過檔案總管移除。不要刪除整個 .ollama 目錄,其中可能包含設定和其他狀態。Windows 可能會永久刪除對資源回收筒而言過大的檔案,因此請閱讀確認訊息,並保留您需要的任何備份。
移動模型不會卸載目前記憶體中的模型,也不保證生成速度更快。較慢的目的地可能使初始載入耗時更長。如果問題是記憶體而非 C 磁碟機容量,請檢查工作負載和 Windows 記憶體指南。
對於其他 AI 下載,Hugging Face 有自己的快取設定。請設定每個工具實際的儲存擁有者,不要移動共用的上層目錄並期望每個應用程式都遵循。