搞本地大模型的朋友应该都有过这种体验:Ollama装完了,模型也拉下来了,结果C盘一天比一天瘦。一个7B的量化模型动辄4GB,稍微玩到13B、32B,C盘分分钟变红。问题不是出在安装包本身,而是Ollama在Windows上默认把模型文件全部塞进了用户目录,也就是C:\Users\你的用户名\.ollama\models。这个目录是隐形的,大多数时候你根本注意不到它在涨,等发现的时候,C盘已经连更新补丁都跑不动了。
这篇文章就是来解决这个问题的:从安装Ollama开始,干净利落地把本体和模型文件都安排到D盘,顺便把模型下载慢、迁移失败、环境变量不生效这些我踩过的坑一次说清楚。内容不挑基础,刚接触本地部署的新手照着做就能搞定,已经装过Ollama但懒得重装的老手也能用迁移方案无缝切换。
1. 装之前先想明白:你的C盘到底被谁吃了
很多人以为只要安装时选个其他路径就万事大吉,实际操作完才发现C盘照样报警。这里面的关键认知是:Ollama在Windows上有两个完全独立的“盘踞点”。
1.1 Ollama默认安装路径和模型存储位置
第一个是程序本体,默认装在C:\Users\你的用户名\AppData\Local\Programs\Ollama,这个相对小,也就几百MB,说实话放C盘不至于伤筋动骨。第二个才是真正的大头——模型文件目录,默认在C:\Users\你的用户名\.ollama\models,刚装完可能只有几十MB,但只要你执行过ollama pull,比如拉一个qwen2.5:7b,目录会瞬间多出4GB到6GB的空间占用。这还只是一个模型。
我把这两个路径摆在一起,是想先帮你建立一个判断框架:
| 路径 | 默认位置 | 体积量级 | 是否建议迁移 |
|---|---|---|---|
| 程序本体 | C:\Users\用户名\AppData\Local\Programs\Ollama | 数百MB | 可选 |
| 模型文件 | C:\Users\用户名.ollama\models | 数十GB起 | 强烈建议 |
模型文件目录增长太快了。我现在本地装了四个常用模型,加起来超过了30GB。要是让这些文件继续住在C盘,哪怕你初期只玩一个7B模型,C盘压力就已经非常明显。所以核心思路就一句话:模型文件目录必须挪出去,程序本体能挪也一并挪走,一次到位。
1.2 为什么模型目录是C盘空间暴涨的元凶
Ollama 的模型存储机制和普通软件不太一样。它不像你下载一个安装包那样,解压出来一个文件夹就完事。它是从远程仓库拉取多个“分片文件”(blob),再根据不同的模型版本组合出可用文件。这个过程会在.ollama\models下面生成大量缓存层文件,每一个文件都可能达到几百MB甚至几个GB。而且,你反复执行ollama pull、ollama rm,会产生很多残留的blob,这些文件不会马上释放,都在悄悄占着C盘。
有些朋友还喜欢在Docker Desktop里跑Ollama,那空间占用就更复杂了。Docker镜像默认存在C:\Users\用户名\AppData\Local\Docker\wsl下面,一个含Ollama的镜像动辄几个GB,叠加起来C盘直接崩掉。所以如果是Docker用户,记得检查一下WSL虚拟磁盘的位置,那个文件叫ext4.vhdx,体积随镜像增长,最好也统一迁到D盘。这篇文章主要讲原生安装,但把WSL目录的坑一并提出来,免得你排查半天发现还有另一个“空间杀手”。
2. 把Ollama本体和模型都挪到D盘:两种最稳的做法
接下来进入实操环节。我推荐两种路径,任选其一。第一种是“全新安装法”,适合还没装Ollama、或者愿意卸载重来的朋友;第二种是“迁移大法”,适合已经下载了不少模型、不想重新拉一遍模型的朋友。
2.1 全新安装法:安装前先埋伏好环境变量
Ollama本身是支持通过环境变量OLLAMA_MODELS来指定模型目录的。安装程序在安装过程中会读取系统环境变量,你要是安装前就把这个变量设好,装完之后模型文件默认就会写到D盘,后面完全不用操心。
具体步骤是这样:
- 按
Win + X,选择“系统”,点右侧“高级系统设置”,再点“环境变量”。 - 在“系统变量”区域点“新建”,变量名填
OLLAMA_MODELS,变量值填你想放模型的目录,比如D:\ollama\models。 - 确认保存后,重新打开一个CMD或PowerShell窗口。
- 运行Ollama的安装包。
装完之后,你可以先验证一下:运行ollama list,如果提示没有任何模型,说明安装正常。然后随便ollama pull一个小模型,比如ollama pull llama3.2:1b,拉完看一眼D:\ollama\models,如果里面出现了blobs和manifests这两个目录,就说明环境变量生效了。
这里有个容易踩的坑:环境变量必须在安装前设置。如果先安装再设置变量,Ollama已经创建的默认目录不会自动删除,新模型倒是会走新路径,但旧模型还占着C盘。所以你如果已经装过Ollama,又不想重新下载模型,直接看下一节的迁移方案。
2.2 安装包加安装参数:程序本体也装进D盘
环境变量解决的是模型目录,但程序本体还需要另想办法。Ollama的Windows安装包实际上基于NSIS打包,它支持一个标准的安装参数/DIR,可以让你指定安装路径。
把安装包下载到本地后,不要直接双击,而是在当前目录打开CMD,执行:
OllamaSetup.exe /DIR=D:\Ollama这样程序本体就会装到D:\Ollama,不再占用C盘的AppData空间。
不过我要提醒一句:如果你之前已经用默认方式装过一次Ollama,再执行这个命令,它可能不会干净利落地把旧版本从C盘挪走。稳妥的做法是先去“设置——应用——安装的应用”里找到Ollama,卸载干净,重启一次系统,再执行上面的带参安装。
安装完成后,我建议再检查一次环境变量是否存在OLLAMA_MODELS。有些情况下,我用/DIR指定了安装目录,但系统里没有提前建好OLLAMA_MODELS变量,结果程序本体是装到了D盘,模型目录还是默认回了C盘。所以我现在的操作习惯是两手都抓:装之前先把OLLAMA_MODELS环境变量设好,再用/DIR参数指定安装目录,这样程序、模型全部在D盘,C盘几乎零压力。
2.3 不建议走的野路子:手动拷文件
网上很多教程会让你装完Ollama之后手动把整个.ollama文件夹拷到D盘,再利用mklink做一个目录符号链接。这个思路本身没错,但很多人操作的时候顺序搞反了——先拷贝,后建链接,结果原目录的数据被清掉,新目录里又没有完整数据,Ollama直接报“找不到模型”的错误。
真正可行的手动操作方式是这样:先建好D盘目标目录,把C盘.ollama文件夹完整拷贝过去,确认D盘目录里的模型文件都没有缺失,再在C盘原位置用管理员权限执行:
mklink /J "C:\Users\你的用户名\.ollama\models" "D:\ollama\models"注意这里用的是/J而不是/D。/J创建的是目录联接(Junction),它不需要额外权限,而且对Ollama这种应用来说兼容性更好。/D是符号链接,虽然也能用,但有的软件会因为在符号链接下解析路径异常导致读写失败。
不过这个方法相对繁琐,而且万一原目录里有正在被占用的进程,拷贝出来的文件可能是残缺的。我建议优先用迁移三步走的官方方案,等会儿在第3节详细讲。
3. 已经装在C盘了怎么办:模型迁移三步走
我遇到的大部分朋友都不是“还没装Ollama”的纯新用户,而是已经装好、也下载了三五个模型,结果C盘告急,才想着要搬家。这种场景完全不需要卸载重来,三步就能搞定,而且模型文件一个都不用重新下载。
3.1 第一步:先确认模型目录到底在哪
打开CMD,执行:
ollama list先看看你已经有哪些模型。然后再执行:
ollama show 模型名这个命令会显示模型的基础信息,包括路径。比如你执行ollama show qwen2.5:7b,输出里会有一行显示“Model Path”之类的信息。如果你懒得逐条查看,也可以直接打开资源管理器,进入C:\Users\你的用户名\.ollama\models,看看里面的blobs和manifests目录占多大空间。这一步的目的就是搞清楚现状,避免迁移到一半才发现还有另外一个模型被藏在了别的目录。
3.2 第二步:用环境变量切换目录,再把旧目录搬走
这一步其实和我刚才说的“全新安装法”里的环境变量设置是同一个操作,只是顺序不同。你已经装好了Ollama,现在做也一样。
在系统环境变量中新建OLLAMA_MODELS,值设为D:\ollama\models。保存后,打开任务管理器,找到Ollama相关进程(一般有ollama app.exe和ollama.exe两个),全部结束掉,或者直接在系统托盘右键图标选择退出。然后你在CMD里重新执行:
ollama list如果命令能正常返回,说明Ollama已经用新目录启动。接下来再把C盘旧目录里的内容整体搬到D盘:
xcopy "C:\Users\你的用户名\.ollama\models" "D:\ollama\models" /E /I /H复制完成后,先不要急着删旧目录。用ollama list确认所有模型都能正常显示,再跑一个模型做对话测试。测试无误后,才把C盘旧目录删掉或改名备份。
3.3 第三步:处理Visual Studio Code、Docker等衍生目录
这一步是我自己的经验补充。很多人电脑里不只有Ollama,还有VS Code、Docker Desktop、Miniconda这三件套。如果你只想解决C盘问题,Ollama本身搞定后,还得顺手把这几类占用补上:
- VS Code的缓存目录:
C:\Users\用户名\AppData\Roaming\Code - Docker Desktop的WSL虚拟磁盘:
C:\Users\用户名\AppData\Local\Docker\wsl - Miniconda的默认环境:
C:\Users\用户名\miniconda3
思路和Ollama迁移完全一致:先把目标目录建好,再设置对应软件的环境变量或配置文件指定新路径,最后用目录联接做兜底。特别是WSL虚拟磁盘,很多人发现C盘怎么清理都清理不干净,一查才发现ext4.vhdx已经几十GB了。
我不建议一次性把所有软件全搬走,太容易出问题。优先处理Ollama,因为模型文件涨得最快;VS Code这种相对“柔和”,等下次系统清理再处理也行。
4. 下载速度慢到怀疑人生:换一条喂模型的路径
把目录问题彻底解决之后,你马上会碰到第二个实际问题:下载模型太慢。ollama pull默认从官方仓库拉取模型,遇到高峰期或者网络波动,一个几GB的模型能下到你怀疑人生,进度条一直停在3%不动也是常事。
4.1 卡在3%的常见原因
我观察下来,拉取模型卡住的原因通常有这么几个。
一是断点续传失效。ollama pull在连接断开之后需要重试,但如果你的网络对长连接不友好,重试次数多了就会报max retries exceeded之类的错误。这时候直接重新执行一遍ollama pull,Ollama会基于已下载的blob继续拉取,一般能续上。
二是拉取源不稳定。Ollama模型仓库在国外,加上模型文件都很大,小水管网络传输自然吃力。这时候我会选择从hf-mirror.com这类国内可以正常访问的Hugging Face镜像站下载GGUF格式模型文件,再用本地注册的方式导入Ollama,绕开官方仓库的下载链路。这不是什么黑科技,就是很常规的本地模型注册思路。
三是磁盘写入性能太差。有些老机械硬盘在持续写入大文件时,速度波动很大。如果换了下载源还是慢,可以顺手看一下任务管理器里的磁盘占用情况,心里有个底。
4.2 本地注册GGUF模型:从镜像站下载再导入Ollama
标准的操作流程是这样的:
先去hf-mirror.com寻找你想要的模型的GGUF格式文件,比如Qwen2.5-7B-Instruct的GGUF版本,下载带q4_k_m标识的文件,这个量化级别的文件体积适中,效果也比较均衡。下载完成后,在本地建一个文件夹,比如D:\model-files,创建一个Modelfile:
FROM D:/model-files/qwen2.5-7b-instruct-q4_k_m.gguf然后在CMD里执行:
ollama create qwen2.5:7b -f D:\model-files\Modelfile等待几十秒,Ollama就会基于本地文件完成注册。之后ollama run qwen2.5:7b就能正常使用了。
需要注意,这条路径虽然绕开了官方下载仓库,但前提是你能从镜像站稳定下载。不同镜像站的速度差异也很大,我一般会多试几个,挑一个下载速度能到10MB/s以上的。
4.3 方式对但型号选错:量化等级和体积的取舍
还有一个高频问题是“模型拉错了”。有些朋友直接ollama pull qwen2.5:7b,默认可能是16位精度的版本,体积巨大,下载慢不说,内存稍微小一点直接跑不动。
实际上Ollama仓库里同一模型会有多个量化标签,比如q2_k、q4_k_m、q8_0等。q4_k_m在体积和效果之间比较平衡,也是我用得最多的。下载前先看一下官方模型页面,确认量化等级,再决定要不要拉。如果空间不宽裕,选体积小一级的量化版本,能省下几个GB。
我把选型建议整理成了表格:
| 模型规模 | 推荐量化 | 存储占用 | 建议内存 |
|---|---|---|---|
| 1B~3B | q4_k_m | 约1~2GB | 8GB |
| 7B~8B | q4_k_m | 约4~6GB | 16GB |
| 13B~14B | q4_k_m | 约8~10GB | 32GB |
| 30B以上 | q4_k_m | 约18GB以上 | 64GB |
如果你不是做精细推理任务的,不推荐盲目追求大模型,7B~14B这个区间对绝大多数个人场景已经够用。
5. 常见问题排查实录与避坑建议
实操过程中,几乎每个朋友都遇到过几个重复的问题。我把最高频的几类整理成了一份速查表,并针对每一条补充了我的处理思路。
5.1 环境变量设置了,但模型文件还是写到C盘
这种情况十有八九是环境变量没被Ollama服务读到。Ollama安装后会在系统里注册一个后台服务,环境变量改了之后,如果不重启服务,它还是用旧路径。处理方式是:先彻底退出Ollama,包括托盘图标和后台进程,再重新启动。如果还不行,直接重启系统,基本都能解决。
还有一种特殊情况是你在PowerShell里临时设置过$env:OLLAMA_MODELS,但系统变量里没有。别笑,这个问题我见过好多次。终端里的临时变量只在当前窗口生效,关掉窗口就没了。一定要去“系统变量”里改。
5.2 mklink创建目录联接失败
执行mklink /J时提示没有足够权限,需要用管理员身份打开CMD。右键点击“开始”菜单,选择“终端(管理员)”或者“命令提示符(管理员)”,再执行命令。
如果你确实不想用管理员权限,建议改用/J而不是/D,后者对权限和文件系统的要求更严格。把两个命令的差异记住,能省掉很多麻烦。
5.3 迁移完成之后,模型对话异常
一种情况是模型能识别,但推理速度特别慢。先检查一下是否真的调用了GPU。Ollama默认优先使用GPU,但如果电脑配置不够,它会自动切到CPU推理,速度自然感人。看GPU利用率,可以用nvidia-smi,看看进程列表里有没有ollama字样。如果没有,可以在环境变量里加一个OLLAMA_GPU_DRIVER=cuda,不过前提是驱动和CUDA环境都正常。
另一种情况是“模型输出乱码”。这种情况一般是量化等级太低,比如q2_k的模型,回复质量会明显下降,不是你迁移过程中弄坏了文件。换回q4_k_m或者更高的量化等级即可。
5.4 多个模型同时加载导致内存爆掉
有朋友喜欢一次性跑好几个模型,结果内存爆了,系统卡死。Ollama默认会在内存里缓存已加载的模型,方便你快速切换。如果内存不够大,建议把OLLAMA_MAX_LOADED_MODELS设为1,只保留一个模型在内存里。
设置方式还是环境变量,添加一个名字为OLLAMA_MAX_LOADED_MODELS的系统变量,值填1。这样就不会同时加载多个模型,原理很简单:Ollama会把暂时用不到的模型从内存里卸载,下次调用时再按需加载。虽然切换模型会慢一点,但胜在系统稳定。
5.5 安装完Ollama双击没反应
如果你是从官网下载的安装包,装完之后系统托盘会有一个小图标,但没有图形窗口。这是正常现象,Ollama本身就不是主打GUI的软件,一切操作都在命令行里。双击桌面图标如果没反应,先确认托盘图标还在不在,然后在CMD里执行ollama run llama3.2,只要能正常对话,安装就没有问题。
如果CMD提示不是内部或外部命令,说明安装时没有把Ollama写入系统PATH。重新安装一次,或者手动把D:\Ollama加入系统Path环境变量。这就是为什么我推荐用/DIR参数指定安装路径,路径固定了,手动配Path也方便。
5.6 常见问题速查表
| 问题 | 常见原因 | 处理建议 |
|---|---|---|
| 模型文件仍写入C盘 | 环境变量未生效或未重启服务 | 重启Ollama,必要时重启系统 |
| 下载进度卡住 | 网络波动导致重连失败 | 重新执行ollama pull,支持断点续传 |
| 模型对话很慢 | 未正确调用GPU | 用nvidia-smi确认,检查驱动和CUDA |
| 多个模型同时加载内存爆掉 | 默认模型缓存策略太激进 | 设置OLLAMA_MAX_LOADED_MODELS=1 |
| 创建目录联接失败 | 权限不足 | 管理员终端运行mklink,优先用/J参数 |
| CMD不识别ollama命令 | 未正确配置PATH | 重装或手动添加D:\Ollama到Path |
6. 几个高频命令和配置项,顺手列给你
讲到最后,把平时最常用的命令和配置项整理出来,当作一份速查版说明书。遇到问题先翻这一段,比百度管用。
常用命令:
# 查看当前已下载模型 ollama list # 运行某个模型 ollama run llama3.2 # 下载某个模型并指定量化等级 ollama pull qwen2.5:7b # 删除某个模型 ollama rm qwen2.5:7b # 查看模型详细信息,包括参数大小和路径 ollama show qwen2.5:7b # 从Modelfile注册本地模型 ollama create mymodel -f D:\model-files\Modelfile常用环境变量:
| 变量名 | 作用 | 推荐值 |
|---|---|---|
| OLLAMA_MODELS | 模型存储目录 | D:\ollama\models |
| OLLAMA_HOST | 服务监听地址,配合API调用时用 | 127.0.0.1:11434 |
| OLLAMA_MAX_LOADED_MODELS | 同时加载的模型数量 | 1 |
| OLLAMA_NUM_PARALLEL | 单个模型并发请求数 | 默认即可 |
说实话,Ollama这个工具本身不复杂,尤其是和“把模型部署到生产环境”这类需求比,它的核心就是“下载模型、运行模型”两件事。但Windows上文件存放路径的坑,确实会劝退一批刚上手的朋友。你只要抓住核心思路——模型目录必须能完全掌控在你自己手里——再配合环境变量OLLAMA_MODELS和合理的安装方式,C盘空间焦虑就能彻底解决。
我自己的日常习惯是:Ollama程序装在D盘,模型目录固定放在D:\ollama\models,需要换机器时直接拷贝整个目录,在新机器上配好环境变量,模型立刻全回来了,原理就是模型文件本身是自包含的,新装Ollama后指向同一个目录就行。这个方法我试过很多次,百试不爽。