我有一个作为 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
在 Windows 客户机中,文件属性对话框显示其大小为 952KB,但磁盘上的大小为 0 字节。这对于重解析点来说是经典的。高级属性是APL
,L
确认文件确实是一个重解析点。
复制文件会从副本中删除P
和L
属性。
四处搜索将我带到如何找到使用 mklink 创建的符号链接的目标及其接受的答案。我已经下载了junction 1.06和NTFSLinksView。
跑步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
跑步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
运行dir /A:L
确实包含该文件,因此它绝对是某种重新分析点。
NTFSLinksView
根本没有列出文件。
在所有这些背景信息之后,问题真的很简单:
- 如何找出重解析点的详细信息?
- 我
ntfs-3g
在主机上告诉什么来重新映射连接点以便它们解决?
这些可能是重复文件。它们通过磁盘上的联结实现,文件系统驱动程序处理重组。我怀疑你会找到一个可以处理它们的 Linux 工具。其他用于结点的 Windows 实用程序无法理解它们,因为它们是为常规结点设计的,而不是重复数据删除结点。