Est-il possible de redimensionner le disque d'une machine virtuelle? Dites augmenter la taille du disque de 32 Go à 64 Go. J'exécute KVM/Qemu sur le serveur Ubuntu 11.10 64 bits. Merci.
Sur une distribution basée sur Debian, vous devriez plutôt utiliser virt-resize
. Cette poignée à peu près tout sous le capot maintenant. Supposons que votre image s'appelle Win7 (pourquoi pas?). Tout d’abord, assurez-vous que votre VM est arrêté:
Installez l'outil:
# apt-get install libguestfs-tools
Obtenez l'emplacement de votre disque 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" />
Vous devrez peut-être adapter /var/lib/libvirt/images/Win7.img
dans les cas suivants:
# 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 -
Créez votre disque 64G:
# truncate -s 64G /var/lib/libvirt/images/outdisk
Vous devrez développer/dev/sda2 (pas la partition de démarrage):
# 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.
Faites une sauvegarde au cas où (ou utilisez mv
si vous ne voulez pas la sauvegarde):
# 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
Maintenant, démarrez!
Pour plus d'informations: man virt-resize
Je vous recommande de prendre une copie complète de l'image disque telle qu'elle est avant de commencer, puis de la copier pour tout recommencer à zéro.
Il y a 3 choses que vous devez faire:
1) Agrandir l’image disque. Dans votre hôte:
qemu-img resize foo.qcow2 +32G
Maintenant, votre invité peut voir un disque plus gros, mais a toujours d'anciennes partitions et systèmes de fichiers.
2) Agrandir la partition à l'intérieur de l'image disque. Pour cela, vous devez démarrer un LiveCD dans votre invité, car vous ne pourrez pas jouer avec une partition montée. C'est assez compliqué et probablement la partie la plus dangereuse. C'est pas mal de copier ici, donc je vais juste mettre un lien à la place pour le moment. Vous voulez faire quelque chose comme ça:
http://www.howtoforge.com/linux_resizing_ext3_partitions_p2
OU 2b) créer une nouvelle partition serait plus simple (et plus sûr) si vous voulez juste plus d’espace de stockage. Utilisez fdisk ou cfdisk, ou tout ce avec quoi vous vous sentez à l'aise - vous devriez maintenant voir tout un tas d'espace non alloué sur votre disque invité.
3) Enfin, si vous avez redimensionné votre partition existante, agrandissez le système de fichiers de la nouvelle partition plus grande (c'est en fait dans le guide lié ci-dessus). Dans votre invité:
resize2fs /dev/sda1
Je pense que la réponse de Caesium est correcte, je voudrais juste écrire quelques commandes pour obtenir la même chose.
Supposons que vous avez un fichier disk.img
avec une image disque, c’est-à-dire qu’il contient une table de partitions et une ou plusieurs partitions, et que vous voulez agrandir la dernière partition. Ce que vous devez faire est de
1) agrandissez l’ensemble du fichier, par exemple 4GiB. Un moyen rapide de le faire est d'utiliser dd
name__
dd if=/dev/zero of=disk.img bs=1c seek=4G count=0
2) agrandissez la partition avec fdisk (j'aimerais pouvoir le faire en parted ou en un outil plus agréable ... Quelqu'un??)
fdisk disk.img
Tapez p
pour imprimer la table de partition et rechercher le secteur de démarrage de votre partition, par exemple la partition 2 démarre au secteur 106496.
Ce que vous allez faire est de supprimer cette partition de la table de partition et de créer une nouvelle partition qui commence exactement dans le même secteur mais se termine ultérieurement. Ensuite, la partition contiendra un système de fichiers valide.
Tapez d
et donnez le numéro de la partition à supprimer. (Gorgée!)
Tapez n
et indiquez le numéro de la partition souhaitée, puis le secteur de démarrage. Vous DEVEZ utiliser le même secteur de démarrage que précédemment. Enfin, indiquez le secteur final ou laissez simplement fdisk choisir le secteur le plus élevé que vous pouvez utiliser.
Tapez w
pour écrire les modifications dans le fichier image du disque et quitter fdisk.
3) Vous devez maintenant redimensionner le système de fichiers. Pour cela, vous avez besoin du décalage par rapport à (= la position du système de fichiers) dans l’image disque. Vous pouvez calculer cela à partir du numéro de secteur si vous connaissez la taille du secteur (généralement 512), ou vous pouvez utiliser parted
name__
parted disk.img u b p
(parted
peut prendre des commandes en tant qu'arguments de ligne de commande. Cela signifie donc 'octets unitaires' et 'print', de sorte qu'il affiche la table des partitions et utilise des octets comme taille uint.)
Ceci affiche le début et la fin de la partition. Supposons que votre partition commence à 54525952, puis vous créez un périphérique de bloc de bouclage avec losetup
name__.
losetup -f --show -o 54525952 disk.img
losetup
vous indique quel dev l'a choisi, par exemple /dev/loop0
. Maintenant vous pouvez utiliser resize2fs
:
resize2fs /dev/loop0
et enfin retirer le dispositif de boucle
losetup -d /dev/loop0
La meilleure solution trouvée est ici:
http://www.linux-kvm.com/content/how-resize-your-kvm-virtual-disk
Je pense que ce que @Caesium a dit provient du lien officiel ci-dessus
J'espère que cela aidera.
3 étapes:
1.qemu-img resize windows.qcow2 +5GB
2.GParted live cd to resize
3.reboot and use os tools to resize