Windows 10マシンでは、ファイル履歴のバックアップがオンになっています。約400GBの容量を使用していたので、3か月以上前に保存されたポイントを削除するように変更しました。ファイル履歴には正確に何が含まれていますか?たとえば、2GBの映画をダウンロードした場合、それは保存されますか?このようなシステムは、ファイルが変更されることが予想される場合、どのようにファイルを追跡しますか?
たとえば、1MBのファイルがある場合、a.exe
そして、ユーザーはそれを削除してから名前を再利用しますが、10MBのファイルを作成します。これは新しいバージョンと見なされますか?
ファイル履歴は非常に基本的なユーティリティです。ファイル履歴では、ドキュメント、ミュージック、ピクチャ、ビデオ、デスクトップフォルダーにあるファイルのコピーと、PCでオフラインで利用できるOneDriveファイルのみがバックアップされます。あなたが言及したその2GBの映画がこれらのフォルダのいずれかに保存されている限り、それはバックアップされます。
ファイル履歴これらのフォルダ内のファイルのコピーを、設定で構成された別の場所に保存します。これは、設定でも設定されている周波数で行われます。 Windowsは、ファイルが変更されたことを検出すると、そのファイルのコピーを作成します。 Windowsは、選択したドライブにフォルダーを作成し、ファイルのコピーを作成します。ファイル名に日付を付けて名前を変更し、小さなデータベースを作成します。
これらのファイルの復元は、選択した頻度に基づいています。 1時間ごとにコピーを保存するように設定し、1秒ごとにファイルを変更する場合、1日にそのファイルのバックアップを24回しか作成しませんでした。
あなたの最後の質問に答えるために、ファイルが変更される前にバックアップされている限り、彼らはイエスと答えます。繰り返しますが、それはすべてバックアップの頻度に依存します。大量のストレージを消費するため、変更時にファイルのすべてのバージョンを追跡するわけではありません。
ファイル履歴は、実際には技術者でないユーザー向けに設計されています。これらのユーザーはデータをバックアップしていませんでした。 Microsoftは常にOSにバックアップユーティリティを提供してきましたが、技術者以外の人がそれを使用していないことがわかりました。全体的な差分、増分などの言葉遣いは、非技術者を怖がらせました。ファイル履歴を使用すると、一般ユーザーがファイルを簡単にバックアップできます。これは、ファイルをバックアップするための簡単な設定と忘れの方法です。ただし、実際のバックアッププログラムほど強力ではありません。
ボリュームシャドウコピーのしくみを研究しましたか? W10ファイルの履歴はそれに基づいています。ただし、大きな違いがあります。古いWindowsバージョンのシステムの復元/ VSCファイルの回復とは異なり、ファイル履歴はほとんどのバックアップを別のハードドライブに保持します。
注意すべき重要な点:
ファイル履歴がすべてのフォルダーまたはドライブ全体をカバーすることを期待しないでください-それはすべてのデフォルトおよびカスタムライブラリ(パブリックフォルダーを含む)に加えて、連絡先、デスクトップ、お気に入りフォルダーをバックアップします。ただし、Modern UI/Metroユーザーインターフェイスを使用して、ファイル履歴にフォルダーを手動で追加できます。
ファイル履歴では、EFSを使用するファイルやフォルダーはバックアップされません
オフラインで利用できるようにならない限り、OneDrive(SkyDrive)フォルダー内のアイテムはバックアップされません。
ファイル履歴では、ファイルを設定、バックアップ、復元するために管理者権限は必要ありません。
今あなたの質問に答えるために:
はい、大きなファイルも保持されます。このシステムは、その目的のために外部ストレージを使用するように設計されています。キャッシュはC:\Users\(username)\AppData\Local\Microsoft\Windows\FileHistory\Data.
にも保存されます
ファイルの変更が保存されるVSCとは異なり、ファイル履歴にはファイルの完全なコピーがあります。実際には次のように機能します。USNJournalを使用して変更を追跡し、ファイルのリビジョンをバックアップ場所に保存します。修正されたバージョンを日付/時刻を追加して保存します。例:File1 (2016_10_01 01_11_11).tmp, File1 (2016_10_02 02_12_21).tmp.
基本的に、FHは、単純なファイルのコピーと貼り付けを使用する、スケジュールされた限定的なバックアップツールです。
この記事のタイトルには、「バックアップの構造は何ですか?どこに保存されていますか?」というタイトルが付けられました。だから私はいくつかの周りを突いた。
バックアップ用のドライブを選択すると、ファイルの内容はフォルダ\FileHistory\userName\computerName
に保存されます。ここで、userName
はファイル履歴を設定したユーザーの名前であり、computerName
はファイルが存在するコンピュータの名前です。フォームをバックアップしています。
そのフォルダーの下には、2つのxmlファイルとあまり含まれていないように見えるEBDファイル(データベース)を保持するConfiguration
フォルダーと、実際のファイルのコピーを保持するData
フォルダーがあります。
Data
フォルダーの下の最初のレベルは、元のシステムのドライブ名です(たとえば、ドライブDからバックアップされたファイル用のフォルダーDがあります:)。これらの第1レベルのフォルダー内では、ファイルの構造は元のドライブとまったく同じですが、2つの例外があります。
{yyyy_mm_dd hh_mm_ss UTC}
」(先頭のスペースに注意)としてエンコードされた日付(バックアップが開始された時刻など)があります。$OF
というフォルダー内の(明らかに)単一レベルの番号付きフォルダーに配置されます(したがって、ドライブ名の兄弟)。バックアップファイルの変更日は元のファイルと同じです。作成日は、その特定のバックアップファイルが作成された日付を示します。バックアップファイルには、R(読み取り専用)属性が設定されています。
私の実験はUSBサムドライブのFAT/FAT32ファイルシステムを使用して行われたため、バックアップファイルにどのような権限が設定されるのかわかりません。
より具体的な例として、システムにMicrosoftリファレンスソースがあり、これらのファイルの一部は次の場所にバックアップされています。
F:\FileHistory\kpmartin\TETRON\Data\D\Users\KPMartin\Documents\Reference Source\dotnet462RTM\Source\ndp\fx\src\winforms\Managed\System\WinForms\Printing\PrintDialog {2020_02_02 06_33_12 UTC}.cs
、これはD:\Users\KPMartin\Documents\Reference Source\dotnet462RTM\Source\ndp\fx\src\winforms\Managed\System\WinForms\Printing\PrintDialog.cs
のバックアップですF:\FileHistory\kpmartin\TETRON\Data\$OF\7315\7318 {2020_02_02 06_33_12 UTC}.cs
はD:\Users\KPMartin\Documents\Reference Source\dotnet462RTM\Source\ndp\fx\src\winforms\Managed\System\WinForms\Printing\PrintControllerWithStatusDialog.cs
のバックアップです番号付きの名前のマッピングは、バックアップドライブのFileHistoryフォルダにファイル自体とともに保存されているようには見えません。代わりに、元のシステムのユーザーのAppData\Local\Microsoft\Windows\FileHistory\Configuration
フォルダーのCatalog1.edb
というデータベースファイルに保存されます。これに加えて、Config1.xml
と呼ばれるXMLファイルがあり、これには実際のバックアップオプションが含まれているように見えます。 Catalog1.edb
とConfig1.edb
に加えて、Catalog2.edb
とConfig2.edb
もあり、これらは1番目の対応物の正確なコピーのように見えます。
EDBファイルは、「ESEデータベース」と呼ばれる形式であり、非リレーショナルデータベースが必要なWindowsのあらゆる場所で使用されます。 FileHistory以外の例としては、ActiveDirectoryとWindowsデスクトップサーチで使用されるインデックスがあります。このファイル形式とその使用場所に関する詳細は オンラインで入手可能 です。このファイルのメタデータは、より高度なWindowsシステム(私はWindows 10 Enterpriseを使用しています)に存在する可能性のあるesentutl.exe
コマンドを使用してプローブできます。リンクされた記事には、おそらくいくつかの調査を行うことができる他の2つのコマンドが記載されています。データベースから実際のテーブルの内容をダンプするには、おそらくコードの記述が必要ですが、 これにはネイティブとマネージド(.NET)の両方のサポート があります。