以下 Python 代码的控制台等效项是什么:
target = file("disk", "w") # create a file
target.seek(2*1024*1024*1024) # skip to 2 GB
target.write("\0")
target.close()
也许有一些 dd 咒语?这个想法是制作一个表观大小为 2 GB 的文件,以供虚拟化等用途。
kvm disk -cd whatever.iso #Only allocate space as necessary
答案1
您可以使用以下命令创建一个稀疏文件dd
:
dd of=file bs=1 seek=2G count=0
$ du file
0 disk
$ du --apparent-size file
2097152 disk
答案2
一般来说,只需使用dd
;但当您提到 KVM 虚拟化的使用时,您可能会考虑使用qemu-img
:
qemu-img create -f raw disk 2G
dd
它的作用与Chris Down 的答案中的命令相同,有效。
无论您使用什么命令,为了在虚拟化中使用,我强烈建议使用fallocate
预分配块以防止碎片并提高性能。
fallocate -l 2G disk
但它并非在所有平台和文件系统上都可用。这不会写入零,而只是将块分配给文件,而不是在每次必须扩展文件时按需执行此操作。
答案3
另请参阅 GNUtruncate
命令:
truncate -s 2G some-file