Ollama模型卸载后残留文件导致磁盘空间不足的彻底清理步骤

文章导读
很多人在用 ollama rm 卸载模型后发现磁盘空间没有回来,或者拉取模型中断后 ~/.ollama 的占用越来越大。Ollama 模型文件并不是单独放在一个带模型名的文件夹里,而是写入用户目录下的 ~/.ollama/models,内部按 manifests 和 blobs 分类存放。卸载过程如果中断,或者手动删除过目录,就可能留下未被引用的 blobs,这就是“残留”的主要来源。
📋 目录
  1. 一、确认模型存储路径和占用大小
  2. 二、先用 ollama rm 正常卸载模型
  3. 三、处理残留:重拉再删除,或备份后清空
  4. 四、验证空间是否释放
A A

很多人在用 ollama rm 卸载模型后发现磁盘空间没有回来,或者拉取模型中断后 ~/.ollama 的占用越来越大。Ollama 模型文件并不是单独放在一个带模型名的文件夹里,而是写入用户目录下的 ~/.ollama/models,内部按 manifestsblobs 分类存放。卸载过程如果中断,或者手动删除过目录,就可能留下未被引用的 blobs,这就是“残留”的主要来源。

摘要判断:Ollama 卸载模型后的残留集中在 ~/.ollama/models(Windows 为 C:/Users/<用户名>/.ollama/models)。先确认模型已移除,再用 du 找到占用路径;优先用重新拉取后删除的方式让 Ollama 自行清理,不推荐直接删除模型目录,除非已备份并确定不需要任何本地模型。清理后要重新检查磁盘占用。

一、确认模型存储路径和占用大小

先看 Ollama 当前的模型目录。默认在用户主目录,如果设置了 OLLAMA_MODELS 环境变量,则以此为准。Linux/macOS 下执行:

echo $OLLAMA_MODELS
du -sh ~/.ollama
du -sh ~/.ollama/models/* 2>/dev/null

如果环境变量已设置,用 du -sh "$OLLAMA_MODELS" 查看实际目录大小。Windows PowerShell 下对应:

echo $env:OLLAMA_MODELS
Get-ChildItem $env:USERPROFILE/.ollama -Recurse | Measure-Object -Property Length -Sum

Measure-Object 输出的是字节,可以除以 1MB 换算成 MB。拿到这些输出后,就能确认占用集中在哪个目录。

二、先用 ollama rm 正常卸载模型

确认要清理的模型还在列表里,优先让 Ollama 自己处理文件引用:

Ollama模型卸载后残留文件导致磁盘空间不足的彻底清理步骤
ollama list
ollama rm llama3:8b

再次执行 ollama list 确认对应模型名已消失。正常情况下,~/.ollama/models 的占用会同步减少。若没有变化,说明有残留,常见原因是拉取中断、手动删过文件或服务仍在运行时执行卸载。

三、处理残留:重拉再删除,或备份后清空

如果确认模型已经不在列表里,但空间没有释放,可以先尝试用同一个模型名再拉取一次,然后立刻删除:

ollama pull llama3:8b
ollama rm llama3:8b

这样会让 Ollama 重新建立 manifest 和 blob 引用,再通过正常卸载把未被引用的文件清掉。若拉取成本太高或已经无法拉取,可以考虑手动清理。手动清理前先定位大文件:

Ollama模型卸载后残留文件导致磁盘空间不足的彻底清理步骤
find ~/.ollama/models -type f -size +100M -printf '%s %p\n' | sort -rn | head -20

输出的大文件大多在 blobs 目录下,文件名为哈希值,无法直接看出属于哪个模型。单独删除某个 blob 有误删共享文件的风险。如果本地没有必须保留的模型,最彻底的方式是:

  1. 先备份 ~/.ollama 到其他磁盘,不要直接删原目录。
  2. 停止 Ollama 服务,例如 Linux 下 sudo systemctl stop ollama,Windows 上退出系统托盘的 Ollama 进程。
  3. 删除或重命名 ~/.ollama/models 目录。
  4. 重新启动 Ollama,再 ollama pull 拉取需要的模型。

备份目录确认没有问题之前,先不要删除备份。

四、验证空间是否释放

清理后再次运行:

du -sh ~/.ollama
df -h .

du 看目录是否变小,df 看磁盘可用空间。注意如果清理时没有停止服务,删除的大文件可能仍被文件句柄占用,导致空间没有立即释放;所以清理前一定要先停服务。检查完后,再决定是否删除备份目录。