回答:
一般的に、使用するだけ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=2097152GNUがない場合に使用できますdd。
G拡張機能であり、それはDDのOpenBSDのバージョンでサポートされていない...しかし、MおよびKサポートされているので、多分seek=2048Mもう少し読みやすい、あなたはしているが、標的にどのようなプラットフォームに依存
GNU truncateコマンドも参照してください。
truncate -s 2G some-file
dd公開する唯一の伝統的なツールであるseekシステムコール(SEE 猫対DDは-これらの日まだ関連DDです?が、皮膚への他の方法は、この猫は、典型的な現在のUnix系OS上であります。