バックアップおよび復元ソフトウェアをテストしているときに、次の異常な状況に遭遇しました: ファイルとフォルダーの包括的なインベントリを実行した後、Archive | Sparse | ReparsePoint
. 復元後、これらのファイルはArchive | Sparse
.
インベントリで、一連のBackupRead
ストリームの SHA1 ハッシュを生成します。これらのハッシュは、復元の前後で一致しています... つまり、最初に読んだものを元に戻しました。それでも、ReparseData
ブロックがあり、それを書き出せなかった場合、ハッシュは一致しませんでした。
この一連の属性を持つ他のファイルでは、正常に復元が行われ、予想されるすべての属性が復元されます。これは、それが検出されたことを意味しReparseData
、結果のファイルはReparsePoint
復元後のファイルとして表示されます。
復元後、オペレーティング システムは正常に動作しているように見え、ファイルが読み込まれて実行されます (これらの奇妙なファイルの多くは .DLL です)。
パーミッションに問題はありません。必要なすべての特権を主張しましFILE_FLAG_OPEN_REPARSE_POINT
たBackupWrite
。すべてが正しく動作しているように見えます。
でも心配です。ReparsePoint フラグを失った方法や理由がわかりません。そもそもどのようにして ReparsePoint としてマークされたのかわかりません。これが元のインストールの奇妙なアーティファクトかどうかはわかりません。ReparsePoint
実際にファイルに再解析ポイントを持たずに属性を設定する方法はありますか?
影響を受けるファイルと場所のいくつかの短いリストを次に示します。
Windows\WinSxS\amd64_microsoft-windows-filehistory-core_31bf3856ad364e35_10.0.14393.0_none_e2812d3f8d830dbb
(all files)
Windows\WinSxS\amd64_microsoft-windows-gdi_31bf3856ad364e35_10.0.14393.0_none_d74783f3713901b3
atmfd.dll
atmlib.dll
dciman32.dll
問題のあるファイルのほとんど (すべてではない) は、ボリューム上の他の場所 (通常は下の方) にもハードリンクされていProgram Files
ます。ハードリンクは間違いなく再解析ポイントではありません (実装方法が異なります)。
これらは(全部で)数百あります。ボリューム全体で約 160K のファイルがあります。私はそれを乗り越えるべきですか?