Xen configuration · 2 min read · Feb 05, 2026
Debian Wheezy : Diviser et redimensionner l'image disque Xen
Contexte
Un de mes serveurs virtuels Xen avait besoin de diviser et redimensionner son disque de 400 Go pendant le week-end, et je voulais minimiser le temps d’arrêt. Le disque avait 240 Go utilisés, dont 235 Go étaient un répertoire /backup, et les 5 Go restants étaient dédiés à une installation régulière de Debian Linux. Je voulais diviser le disque en deux disques - un disque de 20 Go contenant le système Linux, et un disque de 300 Go à monter en tant que /backup. Ensuite, je pourrais appliquer ma configuration DRBD pour répliquer cette partition de sauvegarde de 300 Go sur une deuxième machine de sauvegarde séparée.
Je ne voulais pas me retrouver dans une situation où je devrais copier une grande quantité de données sur l’hôte physique, et je ne voulais certainement pas que la machine virtuelle soit hors service pendant que je le faisais.
Configurer les images
La machine virtuelle a son image disque située dans /vm/domains/b1/disk.img et un swap.img accompagnant dont nous n’avons pas besoin de nous soucier.
Problème :
losetup -aPour localiser tous les dispositifs de boucle utilisés. Dans mon cas, /dev/loop20 était le premier dispositif libre. Ensuite, je vais configurer un dispositif de boucle pour l’image, puis le monter :
mkdir -p /mnt/loop-copy-from /mnt/loop-copy-tolosetup /dev/loop20 /vm/domains/b1/disk.imgmount /dev/loop20 /mnt/loop-copy-fromCréer une nouvelle image vide
Maintenant, nous n’allons pas déplacer /backup, au lieu de cela, nous allons déplacer tout le reste vers la nouvelle image de 20 Go. Nous allons créer un fichier image sparse de 20 Go avec :
dd if=/dev/zero of=/vm/domains/b1/disk-root.img bs=1k count=1 seek=$(((20*1024*1024)-1))Ensuite, nous devrons configurer un nouveau dispositif de boucle, créer un système de fichiers et enfin monter cette nouvelle image
losetup /dev/loop21 /vm/domains/b1/disk-root.imgmkfs.ext3 /dev/loop21mount /dev/loop21 /mnt/loop-copy-toCopier le système de fichiers racine
Maintenant, je vais copier tout depuis /mnt/loop-copy-from vers /mnt/loop-copy-to à l’exception du répertoire de sauvegarde de 235 Go :
rsync -arplogu --exclude "/backup" --stats --progress /mnt/loop-copy-from/ /mnt/loop-copy-toNettoyer le système de fichiers existant
Je veux supprimer tout sur /mnt/loop-copy-from sauf le répertoire de sauvegarde :
cd /mnt/loop-copy-from; ls | grep -v 'backup' | xargs rm -rfNous allons ensuite démonter les deux dispositifs :
umount /mnt/loop-copy-fromumount /mnt/loop-copy-toRétrécir le système de fichiers existant
Je vais maintenant devoir réduire /dev/loop20 de 400 Go à 300 Go :
e2fsck -f /dev/loop20resize2fs /dev/loop20 300GCopier les données de démarrage
Et ensuite, copier les données de démarrage avant de détruire les dispositifs de boucle :
dd if=/dev/loop20 of=/dev/loop21 bs=1 count=512losetup -d /dev/loop20losetup -d /dev/loop21Configuration Xen et démarrage de la VM
Maintenant, éditez le fichier de configuration de la VM Xen, dans mon cas, /etc/xen/b1.cfg, en changeant :
disk = [
'file:/vm/domains/b1/disk.img,xvda2,w',
'file:/vm/domains/b1/swap.img,xvda1,w',
]Avec :
disk = [
'file:/vm/domains/b1/disk-root.img,xvda2,w',
'file:/vm/domains/b1/disk.img,xvda3,w',
'file:/vm/domains/b1/swap.img,xvda1,w',
]Et enfin :
xm create b1.cfgLiens
IO Digital Sec
Debian Wheezy XEN + Configuration de l’invité
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.