¿Hay alguna forma de cambiar el tamaño del disco de una máquina virtual? Digamos que aumenta el tamaño del disco de 32 GB a 64 GB. Estoy ejecutando KVM / Qemu en el servidor Ubuntu 11.10 de 64 bits. Gracias.
fuente
¿Hay alguna forma de cambiar el tamaño del disco de una máquina virtual? Digamos que aumenta el tamaño del disco de 32 GB a 64 GB. Estoy ejecutando KVM / Qemu en el servidor Ubuntu 11.10 de 64 bits. Gracias.
En la distribución basada en Debian deberías usar virt-resize
en su lugar. Esto maneja casi todo debajo del capó ahora. Supongamos que su imagen se llama Win7 (¿por qué no?). Lo primero es asegurarse de que su VM esté apagada:
Instala la herramienta:
# apt-get install libguestfs-tools
Obtenga la ubicación de su disco VM:
# virsh dumpxml Win7 | xpath -e /domain/devices/disk/source
Found 2 nodes in stdin:
-- NODE --
<source file="/var/lib/libvirt/images/Win7.img" />
-- NODE --
<source file="/var/lib/libvirt/images/Win7.iso" />
Es posible que deba adaptarse /var/lib/libvirt/images/Win7.img
a lo siguiente:
# virt-filesystems --long --parts --blkdevs -h -a /var/lib/libvirt/images/Win7.img
Name Type MBR Size Parent
/dev/sda1 partition 07 100M /dev/sda
/dev/sda2 partition 07 32G /dev/sda
/dev/sda device - 32G -
Crea tu disco 64G:
# truncate -s 64G /var/lib/libvirt/images/outdisk
Deberá expandir / dev / sda2 (no la partición de arranque):
# virt-resize --expand /dev/sda2 /var/lib/libvirt/images/Win7.img /var/lib/libvirt/images/outdisk
Examining /var/lib/libvirt/images/Win7.img ...
100% [progress bar] --:--
**********
Summary of changes:
/dev/sda1: This partition will be left alone.
/dev/sda2: This partition will be resized from 32G to 64G. The
filesystem ntfs on /dev/sda2 will be expanded using the
'ntfsresize' method.
**********
Setting up initial partition table on outdisk ...
Copying /dev/sda1 ...
Copying /dev/sda2 ...
100% [progress bar] 00:00
100% [progress bar] 00:00
Expanding /dev/sda2 using the 'ntfsresize' method ...
Resize operation completed with no errors. Before deleting the old
disk, carefully check that the resized disk boots and works correctly.
Haga una copia de seguridad por si acaso (o úsela mv
si no desea la copia de seguridad):
# cp /var/lib/libvirt/images/Win7.img /var/lib/libvirt/images/Win7.img.old
# mv /var/lib/libvirt/images/outdisk /var/lib/libvirt/images/Win7.img
¡Ahora bota!
Para más información: man virt-resize
virsh edit virt_name
y cambiar la ruta de la fuente del disco a la nueva. Luego, si no funciona, simplemente cámbielo e intente nuevamente. No tiene mucho sentido tener 3 imágenes cuando podrías hacerlo con 2.raw
tipo. si desea mantener, por ejemploqcow2
, el tipo, debe aplicar una conversión como:qemu-img convert -O qcow2 /var/lib/libvirt/images/outdisk /var/lib/libvirt/images/outdisk.qcow2
Recomiendo antes de hacer todo esto, tome una copia completa de la imagen del disco tal como está, luego, cuando todo se rompa, puede copiarla nuevamente para comenzar de nuevo.
Hay 3 cosas que debes hacer:
1) Amplíe la imagen del disco. En tu host:
Ahora su invitado puede ver un disco más grande, pero aún tiene particiones y sistemas de archivos antiguos.
2) Amplíe la partición dentro de la imagen del disco. Para ello, debe iniciar un LiveCD en su invitado, ya que no podrá meterse con una partición montada. Esto es bastante complicado y probablemente la parte más peligrosa. Copiar aquí es bastante, así que solo voy a vincular por ahora. Quieres hacer algo como esto:
http://www.howtoforge.com/linux_resizing_ext3_partitions_p2
O 2b) crear una nueva partición sería más simple (y más seguro) si solo desea más espacio de almacenamiento. Use fdisk o cfdisk, o lo que sea que le resulte más cómodo; ahora debería ver un montón de espacio no asignado en su disco de invitado.
3) Finalmente, si ha cambiado el tamaño de su partición existente, haga que el sistema de archivos dentro de la nueva partición más grande sea más grande (de todos modos, esto está en la guía vinculada anteriormente). Dentro de su invitado:
fuente
Creo que la respuesta de Caesium está bien, solo me gustaría escribir algunos otros comandos para lograr lo mismo.
Suponga que tiene un archivo
disk.img
con una imagen de disco, es decir, que tiene una tabla de particiones y una o más particiones, y diga que desea agrandar la última partición. Lo que tienes que hacer es1) agrande todo el archivo, digamos 4GiB. Una forma rápida de hacerlo es usar
dd
2) agrandar la partición usando fdisk (desearía poder hacer esto en una herramienta separada o mejor ... ¿Alguien?)
Escriba
p
para imprimir la tabla de particiones y busque el sector de inicio de su partición, por ejemplo, la partición 2 comienza en el sector 106496.Lo que hará es eliminar esa partición de la tabla de particiones y crear una nueva partición que comience exactamente en el mismo sector pero termine en una posterior. Entonces la partición contendrá un sistema de archivos válido.
Escriba
d
y proporcione el número de partición para eliminar. (¡Trago!)Escriba
n
y proporcione el número de partición deseado, y luego el sector de inicio. DEBE utilizar el mismo sector de inicio que se utilizó anteriormente. Finalmente, proporcione el sector final o simplemente deje que fdisk elija el sector más alto que pueda usar.Escriba
w
para volver a escribir los cambios en el archivo de imagen del disco y salga de fdisk.3) Ahora necesita cambiar el tamaño del sistema de archivos. Para esto, necesita el desplazamiento al (= la posición del) sistema de archivos dentro de la imagen del disco. Puede calcular esto a partir del número de sector si conoce el tamaño del sector (que generalmente es 512), o puede usar
parted
(
parted
puede tomar comandos como argumentos de línea de comandos, por lo que esto significa 'bytes de unidad' e 'imprimir', por lo que imprime la tabla de partición y usa bytes como tamaño uint).Esto imprime la partición comienza y termina. Digamos que su partición comienza en 54525952, luego crea un dispositivo de bloqueo de bucle invertido con
losetup
.losetup
te dice qué desarrollador eligió, por ejemplo/dev/loop0
. Ahora puedes usarresize2fs
:y finalmente retire el dispositivo de bucle
fuente
La mejor solución encontrada está aquí:
http://www.linux-kvm.com/content/how-resize-your-kvm-virtual-disk
Creo que lo que dijo @ Caesium se da desde el enlace oficial anterior
Espero que esto sea de ayuda.
3 pasos:
fuente
Este sencillo programa agrega N bytes al final de la imagen virtual. Utilicé la imagen de partición Paragon para Windows XP para fusionar las imágenes recién creadas. Funciona bien aquí.
fuente
dd
otruncate
...