Чи можна змінити розмір зображення диска QEMU?


12

Як заголовок говорить: Чи можна змінити розмір образу диска QEMU в Linux? А якщо так, то що відбувається з розділами всередині нього? Чи автоматично вони змінюються також (сумнівно) або є лише новий блок невикористаного простору за ними?

Відповіді:


12

Від сюди :

!!! Створіть резервну копію образу диска, перш ніж спробувати нижче!

Якщо ви використовуєте рідке зображення, то зробіть це

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

де hdd.img - це необроблене зображення формату, яке ви хочете змінити, і N - новий розмір, який ви хочете, щоб зображення було в мегабайтах. Щоб змінити одиниці N, замініть стандартний код на щось інше, наприклад, 1 ГБ для одиниць в гігабайт (1000x1000x1000).

Якщо ви хочете змінити розмір необробленого зображення, але ви не хочете, щоб він став розрідженим (ви фактично хочете, щоб ці нулі були у файлі), тоді робіть "dd, якщо = / dev / zero of = image search = S count = NS obs = 1" натомість де N - новий розмір, а S - старий розмір (у байтах).

Якщо ви хочете змінити розмір зображення qcow2, це ще не підтримується.

цей електронний лист показує експерименти зі зміною розміру зображень qcow за допомогою шестигранного редактора.

Зміна розмірів або вирощування зображень в інших форматах (VMware, Bochs, корова або cloop) не підтримується, наскільки я знаю.

На хості Windows можна змінити розмір дискового зображення в необробленому форматі за допомогою команди 'copy'. Ви можете використовувати qemu-img для перетворення наявного зображення в необроблений формат, якщо це необхідно. Ми будемо використовувати тимчасовий образ дискового формату, який буде доданий до кінця вашого наявного дискового формату. Розмір цього тимчасового зображення - це розмір існуючого зображення буде розширено на:

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

Тоді слід видати команду нижче - orig.img - це ваше існуюче зображення в необробленому форматі, яке ви хочете збільшити, temp.img - тимчасовий файл зображення, створений раніше, а new.img - розмір отриманого зображення:

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

Потім вам потрібно буде перерозподілити та змінити розмір існуючих розділів і файлових систем на новому зображенні. Одним із способів цього є завантаження gparted в QEMU за допомогою gparted livecd iso та нового образу диска.


Інші посилання, які ви можете перевірити, якщо вищезгадане не працює:

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 / архіви / 174


17

Зображення qcow2 може бути змінено для збільшення за допомогою нової / поточної версії qemu. Наприклад, у мене є arch.qcow2 thats 2G, і я хочу, щоб він став 50G, у такому випадку я ввожу:

qemu-img resize arch.qcow2 50G

тоді qemu каже мені:

image resized

ось це, я щойно це зробив сьогодні. redhat насправді має кілька приємних документів на qemu:


3
Однак збільшений простір буде нерозподіленим. Вам потрібно буде змінити розмір віртуального диска за допомогою інструменту розділів.
Яманеко

Відмінно, рішення!
RckLN

qemu-img версія 1.0 розповідає меніqemu-img: This image format does not support resize
HDave

5

Коротка відповідь за 2017 рік: Щоб додати, наприклад, 30 Гб до наявного неочищеного зображення, я просто використав цю команду:

qemu-img resize nameofimg.img +30G

Це додає 30 ГБ до наявного файлу зображень (не потрібно створювати новий файл). Потім у вашому гостьовому віртуальному комп'ютері ви можете розширити наявні розділи, наприклад, у Windows 10, наприклад, за допомогою "Управління дисками".

Більше інформації та варіанти:

man qemu-img

Дивіться також: qemu wiki> qemu-img


1

Так, ти можеш. І ні це не змінить розділів чи таблиці. Таблицю розділів, можливо, потрібно буде оновити, щоб вона отримала повний розмір диска, і в кінці буде порожній невикористаний простір, якщо ви зростите його, і ви будете рубати розділ і втрачаєте його або останню частину його даних, якщо ви зменшите його .

Якщо ви знаходитесь у моніторі qemu (або, можливо, використовуєте QMP ), і інтерфейс його підтримує (наприклад, virtio-scsi-pci з rbd, який я тестував тут), то не перезавантажуючи VM, ви можете це зробити:

(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

І ось, зображення, розмір зображення змінюється до розміру, який ви вказали в MiB, і VM покаже новий розмір.

Я протестував наступне на qemu 2.7.0:

  • RBD від Ceph - працює, швидко, росте або скорочується
  • Дисковий файл qcow2 - працює, повільніше, росте тільки
  • сирий файл диска - працює, швидко, росте або скорочується
  • сирий диск LVM - у моніторі виглядає нормально, але не має ефекту

Оцініть таблицю внизу. Це було дуже корисно.
замасковано1
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.