确定 NTFS 重解析点的目标

roa*_*ima 5 ntfs junction-points

我有一个作为 VM 运行的 Windows 2012 R2 服务器(在 KVM/Libvirt 之上)。它有一个额外的“内部”磁盘定义为F:

如果我对表示基于 Linux 的主机的逻辑卷进行快照F:并将其安装在主机上,我会得到许多标记为不受支持的重新分析点的文件

我想做的是从主机备份文件系统,这就是我从这里开始的原因。


这是从主持人的角度来看的一个例子

lvcreate --name shares-snap --size 10G --snapshot /dev/crypt_md3/shares
mount -o ro,offset=$((129*1024*1024)) /dev/crypt_md3/shares-snap /mnt/dsk
ls -l /mnt/dsk/mfc70.dll
lrwxrwxrwx 1 root root 26 Jan  5  2002 /mnt/dsk/mfc70.dll -> unsupported reparse point
Run Code Online (Sandbox Code Playgroud)

在 Windows 客户机中,文件属性对话框显示其大小为 952KB,但磁盘上的大小为 0 字节。这对于重解析点来说是经典的。高级属性是APLL确认该文件确实是一个重解析点。

复制文件会从副本中删除PL属性。

四处搜索使我找到如何找到使用 mklink 创建的符号链接的目标及其接受的答案。我已经下载了结 1.06NTFSLinksView

跑步对junction我没有任何用处:

F:\> c:\local\bin\junction mfc70.dll

Junction v1.06 - Windows junction creator and reparse point viewer
Copyright (C) 2000-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

F:\mfc70.dll: UNKNOWN MICROSOFT REPARSE POINT
Run Code Online (Sandbox Code Playgroud)

跑步也对dir /L我没有任何用处:

F:\>dir /L mfc70.dll
 Volume in drive F is Folder shares
 Volume Serial Number is B600-69DE

 Directory of F:\

05/01/2002  04:48           974,848 mfc70.dll
               1 File(s)        974,848 bytes
               0 Dir(s)  233,785,053,184 bytes free
Run Code Online (Sandbox Code Playgroud)

运行dir /A:L确实包含该文件,因此它绝对是某种重新分析点。

NTFSLinksView 根本没有列出文件。


在所有这些背景信息之后,问题真的很简单:

  1. 如何找出重解析点的详细信息?
  2. ntfs-3g在主机上告诉什么来重新映射连接点以便它们解决?

lon*_*eck 5

这些可能是重复数据删除的文件。它们通过磁盘上的连接实现,文件系统驱动程序处理重组。我怀疑你会找到一个可以处理它们的 Linux 工具。其他用于连接的 Windows 实用程序无法理解它们,因为它们是为常规连接设计的,而不是重复数据删除连接。