我似乎无处可寻能够找到如何就地解决这种情况。
发生了什么:
前,
C:~= 90GB,新安装的 Win 8.1 Enterprise,64 位
D: ~= 880GB,也是 ntfs。主要用于数据文件。仍然包含非工作 Win8.0 的文件夹,当时它以前是 C: 驱动器。
chkdsk
在高级工具、命令提示符启动选项中,C 和 D 的手册运行良好。没有错误。
接下来,使用 Minitool Partition Magic 将相邻的 D: 合并到 C:,作为子目录光盘
确保顺序正确,即 C:\Windows 前后相同,并且原本直接位于 C:\ 下的其他文件仍在那里,而不是在光盘现在。
后:
Win8.1 可以加载,但已安装程序(到 C:)的大多数图标都是空白的。explorer.exe
的视图中完全没有“C:\Program Files”和“C:\Program Files (x86)”以及其他文件夹,并且 cmd.exe 以管理员身份运行。但是,可用磁盘空间与已用磁盘空间加起来大约等于合并前 C: 和 D: 的容量。
这使我相信分配的文件和文件夹仍然写在磁盘上。
我的假设是,不知何故,ntfs 权限/所有权/ACL 被搞乱了,可能将不再存在的旧 D:MFT 映射强加到那些消失的文件夹上。
也许当前的 SYSTEM/Administrator/TrustedInstaller/User/...? 帐户突然无法看到以某种方式链接到丢失文件夹的任何 ID?如果是这样,如何恢复?如何获得 C: 驱动器的类似 root 的视图,而不考虑所有权或 ACL?
所有研究似乎都指向使用工具来取消删除文件或抓取未分配的空间;但似乎没有什么可以解决混乱的安全描述符问题。
chkdsk /f c:
事后手动运行,未检测到任何错误。sfc /scannow
笔记
- 旧的 C:分区位于 EFI 分区之后,比旧的 D 分区更早。
- 安装了 R-Studio 等恢复/取证工具,现在都无法访问,因为它们位于旧的“C:\Program Files”或“C:\Program Files (x86)”下
- 在合并后的 Windows 8.1 中,针对 C: 运行用户级程序(如 WinDirStat)没有显示文件占用的足够空间,无法与从
dir
命令 shell 运行列出的“可用空间”保持一致。更有理由让我怀疑,从 ntfs 的角度来看,fs 结构很好,文件夹并没有真正消失。只是 Windows 8.1 中的“SYSTEM”帐户也看不到它们。但是,我可能错了。还有其他想法吗?
答案1
对于遇到这些可能罕见情况的人:
我的怀疑是正确的,丢失的文件夹仍然在磁盘上,尽管看不见。
在隐藏的c:\found.000
(我怀疑这是由于分区软件的批处理作业运行后,自动chkdsk
重新启动 Windows 造成的。)
我应该知道要检查...希望在我让 Windows 进行不完美的自我修复之前就知道sfc
,这会创建上述所有三个文件的准系统副本,并让我后来进行大量仔细的文件合并和手动链接解析。
许多其他文件(来自较旧的 D: 分区,现已合并到 C:)列出的所有者类似于
帐户未知(S-1-5-21-580982140-4090956935-1935414389-1001)
这并不奇怪。
类似命令
icacls * /grant:r everyone:f /t
和
takeown /F .
帮助重新获得这些访问权限。