元数据
| id | ollama-models-migration | 收录 | 2026-08-30 |
|---|---|---|---|
| 问题域 | 大模型本地部署 | 主题分组 | 安装与依赖 |
| 适用工具 | ollamadocker · 外部工具 | ||
症状
- 系统盘满了,想给模型换目录但 `mv` 之后 `ollama list` 变空。
- 找遍教程不知道 snap / docker / Windows 各自怎么改。
- 换完目录新下载的模型还是出现在旧路径。
原因
- `OLLAMA_MODELS` 未设置时用平台默认目录;只搬目录不改环境变量,ollama 会按默认目录重建空目录,表现为模型丢失(实际没丢)。不同安装方式(systemd/snap/docker/Windows)配置环境变量的入口不同。
解法
- 停服务 → 复制/移动 models 目录到新位置 → 按安装方式设置 `OLLAMA_MODELS`(systemd 加 Environment;snap `snap set ollama models=`;docker `-e`;Windows 用户环境变量)→ 重启 → `ollama list` + 实际运行验证 → pull 一个小模型确认新下载落新目录。
验证证据
- 实测(ollama/ollama:latest 独立容器,不动本机 snap 实例):
- 复制本机模型(qwen2.5-0.5b,469M)到新目录 `/tmp/ollama-models`;
- 容器 A 设 `OLLAMA_MODELS=/models`(挂载新目录)→ `ollama list` 直接显示 qwen2.5-0.5b 491MB(未重新下载);
- 容器 B 不设 `OLLAMA_MODELS` → 默认 `~/.ollama/models` 存在但为空,`ollama list` 为空(对照);
- `ollama show qwen2.5-0.5b` 正常;`ollama run qwen2.5-0.5b "say hi"` CPU 正常出字;
- `ollama pull all-minilm:l6-v2` → success,新目录 blobs 2→6,`ollama list` 同时显示两个模型;
- 本机 snap 配置机制核对:`/snap/ollama/current/bin/snap_launcher.sh` 中 `OLLAMA_MODELS=$(snapctl get models)`,`snap get ollama` 有 models 键 → snap 改目录用 `sudo snap set ollama models=<路径>`;
- 测试容器与临时目录已清理。
- 完整日志:`实测复现日志(2026-08-30)`
来源与证据
素材来源:本地容器实测(ollama/ollama:latest)+ snap 配置机制核对(snap_launcher.sh)
验证证据:Evidence details kept locally (2026-08-30)