磁盘空间回收 - 快速获胜?: 阅读量太大?基本选项(可以说)。
最终总结
这个问题原来是一个重定向TEMP
和C:\Windows\Installer
缓存文件夹 - 后者位于不可用的驱动器上。
请特别注意重定向系统文件夹C:\Windows\Installer
。它是一个超级隐藏的系统文件夹,副作用很常见。
您必须确保重定位的文件夹具有原始文件夹所具有的正确 ACL 权限。出于安全原因,这一点至关重要。一方面,整个文件夹可能会被不了解其用途的人删除 - 使所有软件包都无法卸载和维护。还有其他安全原因。
另外:在我看来,把这个文件夹放到网络上在技术上并不合理——会导致问题。如果驱动器号发生变化,本地驱动器也会出现问题。这让我想到了下一点:
系统 SSD 驱动器空间不足?
如果您的真正问题是系统 SSD 驱动器上的磁盘空间不足,请考虑下面列出的一些替代方案。谨慎行事,风险自负。它们中的大多数应该是无害的。
磁盘空间可视化:我有一个名为的古老工具SpaceMonger.exe
,它可以直观地显示占用磁盘空间的任何内容。很有用。似乎不再支持此工具。也许检查https://en.wikipedia.org/wiki/WinDirStat是否有类似的工具(未经我测试 - 由virustotal.com运行)。
DriverStore:对所有计算机人员中的常驻黑客说一句话:不,不-不要尝试重定向%SystemRoot%\System32\DriverStore
(!)。“诱人的黑暗面是”。“跑阿甘,跑! ”。“小心那把斧头尤金”。等等......你明白了。暂时不考虑 Monty Python 的典故。说真的:我不知道引导过程中可能涉及哪些低级内容。一个人不得不问Raymond Chen,但不要。他有重要的事情要做。但是: pnputil.exe、DriverStore Explorer - 风险自负。不要这样做:-)。
总体建议
更新:对于笔记本电脑,我喜欢使用大容量、低调的 USB 闪存驱动器和/或永久位于端口中的大容量 SD 卡来保存我的下载和安装程序、VS 帮助文件,甚至可能是源代码(风险更大) . 一个明显但有点“笨拙”的选项。
可以将此驱动器与Windows 资源管理器中的库功能结合使用,
以在您想要的任何库(下载、视频、图片、源等)下显示闪存驱动器。
下面我首选的桌面磁盘清理选项是:7、19、2、18、1、6、11、12(按此顺序)。
笔记本电脑的首选选项:7、19、2、18、6、10(减少最大缓存大小)、15、17、3 (按此顺序)。
对我来说,现实世界的方法是一个稍微不同的顺序:2(清除过时的 Windows 更新 - 这也可能会修剪 WinSxS - 但我不是肯定的),19(卸载不必要的软件 - 可能相对较快),然后我跑去SpaceMonger.exe
找占用空间并移动它们 - 这通常涉及对Downloads folder
( 7 ) 和清除、移动或云化媒体文件(图片、视频、音乐),然后是6用于开发人员 PC(运行 Visual Studio 并卸载无用的 SDK 和帮助文件),以及9(消除休眠 - 不适合笔记本电脑),18(启用压缩 - 可能需要很长时间),最后我可能会删除恢复分区(笔记本电脑)并在其位置创建一个新分区以允许将数据文件存储在那里(释放系统分区空间)。显然,这种电击是一项高风险的操作。非常容易出错(特别是如果没有经验的用户使用 diskpart 命令行工具或 Linux Live Boot 工具 - 如下所述)。显然,在清除恢复分区之前验证您是否拥有安装介质和有效的许可证密钥- 必须提及。我移动的数据文件通常是:源代码存储库、下载文件夹、outlook PST 文件、图像和视频等......这个过程应该回收许多 GB 的磁盘空间. 不过,不要为了好玩而这样做——尽管大多数这些选项的风险应该是可以接受的(除非恢复分区切换——这样做相对简单,但容易出错)。
清理选项
对这些选项应用健康的怀疑态度。在许多情况下,它们并不是都非常有用 - 只是试图提及各种调整。没有太多配置和摆弄的潜在简单、大胜利可能是 2、6、7、9、18。选项 2 和 18 几乎总是耗时,但非常有效。选项 2 可能需要几个小时(尤其是在 Windows 7 和 8 上 - 在运行时不要中止),对于大型计算机或慢速磁盘上的选项 18 甚至更长(但可以取消操作)。
选项 0,云存储是当今时代隐含的整体选项。OneDrive Filer、 GDisk、 Dropbox等...按需下载数据文件。
我的文档:通常将用户数据文件夹移动到网络位置或另一个本地驱动器(最好)比重定向系统文件夹要好得多!很少有系统纠缠。
- 我不会移动此处找到的桌面或其他文件夹:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
,我会移动“我的文档”。只需在 Windows 资源管理器中右键单击它,转到属性,那里有一个选项卡,其中包含帮助您移动它的功能。这样做时要小心——首先要进行备份。
Pictures
并且Video
可能也可以移动,但不能移动桌面或其他特殊文件夹 - 它们可能参与启动或登录过程(错误的包可能会导致即使对于我的文档 - 没有什么是没有风险的)。
- 来自 iTunes 或类似应用程序的流媒体和媒体文件显然可以完全占用容量有限的光盘。我
SpaceMonger.exe
用来获得概览,然后将文件移动到其他地方。
- 对于有多个用户的计算机,显然会有多个“我的文档”文件夹需要重定向。
Microsoft 的磁盘清理工具:运行cleanmgr.exe
,Clean up system files
按此处所述选择: https ://serverfault.com/q/573208/20599 (顶部)。
2018 年 10 月更新:“下载”文件夹现在是一个清理选项!不启用!它毫无疑问地删除了整个下载文件夹。到 2021 年 10 月,此问题似乎已得到纠正。
您现在可以取消已应用的 Windows 更新的卸载 -这可以让您在系统驱动器上恢复几千兆字节。在下图中,我可以使用 5.36 GB。对于 Windows 7,我已经看到几十 GB 的数据可以清除。
此工具还可以精简和缩小WinSxS directory
(Win32 并行程序集文件夹)。我不是 100% 积极的。
显然,您可以在“添加/删除程序”中删除不必要的软件包并删除系统还原点(使用下图中的第二个选项卡来访问这些功能):
第三方清理应用程序: CCleaner等第三方工具可以通过清除各种应用程序和工具的缓存文件和临时文件来清理更多空间。这个特殊的工具最近遭受了恶意软件攻击。使用风险自负。
- 个人意见/建议:仅用于测试盒或非关键机器。清理工作非常棒,但也涉及一些风险(丢失登录密码、丢失系统日志等)。不言而喻,但它可能应该被提及。
- 我的 2 美分:不是企业解决方案,但对于喜欢试验和保持机器调优的高级家庭用户来说可能没问题。
管理安装:对于大型 MSI 文件,执行管理安装将阻止将整个 MSI 文件缓存到C:\Windows\Installer
. 您必须从适当的网络共享进行安装,以便文件可用于修复操作。
安装驱动器:有些人涉足将外部驱动器安装为系统驱动器上的文件夹。换句话说,另一个驱动器在您的系统驱动器上显示为一个常规文件夹,并起到这样的作用(示例)。
- 我对此没有经验,并且随着时间的推移,我怀疑它的可靠性。据我所知,如果你做得对(并且永远不要取出物理驱动器),它实际上可能比其他几个选项更好。
- 我只会做数据文件夹(不是设置文件夹,或者桌面等核心操作系统文件夹)。也许对于源代码管理文件夹。如果链接断开,数据应该仍然是安全的,系统仍然可以启动(并且链接重新建立)。
- 更新:Windows 资源管理器的“包含在库中”是另一种选择吗?(看一看)我喜欢创建一个“源代码库”,其中包含来自这里和那里的文件夹。
Visual Studio:以及 Visual Studio 的明显清理选项(为了完整性):
- 如果您已在本地下载了 MSDN 帮助(
Help => Add and Remove Help Content
,请酌情删除项目并改用在线帮助或将其更改Local store path
为底部以使用另一个驱动器来存储内容)。
- 或者您有多个不需要的 SDK 版本,或者您有不需要的Visual Studio 功能,请摆脱它们(在 Visual Studio 中:
Tools => Get Tools and Features...
-摆脱不必要的功能-我经常使用Individual Components
视图)。
下载文件夹:我确信我已经忘记了许多可行的选项来获得更多的工作空间而不会破坏你的盒子。一种是清理您的Downloads folder
安装程序并将所有安装程序移动到网络位置 - 这可能是某些人最大的节省。
- 这也适用于笔记本电脑——这几乎是我为磁盘空间很小的笔记本电脑做的第一件事。如果您无法访问安装程序的网络共享 - 例如在旅行时 - 只需使用拇指驱动器或外部硬盘驱动器来保存您的安装程序和 ISO 文件。
- 对于具有多个用户的计算机,显然会有多个下载文件夹可能充满了东西。使用磁盘空间可视化工具查看(请参阅列表顶部的链接)。
页面文件:有些人将系统页面文件 (pagefile.sys
) 从系统驱动器移动到另一个驱动器。过去,这导致我的系统无法启动,但现在情况可能好多了。不过,这不是我要做的第一件事——这是非常核心的操作系统。
- 对于只有一个驱动器的笔记本电脑显然是不可能的(除非您擦除恢复分区并在其位置创建一个真实的可见分区)。
- 我发现这个选项有风险,也许我应该把它放在下面的“不光彩的提及”部分。
- 当心。如果您遇到问题,也许“最后一次知道的好”功能或系统还原可以帮助您?
休眠文件:Windows 系统上的休眠文件将存在于系统驱动器上,出于非常基本的技术原因,我不知道有什么方法可以将它移动到其他任何地方。但是,您可以禁用休眠以摆脱整个文件。这将在现代计算机上释放几 GB 的空间。
- 您显然无法让您的机器进入休眠状态(内存转储到磁盘),但睡眠模式(低功耗使用模式/待机)应该仍然可用。
- 笔记本电脑可能更希望保持休眠模式(如果在旅行时电池电量耗尽,笔记本电脑无法自动休眠,您可能会丢失数据)。
应用程序临时和缓存文件夹:上面提到CCleaner
的可以为各种应用程序清除大量临时文件(尽管我并不真正推荐使用它——我使用它cleanmgr.exe
——而 CCleaner 用于测试框)。
- Web 浏览器(Firefox、Opera、Vivaldi、Chrome、IE、Edge、Safari 等)也可以向磁盘发送大量缓存文件和下载的垃圾邮件。可以重定向所有这些文件夹,但我更喜欢将它们减小到某个可接受的最大大小。
- 随着时间的推移,许多其他各种应用程序都会在系统上留下垃圾。其中一些可以使用上面提到的 CCleaner(或其他此类工具)进行清洁。再次不是工具推荐。如果可用,请使用应用程序本身内部的清理功能。
- 对于具有多个用户的计算机,显然会有多个缓存文件夹文件夹来限制和清理。
特殊数据密集型应用程序的存储文件夹:某些应用程序可能会在您的系统驱动器(以及“我的文档”之外)存储大量数据文件,这些文件可以移动到其他驱动器。
- 最大的嫌疑人可能是Outlook(至少在旧版本中)或其他电子邮件软件(Thunderbird、Lotus Notes 等)。对于 Outlook,有一个 *.PST 文件存储所有电子邮件和附件,或者如果连接到 Exchange,则有一个类似的同步文件。该文件可以相对容易地移动到不同的驱动器。有些人甚至诉诸于仅将 Web 界面用于他们的电子邮件并消除本地 PST 文件(适用于笔记本电脑)。
- 在不过度使用的情况下,MS-SQL 数据库可能是另一种类型的海量数据文件,可以相对轻松地移动到不同的驱动器。
- 这个列表可以做得很大,但添加更多(网络服务器文件夹、虚拟机图像、媒体/视频文件(如上所述)、虚拟化应用程序等)收益递减。
- 对于具有多个用户的计算机,显然会有多个存储位置需要重定向。
源代码控制工作文件夹和存储库:对于开发人员来说,这是 100% 不言而喻的 - 列出来几乎令人尴尬,但我只想提一下。它也与上一点有关,但我将其添加为自己的要点。您将工作文件夹和源代码存储库(如果不同,并且如果是本地的)移动到与系统驱动器不同的驱动器。例如GIT、Mercurial、Perforce、StarTeam 等...
构建进程垃圾:除了将源代码控制文件夹移动到其他驱动器之外,某些进程还可能会生成巨大的日志文件,这些文件有时会在意外位置向系统发送垃圾邮件。我听说MSBuild倾向于热情地创建散布在系统中的日志文件,我不确定普通的 Microsoft 清理工具是否检测到它们(例如cleanmgr.exe
上面提到的)。你的源代码可能有很多你可以删除的目标文件。
Visual Studio Code:愚蠢的选择,但对于临时开发人员笔记本电脑或旅行的技术人员,可能会依赖更小和多平台的Visual Studio Code而不是 Visual Studio 来进行小型开发测试/工作。明显更小的安装。个人说明:整个工具有点奇怪:-)。现在还有浏览器版本?
Windows 应用商店应用程序和每用户安装:如果盒子上有多个用户,则可以多次安装多个应用商店应用程序,每个用户一次。如果需要,可以在这里进行一些清理。我想有些游戏可能会很大。在并行安装功能的时代,我们现在要为每个用户部署所有东西吗?奇怪的。
调整每个软件包安装:几乎您安装的每个软件包都可以在安装过程中稍作修改,以向系统分区添加更少的文件。
- 重定向应用程序安装文件夹:这是我个人不喜欢的选项,但它被大量使用。对于每次安装,您将安装文件夹重定向到与常规
ProgramFilesFolder
. 这是在每个包的基础上完成的,并非所有包都支持这一点。通常,您会转到“自定义”安装对话框,在其中执行“功能选择”(要安装哪些设置功能)。
- 排除可选功能:您安装的大多数软件包都将具有可选组件,您可以忽略这些组件,甚至在某些 MSI 软件包的情况下从源代码运行。某些开发人员工具通常可以进行相当多的调整而不会产生太多副作用。大型游戏通常安装到不是系统驱动器的常规非 SSD 硬盘驱动器上。
卸载 Windows 组件:可以在 Windows 中添加/删除一些组件。Turn Windows Features On or Off
从旧式单击Add / Remove Control Panel Applet
。您可以关闭/删除某些 .NET 版本、IE、IIS、Windows Media Player、消息队列服务器、打印到 PDF、PowerShell 和各种其他组件。可能不会从中获得太多好处(可能通过删除一些组件来获得一些安全优势 - 例如对 SMB 1.0 / CIFS 文件共享或 IIS 的支持)。
为系统驱动器启用压缩:您可以在整个系统驱动器上启用压缩 - 有一些性能损失 - 只要文件系统是 NTFS。简直了Right-click the system drive => Properties => Compress drive to save disc space
。这可能需要相当长的时间(旧的 HD、SSD 更快)。您还可以压缩单个文件夹。我喜欢在 Windows 资源管理器中启用“以彩色显示压缩或加密的 NTFS 文件”选项。File Menu => Options => Show => Show compressed or encrypted NTFS files in color
.
卸载不需要的软件:上面第 2 项中提到的被遗忘的明显选项,您显然应该卸载不再需要的任何软件。常见的磁盘占用:games
,weird SDKs
并development tools
安装用于测试,expired trial versions
用于各种软件等...卸载:Windows key+R,键入appwiz.cpl
并点击Enter。
用户数据清理:对于某些已卸载的应用程序,可能会%UserProfile%
在%AllUsersProfile%
. 清理像往常一样有风险,请谨慎使用,但这里可能有很多垃圾 - 有时是千兆字节。
- 在这种清理过程中必须非常小心。先压缩文件夹。“只有大赢家”——为什么要对小文本文件挑剔?如果您陷入这些文件夹中,则实际收益会减少。使用磁盘空间可视化工具查看情况。
%AllUsersProfile%
- 共享数据
%UserProfile%
和%UserProfile%\AppData
- 用户特定数据,记得为所有用户(如果有多个)清理。
杂散包缓存:如上所述,MSI 包(和其他安装程序包)有很多缓存。卸载后可能会留下很多这些软件包(至少在当天使用 Installshield 缓存的设置就是这种情况)。
- 此处描述了最常见的缓存位置:(MSI) 包的缓存位置。显然,清洁风险自负——我再说一遍,我是认真的。一些千兆字节通常存储在这里。
- 内联路径(只是一个选择,可以有很多其他的):
- 维克斯:
%ProgramData%\Package Cache
- Installshield:(
%SystemRoot%\Downloaded Installations
较旧的 IS 设置)和%LocalAppData%\Downloaded Installations
(较新的 IS 设置)
- 高级安装程序:
[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install
- 视觉工作室:
%AllUsersProfile%\Microsoft\VisualStudio\Packages
。请参阅下面评论中的重要提示(禁用缓存)。
包分发缓存文件夹:SCCM 和其他包分发系统的缓存文件夹变得非常大。例如ccmcache。这些文件夹通常可以清理或重新配置以占用更少的空间。
毫无疑问还有许多其他小技巧,但请不要重定向系统文件夹!
替代方法
(Dis)-Honorable Mentions:以下不是建议,而是一些替代方法。它们比上述选项的风险更高(应该足够好),最好是在您设置新的笔记本电脑或重新安装它,并且想要摆脱您可以不用的讨厌的供应商恢复分区。
让我们坚定地说明这一点:使用这些工具每年都会丢失大量数据。所以先喝咖啡或咖啡因。戴上眼镜。看看周围。调整任何马尾辫和胡须(女士们也是)。用第三人称对自己说话。摆出明显疯狂的姿势,大声喊出“我愿意! ”,真正投入迫在眉睫的灾难!祝你好运!洞里开火!“为效果而火”。大闹天宫。富巴尔。好的,已经够了......我有过糟糕的经历 - 但没有巨大的灾难(敲木头) - 使用所有这些工具。说得够多了——小心,你的数据很重要。老婆的宝贝图片,你的未提交代码等等……
- diskmgmt.msc或diskpart.exe (Windows):打开分区管理器
diskmgmt.msc
(
- 无法再恢复出厂设置(无论如何可能已经过时)。您需要安装媒体才能重新安装(可下载?)。
- 小心你抹去的东西!不可恢复。分区通常受到保护且不可触及。在许多情况下,它们也是不可移动和不可扩展的。
- 也许创建一个新的可见分区来替换恢复分区并将数据文件和下载文件夹移动到那里以在系统分区上腾出更多空间?
- 如果分区受到保护,您可以使用diskpart来删除它们,或者查看下一个要点
gparted
。diskpart
虽然使用(命令行)很容易把事情搞砸。
- gparted (Linux):您可能无法从
diskmgmt.msc
(受保护的分区)中删除恢复分区。如果您坚持并坚持,您可以启动到Linux Live 光盘/系统gparted
(从可移动媒体启动)并使用例如
删除
- 我这样做是为了摆脱过时和无用的恢复分区和/或恶意软件,它工作得很好。
gparted
但坦率地说,我尽可能地信任这个应用程序。无意冒犯gparted
,但在 Windows 上玩得好是具有挑战性的。对于这种冒险的努力,备份是至关重要的和强制性的——显然。
- 尽管有风险(Linux 工具正在更新声明 Windows 分区的分区表),但这可能适用于无法重定向数据文件夹的笔记本电脑,因为只有一个物理磁盘并且您希望系统分区的完整磁盘。
- 我认为
gparted
此时甚至允许您尝试调整现有分区的大小。我从未尝试过。如果你尝试,祝你好运。“在洞里开火!”。
- 克隆:一些使用映像工具或磁盘克隆功能(硬件)将旧磁盘克隆到更大的磁盘上。备份显然必不可少。远离我的舒适区 - 只是提到它。与此列表无关(应该是关于获得更多磁盘空间的简单有效措施)。
- 我相信也有这方面的功能
gparted
。从未测试过。
- 各种硬件解决方案。几年前我放弃了它们。
- 为什么我持怀疑态度?恶意软件。磁盘错误。加密。NTFS 复杂性?AD 问题(克隆后使用的新旧驱动器)?ETC...
- 几家硬盘供应商似乎为此提供了专有解决方案——这些可能比通用方法得到更好的测试?
- 文件系统分配大小:使用的文件系统及其分配大小会影响可用空间。从来没有费心去看这个,但是分配大小问题会浪费很多空间:SSD驱动器会从非默认分配单元大小中受益吗?
- 无法轻松/安全地更改正在使用的磁盘的分配大小。可能有工具可以做到这一点,但好处是不确定的。
- 现代 Windows 版本需要NTFS作为系统分区文件系统。其他文件系统,如FAT32或exFAT具有较低的开销(尤其是对于较小的分区 - 将有更多可用空间),它们可能更快但有更多限制。对于 FAT32,最大的限制可能是4GB 的最大文件大小- 今天不可行。
该答案的其余部分(如下)是在调试期间编写的- 我将保留它。它包含通用和通用调试选项。
VC+ 运行时
如底部链接所示,其他人也看到了相同的部署错误。在进行过多调试之前,让我们尝试最简单的方法。请尝试从此处安装 2017 年(可能还有 2015 年)的 VC++ 运行时:
潜在的一般修复
这似乎是针对此问题的更好的在线讨论。我会首先尝试运行此工具的建议: Microsoft Install and Uninstall Troubleshooter。
您也可以尝试此修复列表。至关重要的是,在再次尝试释放任何潜在的锁定文件之前,我还会尝试重新启动。只是为了把石板擦干净。系统的事件日志可能包含有关所见错误的更多信息(有时甚至超出日志中的内容)。msiexec.exe
ACL
G: 驱动器上 TEMP 文件夹的 ACL(访问控制列表)是什么?
更新:还要确保隐藏文件夹C:\Windows\Installer
存在并具有正确的权限设置。您需要show protected operating system files
在 Windows 资源管理器中查看此文件夹。
详细记录
尝试为有问题的 MSI 安装创建一个适当的详细日志(比您引用的日志提供更多信息)。这使您可以开始了解正在发生的事情。您可以在此处找到有关如何进行日志记录的一些信息。
我将为所有 MSI 安装启用日志记录以进行调试。有关如何执行此操作,请参阅有关日志记录的 installsite.org(“全局用于机器上的所有设置”部分)。
我更喜欢为开发和测试框打开此默认日志记录。通常,您会突然看到一个 MSI 错误,并且希望您有一个日志 - 现在您可以随时准备好在%tmp%
.
快速测试
在你的情况下,我会去C:\ProgramData\Microsoft\VisualStudio\Packages\Microsoft.VisualStudio.MinShell.Msi,version=15.6.27421.1\
看看磁盘上是否存在 MSI 包,然后我会在启用日志记录的情况下启动它:
msiexec.exe /I "Microsoft.VisualStudio.MinShell.Msi.msi" /QN /L*V "C:\msilog.log"
或者,我只需双击 MSI 文件,看看是否会收到更好的交互式错误消息。您很可能需要详细日志来获取任何信息。
请参阅下面评论中的链接(具体错误)。