質問: linuxディスクイメージをスパースファイルに変換するにはどうすればよいですか? ddrescueで作成された多数のディスクイメージがextパーティションにあり、マウント可能な状態のまま、データを失うことなくサイズを小さくしたいと考えています。イメージのファイルシステムの空のスペースをゼロで埋めてから、ファイルを スパースファイル に変換して、この空のスペースが実際にディスクに保存されないようにするにはどうすればよいですか?例えば:> du -s --si --apparent-size jimage.image 120g jimage.image > du -s --si jimage.image 121g jimage.image ただし、これには実際には50gの実際のデータしかないため、2番目の測定値ははるかに小さいはずです。これはおそらく空のスペースをゼロで埋めます:cat /dev/zero > zero.file rm zero.file しかし スパースファイルが透過的に処理される の場合、仮想ディスクに何も書き込まずに実際にスパースファイルが作成される可能性があるため、皮肉なことに、仮想ディスクイメージをスパースファイル自体に変換できません。 :)それはありますか?注:何らかの理由で、sudo dd if=/dev/zero of=./zero.fileは、マウントされたディスクイメージ上にcatがない場合に機能します。
回答: おそらく、ファイルを所定の場所にスパース化する最も簡単な方法は、次のようにfallocateユーティリティを使用することです。fallocate -v --dig-holes {file_name} fallocate(1) は debian の til-linux パッケージによって提供されます。