特定のファイルに関連するBTRFSチェックサムを取得したいと思いますが、残念ながらこの操作を実行するのに適切なioctlが見つかりませんでした。それは可能ですか?もしそうなら、それを行う方法?私は、rsyncの動作と同様に、CPU負荷を減らそうとするためにチェックサムを格納する必要があります。btrfs ioctl:ユーザースペースからファイルチェックサムを取得
7
A
答えて
1
ちょうど私のgithubのレポにこの厄介なコードをプッシュしました。 https://github.com/Lakshmipathi/btrfs-progs/tree/dump_csum 公式のコードではありません。私は100Kから50GBのサイズのファイルをテストしました。彼らは一致するようです。
使用法:
./btrfs-debug-tree -f /path/to/file /btrfs/partition
は、先のcsumdumpファイルを作成します。
例:
sudo ./btrfs-debug-tree -f /btrfs/50gbfile1 /dev/sda4
出力ファイルという名前のファイルブロックのCSUMと '/btrfs/50gbfile1.csumdump' を作成します。
注:私は教育的/学習目的でこれを試していたので、すべての通常の免責事項が付いています。今週中にこのコードのクリーンアップを計画しています。
あなたが使用することを計画している場合、私は次のような場合にテストするためにあなたをお勧めします:
1) Create 20GB (or any file with size > 1KB) on /tmp/
2) mount your btrfs partition on /btrfs and copy file /tmp/file /btrfs/f1
3) Now dump the csum it will produce /btrfs/f1.csumdump
4) cp /tmp/file /btrfs/f2 and dump f2's csum.
5) Now compare f1.csumdump with f2.csumdump If they match, it seems to be
working. If they didn't match something went wrong.
関連する問題
- 1. ioctlからディスクサイズを取得し、2TBを超えるVeritasボリュームを呼び出す
- 2. 特定のバイトからのmd5ファイルチェックサム
- 3. IRQL = DISPATCH_LEVEL(KbFilter/KMDF)からIOCTLを送信
- 4. 明示的に計算するのではなくファイルシステムから直接ファイルチェックサムを取得する
- 5. P/Invoke ioctlシステムコール
- 6. Mac Sandbox&file-ioctl
- 7. Linuxのカーネル空間からioctl()を使用するには?
- 8. クエリからデータベースからデータを取得
- 9. Androidからブラウザからテキストを取得
- 10. Mysqlからrowidを取得
- 11. CATransform3Dから 'スケール'を取得
- 12. NSTextFieldから値を取得
- 13. ApplicationContextからレイアウトインフレータを取得
- 14. SPWebからSPWebTemplateを取得
- 15. Java:FilePathからURIを取得
- 16. SunAwtCanvasからプレーンテキストを取得
- 17. XmlReaderからストリームを取得
- 18. コンボボックスから値を取得
- 19. モデルからデータアノテートを取得
- 20. gmaps4railsからスクリーンショットを取得
- 21. DHTMLWindowからパラメータを取得
- 22. pythonからプロデューサーを取得
- 23. render_to_stringからcontent_forを取得
- 24. System.Drawing.Image.RawFormatからImageFormatを取得
- 25. Html.TextBoxForから値を取得
- 26. トレースからElapsedTimeを取得
- 27. ネットワークパスからローカルパスを取得
- 28. REPLからコードを取得
- 29. NSWebViewからXMLを取得
- 30. HtmlHelperからオブジェクトインスタンスを取得
ところで、のbtrfsは(私の知る限り)*ない*ファイルについて、* *ブロックのためのチェックサムを生成します。 – gavv
これはまさに私が望むものです:与えられたファイルのブロックに対するチェックサムのリスト。 – 0x2207
私はソースコードを読み飛ばしてきましたが、チェックサム値を取得するためのインタフェースはありません。 – rodrigo