Ollama迁移模型数据目录,磁盘空间不足扩容实操
当你用 Ollama 拉取多个大模型后,系统盘常会被几十 GB 的模型文件塞满。
手工迁移模型数据目录是最直接的扩容方法:把模型从原目录复制到新分区,再让 Ollama 指向新位置。
本教程会带你在 Linux 服务器上完成迁移,全程不需要重下模型,也适用于绝大多数 Ollama 版本。
先搞清楚模型数据存在哪
Ollama 默认把模型存放在以下位置,具体取决于系统环境:
- Linux(非 root):
~/.ollama/models - Linux(root):
/root/.ollama/models - macOS:
~/.ollama/models - 手动指定过环境变量:
OLLAMA_MODELS指向的路径
建议先执行下面三条命令确认当前实际路径:
find / -type d -name models 2>/dev/null | grep ollama
ls -lh /root/.ollama/models/blobs 2>/dev/null || ls -lh ~/.ollama/models/blobs
看到 blobs 目录里一堆大文件,说明你已经找对了地方。
迁移前这几件事必须做
正式操作前,只做三件事:停服、看磁盘、清缓存。
1. 停止 Ollama 服务,避免文件锁定。
sudo systemctl stop ollama # systemd 管理
# 或者直接结束进程:
pkill ollama
2. 确认目标盘剩余空间足够。
df -h /目标挂载点
建议剩余空间大于当前模型目录总大小,可用 du -sh /root/.ollama/models 查看。
3. 关闭模型自动拉取和正在运行的任务。
如果之前用 ollama run 挂了后台,先退出;
同时确认没有其他进程在读写模型目录。
核心操作:搬迁目录与重新指定路径
下面用 /data/ollama/ 作为新目录位置,实际路径请按你的挂载盘调整。
第一步:复制整个模型目录到新位置。
sudo mkdir -p /data/ollama
sudo cp -a /root/.ollama/models /data/ollama/
-a 参数会保留文件权限和符号链接,避免后续权限报错。
复制完成后检查文件数是否一致:
du -sh /root/.ollama/models /data/ollama/models
find /root/.ollama/models -type f | wc -l
find /data/ollama/models -type f | wc -l
第二步:修改 Ollama 配置,指向新目录。
最推荐的方式是设置环境变量 OLLAMA_MODELS。
以 systemd 服务为例:
sudo mkdir -p /etc/systemd/system/ollama.service.d
sudo tee /etc/systemd/system/ollama.service.d/override.conf <
然后重载配置并重启服务:
sudo systemctl daemon-reload
sudo systemctl restart ollama
如果你是用 ollama serve 手动启动的,可以在启动命令前加环境变量:
export OLLAMA_MODELS=/data/ollama/models
ollama serve
第三步:验证服务是否读取了新路径。
执行 ollama list 应该能看到原有模型列表。
如果看不到,说明服务没读到新路径,检查进程环境变量:
cat /proc/$(pgrep -f 'ollama serve' | head -1)/environ | tr '\0' '\n' | grep OLLAMA_MODELS
迁移后的验证与清理
先运行一个模型,确认可正常加载:
ollama run qwen2.5:7b "你好"
回复正常后,再确认新目录确实被写入新数据:
ls -lt /data/ollama/models/blobs | head
确认一切正常后,再删除旧的模型目录释放空间:
sudo rm -rf /root/.ollama/models
清理要谨慎:建议至少保留 24 小时,或先改名为旧目录备份,确认无误后再删。
常见报错与避坑提醒
- 报错
ollama: command not found:迁移后没有正确设置环境变量,shell 找不到命令;检查 PATH 或重启终端。 - 报错
disk I/O error或permission denied:复制时没加-a,或者新目录的属主不是当前用户。执行sudo chown -R $(whoami) /data/ollama修复。 - 迁移后
ollama list为空:多半是OLLAMA_MODELS没生效。建议直接使用 systemd override 方式,而不是临时export。 - 避免用软链接代替环境变量:虽然
ln -s /data/ollama/models /root/.ollama/models看起来简单,但 Ollama 某些版本会校验真实路径,导致重新下载模型;最省心的做法还是显式设置OLLAMA_MODELS。
迁移后如果模型文件很大,你会发现磁盘压力明显缓解。
建议以后定期用 df -h 检查模型目录,配合 ollama rm 清理不用的模型,避免再次占满系统盘。
对于多模型场景,也可以考虑将整个 /data/ollama 挂载到独立数据盘或云盘上,扩展更灵活。
如果你在迁移过程中遇到其他报错,先看系统日志 journalctl -u ollama,多数问题都能在这里找到线索。
如果你正在处理 Ollama 迁移模型数据目录、磁盘空间不足扩容这类问题,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
迁移完成后记得观察新目录的读写权限和磁盘剩余量,避免后续因权限配置不当影响模型加载。