遇到过 Windows “备份和还原”里弹出0x80780038的朋友,八成都会被那句“指定的备份存储位置在另一个卷上有卷影副本存储”绕晕。说实话,我第一次见到这个报错也愣了半天,因为中文文案实在太拧巴了,字面意思完全没法直接对应到操作上。后来排查过几次,发现这个问题的根源其实很集中,基本都出在卷影副本存储位置配置上,修复思路也相对固定。
这篇文章我就把0x80780038的成因、排查步骤和几种可靠解法完整梳理一遍,包括命令、图形界面操作、以及一些容易踩的坑。无论你是刚接触Windows备份的新手,还是被这个问题折腾了好几天的老用户,按着下面的流程走,基本都能解决。
1. 这个错误到底在说什么
1.1 报错出现的典型场景
这个报错最常出现在以下三种场景里:
- 新建备份计划时,选择了某个磁盘(比如D盘或移动硬盘)作为备份目标,点“保存设置并运行备份”后立刻弹窗报错。
- 修改已有备份计划的存储位置,重新指定到另一个分区后,保存失败。
- 系统盘C盘已经开启了系统保护(也就是“以前的版本”功能),然后你再尝试把系统映像备份到另一个卷时触发冲突。
我在实际排查中发现,场景一和场景二占了大头,尤其是“之前能备份,调整了一下存储位置就报错”的情况,基本可以断定是卷影副本存储关联出了问题。
1.2 卷影副本存储机制与报错成因
要搞清楚0x80780038,你得先理解一个概念:Windows备份并不是直接把文件一个个复制到目标盘那么简单。备份过程中,系统会通过卷影复制服务(VSS,Volume Shadow Copy Service)创建一份“点时间快照”,然后基于这个快照去生成备份文件。快照本身需要占用一块存储空间,这块空间就是“卷影副本存储”。
正常情况下,卷影副本存储会分配在它对应的卷上。比如说,你要备份C盘,存储就落在C盘的系统卷信息目录里;你要备份D盘,存储就落在D盘。但Windows允许你通过vssadmin命令去调整这种关联,把某个卷的卷影存储移到另一个卷。
问题就出在这里:当你在“备份和还原”里指定某个磁盘作为备份存储位置时,系统会检查目标卷的卷影存储关联。如果它发现目标卷的卷影副本存储被指向了另一个卷——而这个卷又不存在、或者无法写入、或者配置不完整——就会直接报0x80780038。
打个比方:你想把贵重物品存进图书馆A馆的储物柜,但系统记录显示A馆的储物柜钥匙在B馆手里,而B馆要么拆了要么锁死了。图书馆管理员看一眼记录就拒绝给你办手续,哪怕A馆本身没问题。
所以这个报错的核心不是“备份目标盘坏了”,而是“目标盘的卷影存储配置损坏或指向异常”。想通这一点,排查方向就清晰多了。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 动手前先做三步排查
2.1 查看卷影副本存储位置分布
先用管理员身份打开命令提示符(Win+R,输入cmd,按Ctrl+Shift+Enter),执行下面这个命令:
bash复制vssadmin list shadowstorage
这个命令会列出当前所有卷的卷影副本存储关联。正常输出大概像这样:
code复制卷影副本存储关联:
对于 C: 卷,卷影副本存储位置为: C:\System Volume Information
卷影副本最大大小: 10 GB (10%)
卷影副本当前使用: 4.512 GB (4%)
对于 D: 卷,卷影副本存储位置为: D:\System Volume Information
卷影副本最大大小: 未限制
卷影副本当前使用: 0 B (0%)
注意看“关联”那一行。正常情况下,前半部分和后半部分的卷标是一致的:C对C、D对D。如果你发现类似下面这种:
code复制 对于 D: 卷,卷影副本存储位置为: E:\System Volume Information
那基本就锁定问题了。D盘的卷影存储被指到了E盘,而E盘可能压根不存在,或者是个U盘,或者是个已经拔掉的移动硬盘。这种情况下,D盘无法正常创建卷影,备份当然会失败。
还有一种情况也要留意:存储位置指向的那个卷存在,但剩余空间为0,或者文件系统不是NTFS。VSS对存储卷有要求,不支持FAT32、exFAT这类格式。
2.2 确认备份目标盘文件系统与状态
在排查之前,先确认一下你打算用来存备份的磁盘是什么文件系统。打开“此电脑”,右键目标盘,选“属性”,看“文件系统”那一栏。
- 如果是
NTFS,继续往下排查。 - 如果是
FAT32或exFAT,那就别折腾了,Windows自带的备份和还原(Windows 7模式)不支持在这种分区上创建卷影副本。直接把盘格式化为NTFS,或者换一个NTFS盘做备份目标。 - 如果你用的是U盘,大概率也是FAT32或exFAT,同样不建议作为备份目标。
另外,目标盘的剩余空间也需要看一眼。卷影副本需要预留空间,如果目标盘快满了,也可能触发类似的错误。我的经验是,备份目标至少保留目标盘总容量20%以上的可用空间才比较稳妥。
2.3 判断问题根源:跨卷指向还是残留配置
看了vssadmin list shadowstorage的输出后,有两种可能:
第一种是“跨卷指向异常”,就是我们上面说的,某卷的存储被指到了另一个卷上。这种问题用第3.2节的方法重置就可以解决。
第二种是“存储关联本身没问题,但备份配置残留”。这种常见于你之前在控制面板里配置过一个备份计划,后来删除了某块硬盘,但备份配置没有清理干净。再次选择新目标盘时,系统拿旧的配置去套新的盘,就报错了。这类问题通过3.1节的方法删除备份配置重来,基本能解决。
你可以顺手检查一下系统保护的状态。Win+R输入SystemPropertiesProtection,回车,在弹出的窗口里看“保护设置”列表。如果备份目标卷的保护状态是“启用”,说明该卷本身参与了VSS,这会增加发生关联冲突的概率。特别是当你同时开启了多个卷的系统保护时,跨卷指向的配置一旦出问题,备份功能就会跟着遭殃。
3. 修复方案:从图形界面到命令行
3.1 方案一:删除原备份配置后重新添加
这是最简单、风险最低的方案,适合不想碰命令行或者对VSS机制不太熟的朋友。
打开“控制面板 -> 备份和还原(Windows 7)”。如果你的控制面板视图是“类别”,在“系统和安全”下面能找到“备份和还原(Windows 7)”。
在“备份”这一栏里,点“删除备份”或“更改设置”。注意,Windows 10和Windows 11的界面有些细小的差别,但大体一致。我建议直接走“更改设置”,然后在向导里选择“停止使用此备份计划”。这样会删除当前的备份计划,但不会删除已经生成的备份文件。
删除完成后,重新点“设置备份”,一路往下走,在选择存储位置的页面,手动指定目标盘。关键一步是,选择目标盘之后,先点击“下一步”,不要急着选“让Windows选择”,直接选“让我选择”,然后勾选需要备份的内容。这样做可以绕过一部分自动检查逻辑,提高成功率。
我试过多次,如果问题是单纯的备份配置残留,这套流程走完,备份就能正常启动。如果走到这一步仍然报0x80780038,那就需要用命令行重置卷影存储了。
3.2 方案二:用vssadmin重置卷影副本存储
这是解决问题的核心手段,也是最有效的一招。
如果你从2.1节看到某个卷的存储被指到了另一个卷,可以在管理员命令提示符里执行下面这条命令,把存储重新分配回它本来的位置:
bash复制vssadmin resize shadowstorage /for=D: /on=D: /maxsize=10GB
解释一下参数:
/for=D:指定要调整的是哪个卷的卷影存储。/on=D:指定存储放在哪个卷上。我们把它设成和/for一致,即存储落回本卷。/maxsize=10GB限制存储最大占用。不写这个参数也是可以的,默认是不限制。
执行成功后,再执行一次vssadmin list shadowstorage,确认关联恢复正常,变成“D对D”的形式。
如果目标卷上已经积累了一些旧的卷影副本,建议先清干净再重置。执行:
bash复制vssadmin delete shadows /for=D: /all /quiet
这条命令会删除D盘上所有的卷影副本。/quiet参数表示静默执行,不会弹确认。删除之后,卷影存储空间会被整体释放,相关配置也会重新初始化。然后再执行上面那条resize命令。
重置完成后,建议重启一下卷影复制服务,让配置彻底生效:
bash复制net stop vss
net start vss
注意,VSS服务停止的瞬间,所有依赖它的程序(比如备份、系统还原点创建)都会短暂失败,这是正常的。如果服务停不下来,提示“无法停止”,说明有程序正在占用,检查一下后台有没有杀毒软件扫描或系统更新进程,等一会再试。
以上操作全部完成后,重新打开“备份和还原”,再次设置备份。走到99%的情况都能顺利通过。
3.3 方案三:改用网络位置或换盘备份
如果VSS配置无论如何都修复不了,或者你懒得折腾底层的存储关联,还有一条路可以绕过这个问题:换一个备份媒介。
Windows“备份和还原”支持把备份保存到网络位置。在设置备份向导里,选择“保存在网络上”,然后输入局域网共享文件夹的地址,格式是\\服务器IP\共享文件夹名。这种方式不依赖目标卷创建卷影副本存储,因为数据是流式写入网络共享的,VSS只在源卷上工作。
我之前帮一台老机器处理过这个问题,那块硬盘的卷影存储配置已经乱得没法看了,怎么resize都报错。最后直接把备份目标改到NAS共享文件夹,十分钟就搞定了备份。如果你的环境里有NAS或者路由器挂了移动硬盘、打开了SMB共享,这个方案非常省心。
当然,前提是你确定备份内容确实需要走到那一步。如果你只是备份几个文件夹,也可以用“文件历史记录”功能(设置 -> 更新和安全 -> 备份),它不依赖卷影副本存储,走的是另一套机制,遇到0x80780038的概率更低。
另一个思路是换一块NTFS格式的移动硬盘作为备份目标。很多时候,移动硬盘的空间、文件系统都符合要求,重新建立备份计划时VSS会重新初始化存储,问题自然消失。
3.4 命令行备份wbadmin作为备选
还有一种方案,适合习惯命令行、或者图形界面始终报错的情况:用wbadmin直接发起备份。
在管理员命令提示符中执行:
bash复制wbadmin start backup -backupTarget:E: -include:C: -allCritical -quiet
参数说明:
-backupTarget:E:指定备份目标盘。-include:C:指定要备份的源卷。-allCritical表示包含所有关键卷(系统保留分区、EFI分区等都会包含进去),适合做整机系统映像备份。-quiet表示静默执行,不等待输入确认。
wbadmin和图形界面的“备份和还原”底层使用的虽然是同一套VSS机制,但它的参数检查和预处理流程与GUI不完全一样。我在一些报错场景里试过,GUI怎么都过不去,用wbadmin反而能成功。不过需要提醒一点,wbadmin不受控制面板备份计划的统一管理,恢复时需要在“恢复”界面里手动选择备份版本。
还有一种备选思路是,先备份到本地,再用其他工具(比如robocopy)手动复制到最终目标盘。虽然多一步,但能绕开VSS对目标盘存储关联的检查。这个方法不优雅,但胜在简单粗暴,适合应急。
4. 衍生问题与常见坑
4.1 衍生错误码速查与处理
排查这个问题的过程中,你可能会顺便遇到几个关联的错误码。我把它们整理成了一张速查表,方便你遇到时快速定位。
| 错误码 | 现象 | 常见原因 | 处理办法 |
|---|---|---|---|
| 0x80780038 | 备份存储位置无效 | 卷影存储指向其他卷或配置损坏 | vssadmin resize shadowstorage重置 |
| 0x8078002A | VSS快照创建失败 | 卷影存储空间不足 | 删除旧卷影或扩大存储上限 |
| 0x807800A1 | 备份目标盘不可用 | 目标盘是系统盘或未格式化 | 更换目标盘为独立NTFS分区 |
| 0x81000037 | 磁盘空间不足 | 目标盘剩余空间过小 | 清理磁盘或换更大容量目标盘 |
第0x8078002A这个错误尤其常见。有时候你执行完resize,备份能跑了,但跑到一半报这个错。这通常是因为卷影存储上限设得太小,比如只有1GB,而备份内容远超这个量。解决办法是重新执行vssadmin resize shadowstorage,把/maxsize调大一些,或者直接不写/maxsize让它不限制。
第0x81000037相对好理解,就是空间不够。这里要注意的是,Windows备份在创建卷影副本时,占用的空间可能比你预估的大得多,尤其是备份系统映像时,卷影存储会临时保留整个系统卷的数据变更块。目标盘如果没有足够的可用空间,很容易在中途失败。
4.2 日常维护建议
修复完之后,我建议你做三件事,可以很大程度上避免以后再踩这个坑。
第一,定期清理旧的卷影副本。每次备份都会在存储位置留下一个卷影副本,数量多了会占用大量磁盘空间。建议每隔两三个月执行一次清理:
bash复制vssadmin delete shadows /for=C: /oldest /quiet
这条命令删除最旧的卷影副本,保留最近的备份点。执行前记得确认一下你不需要那些旧版本文件。
第二,谨慎使用vssadmin resize shadowstorage把存储从一个卷挪到另一个卷。这个操作本身没问题,但一旦目标卷消失或移动硬盘换盘符,就会重现这次的0x80780038。如果你非要挪,建议在挪完以后立即做一次备份测试,确认链路是通的。
第三,备份计划尽量简化。我的习惯是一台机器只配一个备份计划,一个目标盘,不要频繁切换存储位置。备份这玩意,配置越多,出问题的概率越大。你只要保留了最近一到两个可用备份点,就足够应对绝大多数故障场景了。
最后再分享一个识别报错文案的技巧。“指定的备份存储位置在另一个卷上有卷影副本存储”这句话虽然拗口,但拆开看就清楚了:“指定的备份存储位置”是指你选的目标盘,“另一个卷上有卷影副本存储”是指目标盘的卷影存储被关联到了别的卷。所以当你看到这个报错时,第一反应就应该是打开vssadmin list shadowstorage看看关联关系,而不是急着换硬盘或者重装系统。
根据我的经验,90%的0x80780038在图形界面删除备份配置、命令行重置卷影存储这两步就能解决。剩下的10%,换一个NTFS目标盘或者改网络路径也都能绕过去。希望这份排查记录能帮你少走点弯路。
