数日前、AuslogicsDefragmenterを使用して2TBの外付けハードディスクを最適化することにしました。さて、ここに少し背景があります。私がデフラグしたパーティションは、TrueCryptのフォークであるVeraCryptによって暗号化された1.8TBのパーティションでした。最適化が完了した後、いくつかのファイルが破損していることがわかりました。破損を検出できたファイルはすべて、Windows10のデフォルトの圧縮を使用して圧縮された圧縮ファイルでした。 WinHexでファイルを開いたところ、奇妙なことがわかりました。これらの破損したファイルの最後には、「DF DF DF」シーケンスのブロックがありました。 スクリーンショットは次のとおりです)問題の。 写真はそれがアークファイルであることを示していますが、それはまだWindows圧縮によって圧縮されていることに注意してください。不思議なことに、ファイルにそれらがあったとしてもDFチャンク、マウントされたパーティションのバイナリ検索では、そのようなシーケンスは生成されませんでした。
次に、次のようなバッチファイルを作成します。
Powershellスクリプトを使用してこれを解決しようとしましたが、失敗しました。 Linuxプラットフォームで問題に取り組む方がはるかに簡単だと思いますが、どうすればよいかわかりません。どんな助けや提案も大歓迎です。
追記:多くの人が、パーティションが暗号化されているため、マウントされたパーティションのバイナリ検索が失敗したと言っています。それは間違っている。検索前にパーティションをマウントしました。したがって、検索はHDDのRAWデータではなく、暗号化されていないパーティションのデータで行われました。
追加の詳細:OS:Windows 10 Professional X64/Ubuntu 14.04 x64ファイルシステム:NTFS
Get-Content
コマンドレットと-Encoding Byte
および-Tail
スイッチは、PowerShellで照合したいものを提供します。これがあなたを失敗させるところだと仮定します。
Get-ChildItem -recurse -file -Attributes Compressed -path $Path | Foreach-Object -Process { if ((Get-Content -Tail 1 -encoding String -literalpath $_.fullname).endswith("ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß")) { Write-Output "$($_.Name) `t $($_.FullName) `t $($_.length)"} }
シンプルなワンライナー。基本的にkRushが言ったことに基づいています。 $ Pathを正しいパスに置き換えます。