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 -a

Pour 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-to
losetup /dev/loop20 /vm/domains/b1/disk.img
mount /dev/loop20 /mnt/loop-copy-from

Cré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.img
mkfs.ext3 /dev/loop21
mount /dev/loop21 /mnt/loop-copy-to

Copier 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-to

Nettoyer 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 -rf

Nous allons ensuite démonter les deux dispositifs :

umount /mnt/loop-copy-from
umount /mnt/loop-copy-to

Rétrécir le système de fichiers existant

Je vais maintenant devoir réduire /dev/loop20 de 400 Go à 300 Go :

e2fsck -f /dev/loop20
resize2fs /dev/loop20 300G

Copier 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=512
losetup -d /dev/loop20
losetup -d /dev/loop21

Configuration 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.cfg

Liens

IO Digital Sec

Debian Wheezy XEN + Configuration de l’invité

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.