回答:
良い質問。現在、簡単な高レベルの方法を伝える方法はないようです。
1つの問題は、ファイルがコピーオンライトを介してデータの一部のみを共有する可能性があることです。これは物理エクステントと呼ばれ、物理エクステントの一部 または すべてがCoWファイル間で共有される場合があります。
(編集:私の他の回答を参照してください)。inode
ファイル間で比較すると、ファイルが同じ物理エクステントを共有していることを示すものに類似するものはありません。
低レベルの答えは、物理エクステントを使用してファイルに使用されているカーネル尋ねることができるということですが、中に文書化します。原則として、すべての物理エクステントが同じである場合、ファイルは同じ基礎となるストレージを共有している必要があります。FS_IOC_FIEMAP
ioctl
Documentation/filesystems/fiemap.txt
この情報をより高いレベルで見る方法を実装しているものはほとんどありません。ここにいくつかのgoコードを見つけました。どうやら、filefrag
ユーティリティは-vでエクステントを表示することになっています。また、btrfs-debug-tree
この情報を表示します。
ただし、これらのことは実際にはほとんど使用されていなかった可能性があるため、誤った答えを与えるバグを見つける可能性があるので、注意してください。
関連する質問:
btrfs-debug-tree
与えられたファイル名のエクステントをリストするにはどのように使用しますか?