Apakah mungkin untuk mengubah ukuran gambar disk QEMU?

12

Seperti judulnya: Apakah mungkin untuk mengubah ukuran disk image QEMU di Linux? Dan jika demikian, apa yang terjadi pada partisi di dalamnya? Apakah mereka secara otomatis juga diubah ukurannya (diragukan) atau hanya ada blok baru ruang yang tidak terpakai mengikuti mereka?

Richie Marquez
sumber

Jawaban:

12

Dari sini :

!!! Cadangkan gambar disk Anda sebelum mencoba yang di bawah ini !!!

Jika Anda menggunakan gambar mentah yang jarang, maka lakukan

dd if=/dev/zero of=hdd.img seek=N obs=1MB count=0"

di mana hdd.img adalah gambar format mentah yang ingin Anda ubah ukurannya dan N adalah ukuran baru yang Anda inginkan gambarnya, dalam megabyte. Untuk mengubah unit N, ubah obs ke sesuatu yang lain seperti 1GB untuk unit dalam gigabytes (1000x1000x1000).

Jika Anda ingin mengubah ukuran gambar mentah tetapi Anda tidak ingin itu menjadi jarang (Anda benar-benar ingin angka nol dalam file) kemudian lakukan "dd if = / dev / nol dari = pencarian gambar = S hitung = NS obs = 1" sebaliknya, di mana N adalah ukuran baru dan S adalah ukuran lama (dalam byte).

Jika Anda ingin mengubah ukuran gambar qcow2, ini belum didukung.

email ini menunjukkan beberapa percobaan dengan mengubah ukuran gambar qcow dengan hex editor.

Mengubah ukuran atau menumbuhkan gambar dalam format lain (VMware, Bochs, cow, atau cloop) tidak didukung sejauh pengetahuan saya.

Pada host Windows dimungkinkan untuk mengubah ukuran gambar disk format mentah menggunakan perintah 'copy'. Anda dapat menggunakan qemu-img untuk mengonversi gambar yang ada ke format mentah jika perlu. Kami akan menggunakan gambar disk format mentah sementara yang akan ditambahkan ke akhir gambar disk format mentah Anda yang sudah ada. Ukuran gambar sementara ini adalah ukuran gambar yang ada akan diperluas dengan:

qemu-img create -f raw temp.img 300M

Anda kemudian harus mengeluarkan perintah di bawah ini - orig.img adalah gambar format mentah yang ada yang ingin Anda buat lebih besar, temp.img adalah file gambar sementara yang dibuat sebelumnya, dan new.img adalah gambar hasil yang diubah ukurannya:

copy /b orig.img+temp.img new.img

Anda kemudian perlu melakukan partisi ulang dan mengubah ukuran partisi dan sistem file yang ada pada gambar yang baru. Salah satu metode untuk melakukan ini adalah mem-boot gparted di QEMU dengan livecd iso gparted dan image disk baru.


Tautan lain yang mungkin ingin Anda periksa jika tautan di atas tidak berfungsi:

http://qemu-forum.ipi.fi/viewtopic.php?p=12362
http://kev.coolcavemen.com/2007/04/how-to-grow-any-qemu-system-image/
http: / /bryan-murdock.blogspot.com/2007/12/resize-qemukvm-windows-disk-image.html
http://www.larsen-b.com/Article/329.html
http://www.brabbel.net / wp / arsip / 174

fretje
sumber
17

Gambar qcow2 dapat diubah ukurannya untuk tumbuh dengan versi qemu baru / saat ini. Sebagai contoh, saya punya 2G arch.qcow2 thats di dan saya ingin menjadi 50G, dalam hal ini saya ketik:

qemu-img resize arch.qcow2 50G

lalu qemu memberitahuku:

image resized

itu saja, saya baru saja melakukannya hari ini. redhat sebenarnya memiliki beberapa dokumen yang bagus di qemu:

pengguna1026169
sumber
3
Namun, ruang yang bertambah akan tidak terisi. Anda perlu mengubah ukuran disk virtual menggunakan beberapa alat partisi.
Yamaneko
Unggul, solusi!
RckLN
qemu-img versi 1.0 memberitahu sayaqemu-img: This image format does not support resize
HDave
3

Jawaban singkat untuk 2017: Untuk menambahkan misalnya 30 GB ke gambar mentah yang ada, saya hanya menggunakan perintah ini:

qemu-img resize nameofimg.img +30G

Ini menambahkan 30 GB ke file gambar yang ada (tidak perlu membuat file baru). Kemudian di VM tamu Anda, Anda dapat memperluas partisi yang ada, di Windows 10 misalnya dengan "Manajemen Disk", mudah.

Info dan opsi lebih lanjut:

man qemu-img

Lihat juga: qemu wiki> qemu-img

firepol
sumber
1

Ya kamu bisa. Dan tidak itu tidak akan mengubah partisi atau tabel. Tabel partisi mungkin perlu diperbarui untuk memiliki ukuran disk penuh, dan akan ada ruang kosong yang tidak digunakan di akhir jika Anda menumbuhkannya, dan Anda akan memotong partisi dan kehilangannya atau bagian terakhir dari data jika Anda mengecilkannya .

Jika Anda berada di monitor qemu (atau mungkin menggunakan QMP ), dan antarmuka mendukungnya (seperti virtio-scsi-pci dengan rbd yang saya uji di sini), maka tanpa me-reboot VM, Anda dapat melakukan ini:

(qemu) info block -v disk1
disk1 (#block165): rbd:rbd/manjaro (raw)
    Cache mode:       writeback

Images:
image: rbd:rbd/manjaro
file format: raw
virtual size: 4.0G (4294967296 bytes)
[...]

(qemu) block_resize disk1 5120

Dan poof, gambar diubah ukurannya ke ukuran yang Anda tentukan dalam MiB, dan VM akan menunjukkan ukuran baru.

Saya menguji yang berikut ini di qemu 2.7.0:

  • RBD dari Ceph - bekerja, cepat, tumbuh atau menyusut
  • file disk qcow2 - berfungsi, lebih lambat, tumbuh saja
  • file disk mentah - berfungsi, cepat, tumbuh atau menyusut
  • disk LVM mentah - di monitor terlihat normal tetapi tidak berpengaruh
Peter
sumber
Hargai meja di bagian bawah. Itu sangat membantu.
berjubah 1