Ntfs
確定 NTFS 重解析點的目標
我有一個作為 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 實用程序無法理解它們,因為它們是為正常結點設計的,而不是重複數據刪除結點。