0

我正在 MSDN 网站上阅读有关 NTFS 的文章。这是其中的一部分,请注意突出显示的部分:

"您可以将新创建​​的卷的 MFT 区域大小更改为对应于用作 MFT 区域的卷的百分比。MFT 区域大小如下:

默认设置 1 保留大约 12.5% 的音量。

设置 2 保留大约 25%。

设置 3 储备约 37.5%。

设置 4 保留大约 50%。

在大多数计算机中,默认设置 1 就足够了。默认设置适用于平均文件大小为 8 KB 的卷。存储大量较小的文件可能需要为新卷增加 MFT 区域的大小。 增加 MFT 区域的大小后,NTFS 不会立即分配空间以适应新 MFT 区域的大小。相反,NTFS在增加 MFT 区域的大小之前会耗尽原始保留空间”

这是否意味着我以后只能为新卷更改 MFT 区?那么,这里的“原始保留空间”是 12,5%?这意味着即使是具有 50% MFT 区域的新卷,也必须耗尽 12.5% 才能分配其余部分?非常感谢!

*文章:https ://technet.microsoft.com/en-us/library/cc781134(v=ws.10).aspx

4

2 回答 2

1

无法发表评论。

@WRFan 您在谈论“系统保留存储”,Windows 为更新等分配的空间,而不是 MFT!!

要启用或禁用保留存储(释放或分配空间),请使用:

DISM.exe /Online /Get-ReservedStorageState

DISM.exe /Online /Set-ReservedStorageState /State:Enabled
DISM.exe /Online /Set-ReservedStorageState /State:Disabled
于 2021-07-28T13:14:46.780 回答
0

更改计算机的设置不会立即影响任何现有卷

肯定不会的。事实上,除了重新格式化有问题的卷之外,似乎没有任何办法可以减少 MFT 保留集群的大小。万一有人知道该怎么做,我全神贯注。

我在检查我的 VMWare 虚拟机硬盘空间时遇到了这个问题。运行 chkdsk 返回

11.533.072 KB

但 Windows 资源管理器、cmd 目录等返回 19.6 GB!谁吃掉了缺失的空间?谁干的?!当然,谷歌一无所知。想成为专家会告诉你在资源管理器中启用隐藏文件,删除 hiberfil.sys 等等。废话,当然,全是。所以,最后,我遇到了关键字 $mft。所以我检查:

fsutil fsinfo ntfsinfo c:

惊喜!

Total Reserved Clusters: 1.820.556 (6,9 GB)
Reserved for Storage Reserve: 1.809.957 (6,9 GB)

你来了,你这淘气的迷失空间!因此,这是在 VMWare 内的 Windows Enterprise 20H2 10.0.19042.804 x64 上检查的。为了进行比较,我在我的真实硬盘 Windows LTSC 10.0.10240 x86 上进行了检查。输出:

保留集群总数:0x0000000000000d30

好吧,谈论 Windows 更新!他们确实在过去 5 年中改进了 fsutil 命令!无论如何,xd30 == 3.376 个集群,而 20H2 保留 1.820.556 个集群 -> 6.9 GB!那么……如何回收呢?查了一下谷歌,想成为专家的人又张了张可怜的嘴!他们说,只需对硬盘进行碎片整理,问题就会消失!我走了!Defrag 只是对 MFT 进行碎片整理,它不会减少保留的大小。

很好。意味着,备份,格式化一切,恢复。当然,问题无处不在。所以首先,备份:

将 Win10 ISO(*.esd 可以转换为 ISO,据我所知,但我这里有 ISO)作为 DVD 驱动器安装到 VMWare

附加第二个硬盘。为什么?好吧,你继续读下去。

现在启动到 boot.wim,执行:

dism /Capture-Image /ImageFile:XXX:\six.wim /CaptureDir:XXX:\ /Name:Win10 /ConfigFile:XXX:\peexclude.ini /Compress:fast /Verify

其中 peexclude.ini 包括 Bullsh*t like

\$Recycle.Bin
\RECYCLER
\System Volume Information
\pagefile.sys

错误 80:文件存在

Errr... 错误什么?!好吧,这就是 MS 告诉你 dism 内存不足的神秘方式。这在我的真实电脑上从未发生过,因为我的旧电脑上有 4GB 内存,新电脑上有 32GB,但目前,我在旧电脑上运行,4 GB - 500 MB 保留给硬件,因为 x86 , 所以

wmic os get freephysicalmemory, totalvisiblememorysize

FreePhysicalMemory  TotalVisibleMemorySize
2415424             3644720

所以我只能为 VMWare 分配 1.5 GB,还不够。所以需要“ScratchDir”,因此需要另一个硬盘:

mkdir XXX:\tmp

... /ScratchDir:XXX:\tmp

好的,所以 Win 删除了硬盘,然后我启动到虚拟客户机并使用 VMWare 工具(共享文件夹 -> HKLM\SYSTEM\CurrentControlSet\Services\vmhgfs)将 *.wim 备份复制到我的真实硬盘。然后,在真机上:

oscdimg -u2 -h -o -m -us -r "c:\copy\test" "d:\copy\burn.iso"

所以基本上,创建一个包含 *.wim 的 ISO 来恢复。

再次将 20H2 安装介质作为 DVD-Drive 安装到 VMWare 中,与包含 Windows 备份的 ISO 作为另一个 DVD-Drive 相同。再次启动到 Win 安装介质上的 boot.wim,然后:

format /fs:ntfs /v:XXX /q c:

Invalid volume name...

无效什么??!!让我们检查:

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/format

/v:<label>

好吧,微软说,语法是正确的,但格式命令本身说它是错误的。去搞清楚。所以删除了标签参数,这个有效。Format 两次询问卷名。似乎一次是不够的。烦人!该死的这个奇怪的命令!恢复了 VMWare 快照,尝试使用 diskpart format 子命令:

diskpart

select disk 0

select partition 1

format fs=ntfs quick label=XXX

Volume in use. Use "override"

Err.. over-what?像这样?

format fs=ntfs quick label=XXX override

看,它做到了!幸运的猜测。再次检查 Total Reserved Clusters 的大小,大小不错,4 MB 或类似的大小。于是尝试恢复wim镜像:

dism /Apply-Image /ImageFile:XXX:\six.wim /Index:1 /ApplyDir:XXX:\ /Verify

Error 1450: "Insufficient system resources exist to complete the requested service"

而已!我要回家了!不再为我而沮丧!好吧,至少,这次错误更清楚了。又内存不足了。所以我为 VMware 分配了 1.6 GB,这让我的真实 Windows 没有内存,裤子掉了,而不是虚拟客户关心我的问题。这次它奏效了。重新启动虚拟 Windows,检查资源管理器中的硬盘空间:

> 12.087 GB

现在我们正在谈论。检查保留集群:

Total Reserved Clusters: 13.360  (52,2 MB)
Reserved for Storage Reserve: 0  ( 0,0 KB)

最后!另外,检查以下值:

HKLM\SYSTEM\CurrentControlSet\Control\FileSystem

我真的很想知道最初为 MFT 保留的 7 GB 是什么。另外,我仍然不知道如何减少 MFT 保留大小而不是重新格式化。微软?有人吗?

于 2021-03-11T15:52:55.633 回答