很多人装完 Ollama 顺手拉了几个模型,等到 C 盘飘红才发现模型默认都堆在用户目录下。这篇不讲概念,只讲怎么把模型挪走:在哪查当前路径、环境变量怎么设、旧文件怎么搬才不出错、搬完不生效按什么顺序查。默认路径查询方式和 Linux 下的差异也一并说清。
装完 Ollama 顺手 ollama pull 了几个模型,等到系统盘飘红才发现模型全堆在用户目录下。这事不用重装、不用第三方工具,一个环境变量就能把仓库挪走。这篇只讲实操:先查当前路径、再设变量、之后搬文件、搬完不生效按顺序查,最后给回滚和不适用的场景。
要提醒的是,模型仓库跟模型不是一回事。变量指向的是「仓库根目录」,下面还有一层层按摘要命名的子目录。搬的时候把整个根目录端过去,别只挑几个看着像模型的大文件。
先确认模型现在到底存在哪
别凭印象猜路径。Windows 上开资源管理器「显示隐藏文件」,去用户目录下找 Ollama 相关文件夹;Linux 和 macOS 是另一套约定,通常在用户主目录下的隐藏目录里,两边写法不能照搬。最稳的办法是让系统告诉你进程实际打开了哪个目录。
- ollama list
- 列出已装模型名和体积,作为迁移后的比对清单
- 进程打开目录
- Windows 用任务管理器看命令行参数或资源监视器;Linux 用 lsof 查进程句柄,别靠记忆推断
- 目录总大小
- 迁移前后各统计一次,体积对不上说明有文件没搬过去
- 登记现状跑一次 ollama list,把模型名和体积记到记事本;再统计当前仓库目录总大小和文件数
- 确认路径用系统工具查 Ollama 进程实际打开的目录,和你以为的路径对照,不一致以进程为准
- 留好退路把原始路径原样记下来,包括大小写和斜杠方向,回滚时直接照抄
环境变量怎么设才生效
变量名就是标题里那个,含义是模型仓库的根目录,不是某个具体模型文件夹。指到子目录里,新拉的模型和旧的会分裂成两套,ollama list 看着像丢模型,其实是走错了库。
| 平台 | 设在哪 | 生效条件 |
|---|---|---|
| Windows | 系统级环境变量,不是当前命令行 set | 重启终端并让 Ollama 进程完全退出后重开 |
| Linux 裸机 | shell 配置或启动脚本 | 重新登录终端,确认新开窗口能读到 |
| Linux systemd | 服务单元文件里的 Environment | 改完 daemon-reload 并重启服务,仅改 shell 没用 |
| macOS | 图形界面应用的启动环境 | 退出菜单栏图标再从图形界面重开 |
旧模型文件怎么搬才不白搬
核心原则:先停进程,再复制,校验通过才删旧目录。运行中复制容易拿到半截文件,迁移完表现是某个模型加载报错,排查起来很费时间。
- 停掉 Ollama 进程和托盘图标,确认没有残留后台进程再动手
- 优先跨盘「复制—校验—再删」,不要一上来就剪切;剪切中断两头都不完整
- 复制完对比文件数和总大小,和迁移前登记的清单逐项核对
- 目标盘尽量选内置固态;机械盘和外接盘能跑但加载明显变慢,网络盘、同步盘不要放模型仓库
- 新目录权限要允许 Ollama 所用账号读写,Linux 上尤其注意属主和权限位
改完不生效按这个顺序查
排查要有顺序,跳着查容易在无关环节浪费时间。建议按下面四步走,每步确认后再进下一步,这样能快速定位到底是进程、变量、权限还是路径格式的问题。
- 查进程确认 Ollama 真的完全重启过;改了系统变量不重启,读的还是旧值
- 查变量看有没有同名变量在另一处覆盖;Windows 用户级和系统级同时存在时,优先级容易搞混
- 查权限和空间新目录要能读能写,剩余空间要够继续拉模型;权限不足的表现常常是列表正常、拉新模型失败
- 查路径格式路径带空格或非 ASCII 字符容易出问题,先用纯英文无空格路径排除这一类故障
回滚办法和这套做法不适用的情况
动手前留一份原始路径记录,出问题就删掉环境变量、把文件按原结构搬回去,比现场猜路径省事得多。旧目录在确认新仓库稳定运行之前不要当垃圾清空,它是你唯一的退路。
- 单机自用:随时可回滚,风险最低,按上面步骤走即可
- 多人共用一个服务:变量改的是所有人的仓库,先对齐再动
- 容器或托管面板部署:改法在容器挂载参数,不在这套环境变量上
- 公司统一管理、盘位受限的机器:动之前先确认运维策略允许改数据目录
要判断某个盘、某套中转或托管方案当前值不值得用,别听别人一句「快」或「便宜」,去站内页面核对当时的数字和检测结果更靠谱。
下一步如果你不确定手头的中转或托管方案是否值得把模型仓库放过去,先看站内实测和可信度记录,再决定要不要迁。→常见问题
改完环境变量,之前拉的模型还在吗?
看你搬没搬文件。变量只是告诉 Ollama 去哪找模型仓库,它不会帮你搬。只改变量不动文件,列表就空了;先把旧目录里的内容整体复制到新目录、层级保持一致,再改变量重启,列表才会跟以前一样。
能同时保留两个模型目录吗?
不能靠一个变量做到。这个变量指向的是唯一的仓库根目录,设两个只会有一个生效。要分开管理就换个思路:一个目录做仓库,不常用的模型移出去另存,需要时再挪回来,别指望 Ollama 自己跨盘找。
改路径会不会影响模型运行速度?
会影响加载阶段。模型要先从磁盘读进显存或内存,放机械盘、外接盘或网络盘,首次加载和切换模型会明显变慢;推理阶段的快慢主要由显卡和内存决定。想省心就把仓库放在内置固态上,容量不够再单独加一块盘。