誰もが使うLinuxのコマンドの一つにcpがあります。cp <src> <dest>のように引数を与えると<src>というファイルを<dest>にコピーします。この処理は以下の図のように(1)<dest>のinode(ファイルサイズ、作成時刻といったメタデータを保存するデータ)を作成し、(2)<src>のデータであるデータAをディスク上の別領域にデータBとしてコピーしてから、(3)<dest>からデータBを参照するようにする………とは限りません。 本記事では、この「とは限らない」ケースについて説明します。次節以降では前提知識としてファイルシステムのreflinkという機能を紹介して、その後に、reflinkを使用するcpの挙動について説明します。 データブロックを複数ファイルから参照するreflink機能 直感的にはファイルが別であればデータは前節で述べたように別の領域を指しています。しか

