7GBのvdiファイルを分割し、catコマンドを使用して結合しました。ファイルはVBoxで正常に動作しますが、再結合すると14GBになります。正確な作業は次のとおりです。
$ split -- bytes=2000M file.vdi /locationX/prefix
別の機械に移動してください...
$ cat prefix* > /locationY/file.vdi
そうしたら大きさが倍になりました。
どうしたの?
答え1
file.vdi
おそらくスパースファイル。これは、仮想マシンのディスクイメージで非常に一般的です。記録されていない部分は、ファイル内のスペースを占有しない穴として残ります。ソースファイルの長さがディスク使用量と一致していることを確認することでこれを確認できます。
ls -l file.vdi; du file.dvi
ls -l
14GB(実際のファイルの長さ)が報告されると予想しましたが、du
7GB(ディスクスペース)が報告されました。これは、画像の約半分が記録されていないことを意味する。
スパースファイルは、システムで実行される基本的な圧縮形式です。ファイルの脆弱性は、アプリケーションが脆弱性を読み取ったときに表示される多数のヌルバイトを含むと定義されます。したがってsplit
、(または、またはcat
何cp
でもdd
)tar
多くのnullバイトが読み取られ、出力でスペースを占めます。
目的地のスペースを節約したい場合は、次のようにしてください。ファイルを再稀にします。。これはスペースだけを節約し、パフォーマンスは向上しません。