回答:
一般的に、使用するだけdd
です。ただし、KVM仮想化の使用について言及しているように、次の使用を検討することもできますqemu-img
。
qemu-img create -f raw disk 2G
dd
クリスダウンの回答のコマンドと実質的に同じです。
使用するコマンドに関係なく、仮想化で使用する場合、fallocate
断片化を防ぎパフォーマンスを向上させるためにブロックを事前に割り当てることを強くお勧めします。
fallocate -l 2G disk
ただし、すべてのプラットフォームとファイルシステムで利用できるわけではありません。これはゼロを書き込まず、ファイルを拡張する必要があるたびにオンデマンドでそれを行うのではなく、ファイルにブロックを割り当てるだけです。
qemu-img
そして、dd
の両方を行う1つのファイルサイズ(ftruncateの)を設定するためのシステムコールを、それ自体と、彼らはにリンクされているライブラリをロードするために、より多くのことを実行します。そして、その点で、(はるかに大きく、はるかに多くのライブラリにリンクされている)よりもはるかにdd
効果的ですqemu-img
。GNU truncate
はさらに効果的になります。dd
ユビキタスであるという利点もあります。約良い点fallocate
。
qemu-img
がKVM仮想化の使用における明らかな代替手段にすぎないことを指摘しました。
次のようにして、このようなスパースファイルを作成できますdd
。
dd of=file bs=1 seek=2G count=0
$ du file
0 disk
$ du --apparent-size file
2097152 disk
2G
のGNU拡張機能dd
です。bs=1024 seek=2097152
GNUがない場合に使用できますdd
。
G
拡張機能であり、それはDDのOpenBSDのバージョンでサポートされていない...しかし、M
およびK
サポートされているので、多分seek=2048M
もう少し読みやすい、あなたはしているが、標的にどのようなプラットフォームに依存
GNU truncate
コマンドも参照してください。
truncate -s 2G some-file
dd
公開する唯一の伝統的なツールであるseek
システムコール(SEE 猫対DDは-これらの日まだ関連DDです?が、皮膚への他の方法は、この猫は、典型的な現在のUnix系OS上であります。