Ollama 拉取模型失败,多数情况不是 Ollama 二进制本身坏了,而是四类原因之一:模型名或 tag 写错、当前网络出口到模型仓库不通、模型目录没有写权限或磁盘不足、拉取到一半中断留下不完整文件。处理时不要一上来就重装,先判断失败卡在哪个阶段——解析清单、下载层文件、写入本地目录——不同阶段的报错和处理动作差别很大。
判断顺序建议是:先看完整报错文本属于哪一类,再核对模型名与 tag 是否存在,然后用 curl 探测模型仓库域名能否连通、证书是否可信,接着检查 OLLAMA_MODELS 目录的属主与剩余空间,最后才考虑内网受限时的离线导入。验证以 ollama list 能列出模型、ollama run 能正常出词、服务日志无 error 为准。跨版本、自定义模型目录迁移、内网镜像源内容差异这几种情况不适用直接照搬命令,需要结合本机环境确认。
先确认当前场景和目标
先确认自己处在哪种场景,因为场景决定了要先动网络还是先动磁盘。常见场景有三种:一是新机器首次部署,模型从未下载过;二是已有机器换模型或换 tag;三是把模型目录迁到数据盘或挂载盘之后拉取失败。三种场景的排查起点不同,第三种应优先怀疑目录属主和挂载状态,而不是网络。
动手前需要先确认几件事:
- 模型标识是否完整。
ollama pull接受名称:tag形式,省略 tag 时按 latest 处理,而部分模型并没有 latest 标签,这时报错通常是清单不存在,而不是网络超时。 - 失败发生在哪一步。报错里出现 manifest、blob 下载、写入文件系统等字样,指向的原因完全不同。
- 目标机器能否访问模型仓库域名
registry.ollama.ai,以及系统时间是否准确(证书校验依赖时间)。 - 模型存放目录由
OLLAMA_MODELS决定,是否被改过、目录属主是否为运行 ollama 服务的用户、剩余空间是否大于模型体积。
目标也要说清楚:不是让命令不报错,而是让模型完整落盘且能加载运行。只做到前半步没有意义。
按这个顺序处理
第一步,完整读一遍报错。不要只看最后一行。ollama pull 的输出会区分清单解析失败、连接超时、TLS 证书错误、磁盘写入失败。这一步决定后面走哪条分支,跳过它会浪费很多时间。
第二步,核对模型名与 tag。先用 ollama list 看本地已有什么,再确认要拉的名称拼写正确。带量化后缀或自定义命名的模型,tag 必须写全。如果名称来自二手文档,建议回到官方模型库页面核对一遍再拉。
第三步,单独测仓库连通性。绕开 Ollama 直接探测,能快速区分是程序问题还是网络问题:
curl -I https://registry.ollama.ai
curl -I https://registry.ollama.ai/v2/
返回 401 或 200 通常说明链路和证书没问题;卡住不动、连接超时、证书不受信任,则需要把问题交给网络侧处理。公司内网出口做了拦截时,这一步会很快暴露出来。
第四步,看服务端日志。如果是通过系统服务运行,客户端报错往往不够,需要看服务日志:

systemctl status ollama
journalctl -u ollama -n 80 --no-pager
以前台方式运行时,日志直接输出在启动 ollama serve 的那个终端里。日志中的磁盘错误、权限错误会明确写出来。
第五步,检查存储与权限。
echo $OLLAMA_MODELS
df -h
df -i
ls -ld /path/to/models
df -h 看容量,df -i 看 inode,两者任一耗尽都会导致写入失败。目录属主必须与运行 ollama 的系统用户一致,否则会出现下载完成但落盘失败的情况。
第六步,受限网络的替代路径。内网机器无法直连仓库时,可以在能联网的机器上获取模型文件,再离线导入:
# 在可联网机器上准备 GGUF 文件,放在当前目录
# 写一个最小 Modelfile
cat > Modelfile <<'EOF'
FROM ./model.gguf
EOF
ollama create mymodel -f Modelfile
ollama run mymodel
这条路径解决的是“拉不下来”,但得到的是本地自建模型名,与官方 tag 不是同一个东西,后面调用接口时要相应调整模型名。
改完后怎么验证
验证分成三个层次,逐层确认,不要只看命令返回成功。
- 模型已落盘:执行
ollama list,确认目标模型出现在列表中,且体积与预期量级一致。体积明显偏小通常意味着层文件下载不完整。 - 元信息可读:执行
ollama show 模型名,能正常输出架构、参数、量化方式等信息,说明清单与配置文件都已完整写入。 - 能实际加载:执行
ollama run 模型名,发一句短提示,看到正常返回且不报内存错误、不报格式错误,才算真正可用。
同时回到服务日志再确认一遍,写入阶段没有残留的 error 或 warn。若之前是磁盘不足导致失败,重试后要重新看一次 df -h,确认剩余空间处于安全区间。
容易忽略的边界
- 版本差异。不同 Ollama 版本对模型目录、并发下载、断点续传的处理不完全一致。遇到反复中断,建议先确认本机版本,再决定是重试还是换用离线导入。
- 目录迁移的副作用。修改
OLLAMA_MODELS后,旧目录里的模型不会自动出现,表现为“模型明明下过却找不到”。迁移时建议先停服务再移动文件,并保持属主不变。 - 证书与时间。系统时间偏差过大会让 TLS 校验失败,报错看起来像网络不通。校时后再重试往往就通了。
- 内网镜像源不等于官方仓库。镜像同步存在延迟,tag 可能缺失或内容不一致。依赖镜像源时,建议记录来源,并在关键使用场景做一次加载验证。
- 离线导入的模型与官方 tag 不等价。量化方式、上下文长度等参数可能不同,不能直接替换线上调用里的模型标识。
- 回退建议。改动前记录原始配置(环境变量、目录路径),失败时用
ollama rm 模型名清掉不完整条目后重来,比反复叠加修改更容易定位问题。若已经动过目录权限或挂载配置且无法恢复,建议先备份模型目录,再回到初始配置复现一次。