Apa yang setara dengan konsol dari kode Python berikut:
target = file("disk", "w") # create a file
target.seek(2*1024*1024*1024) # skip to 2 GB
target.write("\0")
target.close()
Mungkin beberapa dd mantra? Idenya adalah membuat file dengan ukuran 2 GB untuk digunakan misalnya dalam virtualisasi.
kvm disk -cd whatever.iso #Only allocate space as necessary
files
dd
sparse-files
badp
sumber
sumber
dd
adalah satu-satunya alat tradisional yang mengeksposseek
panggilan sistem (lihat dd vs cat - apakah dd masih relevan hari ini? tetapi ada cara lain untuk menguliti kucing ini pada unices saat ini.Jawaban:
Secara umum, gunakan saja
dd
; tetapi ketika Anda menyebutkan penggunaan virtualisasi KVM, Anda dapat mempertimbangkan untuk menggunakanqemu-img
:Itu melakukan hal yang sama dengan
dd
perintah dalam jawaban Chris Down, secara efektif.Terlepas dari perintah apa yang Anda gunakan, untuk digunakan dalam virtualisasi, saya sangat menyarankan
fallocate
untuk menggunakan pra-alokasi blok untuk mencegah fragmentasi dan meningkatkan kinerja.Ini tidak tersedia di semua platform dan sistem file. Ini tidak akan menulis nol, tetapi hanya memberikan blok ke file, daripada melakukan itu sesuai permintaan nanti setiap kali harus memperpanjang file.
sumber
qemu-img
dandd
keduanya melakukan satu pemanggilan sistem untuk mengatur ukuran file (ftruncate), tetapi akan melakukan lebih banyak untuk memuat diri mereka sendiri dan perpustakaan yang terhubung dengan mereka. Dan, dalam hal itu,dd
akan jauh lebih efektif daripadaqemu-img
(yang jauh lebih besar dan terkait dengan perpustakaan yang jauh lebih banyak). GNUtruncate
akan menjadi lebih efektif.dd
juga memiliki keuntungan di mana-mana. Poin bagus tentang itufallocate
.qemu-img
itu hanyalah alternatif yang jelas dalam penggunaan virtualisasi KVM.Anda dapat membuat file jarang seperti ini dengan
dd
:sumber
2G
adalah ekstensi GNU kedd
. Anda dapat menggunakanbs=1024 seek=2097152
jika Anda tidak memiliki GNUdd
.G
adalah ekstensi, dan itu tidak didukung oleh OpenDD versi OpenDD ... tapi,M
danK
didukung, jadi mungkinseek=2048M
sedikit lebih mudah dibaca, tergantung pada platform apa yang AndaLihat juga
truncate
perintah GNU :sumber