我一直在尝试在我的个人笔记本电脑上设置 Ubuntu 18.04 与 Windows 10 双启动,使用这指导。
我只有一个磁盘,因此第一步是使用 Windows 磁盘管理工具缩小当前分区。我已禁用休眠、分页和系统还原,因为我读他们正在使用不可移动的文件并且可能会造成干扰。
但是当我尝试缩小分区时,收到以下错误:
您不能将卷缩小到任何不可移动文件所在的位置之外。操作完成后,请查看应用程序日志中的“defrag”事件以获取有关该操作的详细信息。
请注意,磁盘管理工具报告可供缩减的空间为 0。我看到一些用户报告说,尽管他们的分区中有足够的可用空间,但他们只能缩小其中的一部分,但没有发现任何用户报告说根本没有可用空间可以缩小。
在事件查看器中检查碎片整理事件时,出现以下消息:
在卷 Windows (C:) 上启动了卷缩减分析。此事件日志条目详细说明了有关最后一个不可移动文件的信息,该文件可能会限制最大可回收字节数。
诊断详细信息:
- 最后一个不可移动的文件似乎是:\ProgramData\ESET\ESET NOD32 Antivirus\ScanCache\1183\468F805D0BD106D60386EA10EA96ADEC52285BBE.ahc::$DATA
- 文件的最后一个簇是:0x3b4e793
- 缩小潜在目标(LCN 地址):0x1875933
- NTFS 文件标志为:----D
- 收缩阶段:要查找有关此文件的更多详细信息,请使用“fsutil volume querycluster \?\Volume{1fed23cd-a012-4840-b65c-7be2904c9701} 0x3b4e793”命令。
这似乎与我的 NOD32 ESET 防病毒软件有关。检查文件夹 (C:\ProgramData\ESET\ESET NOD32 Antivirus\ScanCache\1183) 的内容时,发现它已满(约 300MB),里面有类似的文件,无法删除。尝试在 ESET 论坛和其他资源中搜索“ScanCache”是什么,但一无所获。尝试禁用 Eset 并更改文件夹权限,然后尝试删除 - 这两种方法都无济于事,仍然无法删除该文件。
此外,当我使用 Piriform 的 Defraggler 检查磁盘使用情况时(仅用于分析目的),我注意到在磁盘末尾,在连续的可用空间阵列(约 130GB)之后有一个“块”,这可能限制了分区的缩小。
它包含上述文件(468...5BBE.ahc)和许多其他文件(如果相关,我可以详细说明)。我读到在 SSD 驱动器上使用第三方碎片整理不安全/无用,所以我没有这样做。而且由于其中一些文件是系统文件,我不想删除它们。
我的问题是:
- 有没有一种安全的方法来清除磁盘上的最后一个块,而不包括删除所有文件?
- 或者有其他方法可以对磁盘进行分区吗?
- 为什么文件系统选择将这些文件放在该特定块中?
- 以及任何其他可能相关的建议。我已经查看了大量指南和技术帖子,但没有找到任何适合此特定问题的内容。
谢谢。
眼镜:
- 联想 t450,英特尔 i5 CPU,8GB RAM
- Windows 10 专业版 64 位
- 固态硬盘:三星 mzvlw256hehp-000l7 256GB
编辑#1:
问题已部分解决。我正在发布我的步骤以供将来参考。
我发现这链接,其中有用户建议使用 Windows 的 CMD 提示符和程序“defrag”命令(请参阅微软文档)。但是,我没有使用常规碎片整理选项,而是使用了 \X 标志(“defrag C:\X\U\V”),它执行“可用空间整合”。我不知道它是否可以安全使用,或者它是否会像常规碎片整理一样造成任何损害,但我没有找到任何资源表明它可能会损坏系统(一确实说过它可能毫无用处)。它清除了磁盘中最后一个块的几乎所有文件,并且总体上重新排列了磁盘,使其间隙大大减少。下面是合并和分区后的磁盘。
但是,最后一个 ESET 文件仍然存在。我以安全模式启动了 Windows 并将其删除,尽管这可能会造成损害。再次重新启动后,Windows 和 ESET 运行正常。
我真的不知道这两个步骤是否安全,或者我是否对系统或 SSD 造成了任何损坏。无论如何,到目前为止它运行良好,并且 40GB 分区成功。
答案1
由于它是三星 SSD,你可以尝试此链接中的官方工具(三星魔术师)
https://www.samsung.com/semiconductor/minisite/ssd/download/tools/
文档中充斥着宣传,但似乎它可以合并扇区。不要对它进行任何其他标准碎片整理,因为驱动器会自行读写直至损坏。
除此之外,我通常尽量避免在除全新安装之外的任何其他情况下调整分区大小。这可能是最简单的方法,为 Ubuntu 分区留出空间,这是一种无风险的方法
答案2
参考这个:
在安装 Linux 之前,我们必须缩小 Windows C 驱动器的空间,为 Linux 腾出空间。
有两种互斥的方法可以做到这一点:使用 Windows 磁盘管理
或
使用 GParted,后者是 Ubuntu 安装过程中提供的实用程序。
如果使用了 Windows 方法,则在 Ubuntu 安装期间可能无法使用 GParted。
每种方法似乎都有其问题。Windows 磁盘管理实用程序非常安全,但可能无法将 C 驱动器缩小到 1TB 硬盘的 60% 以下。这是因为某些文件被放置在磁盘空间的很远的地方,而 Windows 实用程序无法移动它们。(奇怪的是,Windows 碎片整理程序检测到 0 碎片,无法移动这些文件。)此外,使用这种方法会使准备 Windows 接收 Linux 和安装 Linux 变得复杂。GParted 会移动这些麻烦的文件,可以为 Linux 提供更多的磁盘空间,而且非常容易。然而,有人担心,如果使用了 GParted,那么当 Windows 10 更新时,它可能会损坏 Linux 分区。一位 Kubuntu 用户报告说 Windows 更新两次破坏了他的 Linux 分区。(本主题中的第 7 条帖子:https://ubuntuforums.org/showthread.php?t=2385462) 与早期版本的 Windows 不同,在 Windows 10 中无法完全关闭所有更新,但可以减少更新,如下所述。
- Ubuntu Wiki
如果 Windows 坚持要移动这些文件,那就继续使用 Ubuntu 并使用 Gparted。不要忘记关闭 Windows 更新,或减少更新量,否则 Linux 可能会被 Windows 摧毁。显然在这个线程中:https://ubuntuforums.org/showthread.php?t=2385462,如果您使用 Gparted,Windows 无法判断 Ubuntu 是否需要这些分区,但如果您使用 Windows 磁盘管理,它可以判断。