C 盘一红,Ollama 的模型目录往往是最大那坨,几十 GB 起步,而且默认就落在系统盘用户目录下。这篇不聊怎么选模型,只讲一件事:怎么把模型仓库挪到别的盘,让服务照常认出它。流程本身不复杂,坑主要在两处——环境变量改完没重启服务,以及旧文件没搬干净就删。下面按「先看清楚、再搬、再验证」的顺序走一遍。
C 盘一红,Ollama 的模型目录往往就是最大那坨,几十 GB 起步,而且默认落在系统盘的用户目录下。想腾地方,靠删缓存、清临时文件基本没用,真正要动的是模型仓库本身的位置。这篇只讲一件事:怎么把模型目录挪到别的盘,让 Ollama 服务照常认出它。
流程本身不复杂,坑主要在两处——环境变量改完没重启服务,以及旧文件没搬干净就先删。下面按「先看清楚、再搬、再验证」的顺序走一遍,每一步都给出你可以自己确认的判断标准,不靠猜。
第一步:先确认模型现在到底存在哪
搬之前得知道搬的是什么。Windows 上 Ollama 默认把模型放在当前用户主目录下的隐藏文件夹里,名字以点开头,普通浏览方式不一定看得见。先把这个位置和它占用的体积确认清楚,再决定搬到哪块盘。
- 打开用户主目录在文件资源管理器地址栏输入 %USERPROFILE% 回车,进入当前用户的主目录。
- 显示隐藏项目在「查看」选项卡里勾上「隐藏的项目」,找到以 .ollama 开头的目录,进去看是否有 models 子目录。
- 看体积而不是看数量右键 models 目录看属性,重点看占用空间。很多 C 盘告急的用户,就是这里的体积把系统盘顶爆的。
- 别停在第一层进入 models 后还会看到按哈希分层的子目录,真正的权重文件在里面,再往下才是模型本体。别以为看到文件夹就等于看到了模型。
第二步:用环境变量把模型目录指到新盘
Ollama 认的是 OLLAMA_MODELS 这个环境变量,值写你打算放模型的新目录。新目录路径尽量别带中文和空格,跨盘时也建议目标盘先留出比现有模型体积更大的余量。
Windows 下环境变量分当前用户和系统两个层级。只改用户级的话,如果服务是以系统身份运行的,或者你用另一个账户登录,就可能读不到这个值。改完还要让服务彻底重启,光关窗口不算重启。
- 变量名写 OLLAMA_MODELS,值填新目录的完整路径,例如 D 盘下自己新建的一个空文件夹
- 先决定改用户级还是系统级:单机自己用,用户级通常够;多账户共用或服务随系统启动,要考虑系统级
- 改完在任务管理器里结束 Ollama 相关进程,或从托盘图标退出后重新启动,确保新变量被读到
- 验证方式:重启后重新拉一个小模型,看它落在新目录还是老目录,落错地方说明变量没生效或服务没重启
第三步:把已有的模型文件搬过去
这一步的顺序比动作本身更重要。推荐先设好新目录的环境变量、重启服务、确认新目录能被写入,再把旧的 models 目录整体剪切过去,而不是先删后下。模型文件是静态的,同一台机器上直接剪切粘贴就行,不需要重新下载。
| 做法 | 适用情况 | 注意点 |
|---|---|---|
| 图形界面剪切粘贴 | 同机同盘符或跨盘、文件数量不多 | 搬大文件可能中途卡住或提示空间不足 |
| 命令行搬移 | 目录里有大量小文件或单个大文件 | 搬完用列目录确认文件数量对得上 |
| 重新拉取 | 旧文件已损坏或想换存放盘重来 | 会重新占用下载带宽,时间不可控 |
搬完别急着删旧目录。先让服务从新位置正常拉起来,跑一次对话确认能加载,再回头清理 C 盘上的旧文件。保留一段时间,出问题还能退回去。
第四步:验证与常见故障排查
迁移后的验证分两步:先看模型列表,再实际发起一次对话请求。列表里原来的模型都在,说明路径读对了;能正常对话,说明权重文件完整、权限也没问题。
| 现象 | 大概率原因 | 先查什么 |
|---|---|---|
| 列表是空的 | 服务读的还是老路径 | 环境变量设在了哪个层级、服务是否真的重启过 |
| 报找不到目录 | 新目录不存在或路径写错 | 变量值里的盘符和文件夹名有没有拼错 |
| 报权限错误 | 当前账户对新目录没有写权限 | 新盘文件系统类型、目录的安全设置 |
| 用着用着模型没了 | 模型放在外接盘上,盘被拔了 | 服务运行期间外接盘是否一直在线 |
如果排查到环境变量没问题、目录权限也正常,但服务行为仍然异常,可以到 /models/deploy 按页面上的检查项逐条过一遍,确认服务当前生效的路径和监听配置。
不建议的做法,以及什么时候别折腾
有些看起来省事的做法,在 Windows 上反而容易埋雷。下面这几条不是绝对禁止,而是出问题后排查成本高,收益又不明显,优先考虑正经的迁移方式。
- 别用符号链接或目录联接硬凑,部分 Windows 版本和权限组合下服务身份读不到链接目标,故障现象很迷惑
- 别把模型目录放在会自动同步的网盘或云盘托管文件夹里,几十 GB 的文件被同步会同时拖慢磁盘和网络
- 如果这台机器只有一块盘,或者新盘是机械盘且空间也不宽裕,迁移收益有限,不如先估算清楚再决定
- 企业环境下改系统级环境变量会影响所有账户,改动前先确认没有别的服务依赖旧路径
迁移的本质是让服务在新地址找到同一批文件,顺序对了就成功一半,剩下的交给验证。下一步迁移前先想清楚要搬多少、搬到哪,可以去 /models/deploy 核对当前的目录结构和体积估算,再动手不迟。→
常见问题
改了环境变量,为什么模型列表还是空的?
多数是服务没真正重启,或者变量只设在了用户级而服务是以系统身份运行的。先把托盘图标退出、任务管理器里确认进程没了再启动,还不行就去环境变量里把用户级和系统级都设上。另外路径别带中文和空格。
迁过去的模型要重新下载吗?
不用。模型权重是静态文件,同机器内直接剪切粘贴就行,换机器也可以拷贝整个 models 目录。只有当你换了量化格式或模型版本,才需要重新拉取。搬完先确认服务能读到,再删旧目录。
能不能只把部分模型挪走,其余留在 C 盘?
可以但要分开放,Ollama 认的是一个根目录下的统一结构,把单个模型拆出去后服务不一定认得。更稳的做法是整个 models 目录一起迁移,如果确实想按盘分配,就让新目录覆盖全部模型,旧目录确认无用后再删除。