Xen configuración · 2 min read · Feb 05, 2026
Debian Wheezy: Dividir y redimensionar la imagen de disco de Xen
Antecedentes
Uno de mis servidores virtuales Xen necesitaba que su disco de 400G se dividiera y redimensionara durante el fin de semana, y quería mantener el tiempo de inactividad al mínimo. El disco tenía 240G utilizados, de los cuales 235G eran un directorio /backup, y los 5G restantes estaban dedicados a una instalación regular de Debian Linux. Quería dividir el disco en dos discos: un disco de 20GB que contuviera el sistema Linux y un disco de 300G que se montara como /backup. Luego podría aplicar mi configuración de DRBD para replicar esa partición de respaldo de 300G a una segunda máquina de respaldo separada.
No quería terminar en una situación en la que tuviera que copiar una gran cantidad de datos en el host físico, y ciertamente no quería que la máquina virtual estuviera inactiva mientras lo hacía.
Configurar imágenes
La máquina virtual tiene su imagen de disco ubicada en /vm/domains/b1/disk.img y una swap.img acompañante de la que no necesitamos preocuparnos.
Problema:
losetup -aPara localizar todos los dispositivos de bucle utilizados. En mi caso, /dev/loop20 era el primer dispositivo libre. A continuación, configuraré un dispositivo de bucle para la imagen y luego lo montaré:
mkdir -p /mnt/loop-copy-from /mnt/loop-copy-tolosetup /dev/loop20 /vm/domains/b1/disk.imgmount /dev/loop20 /mnt/loop-copy-fromCrear una nueva imagen vacía y dispersa
Ahora, no vamos a mover /backup, en su lugar, vamos a mover todo lo demás a la nueva imagen de 20G. Crearemos un archivo de imagen dispersa de 20G con:
dd if=/dev/zero of=/vm/domains/b1/disk-root.img bs=1k count=1 seek=$(((20*1024*1024)-1))A continuación, necesitaremos configurar un nuevo dispositivo de bucle, crear un sistema de archivos y finalmente montar esta nueva imagen
losetup /dev/loop21 /vm/domains/b1/disk-root.imgmkfs.ext3 /dev/loop21mount /dev/loop21 /mnt/loop-copy-toCopiar el sistema de archivos raíz
Ahora, copiaré todo desde /mnt/loop-copy-from a /mnt/loop-copy-to, excepto el directorio de respaldo de 235G:
rsync -arplogu --exclude "/backup" --stats --progress /mnt/loop-copy-from/ /mnt/loop-copy-toLimpiar el sistema de archivos existente
Quiero eliminar todo en /mnt/loop-copy-from excepto el directorio de respaldo:
cd /mnt/loop-copy-from; ls | grep -v 'backup' | xargs rm -rfLuego desmontaremos ambos dispositivos:
umount /mnt/loop-copy-fromumount /mnt/loop-copy-toReducir el sistema de archivos existente
Ahora necesitaré reducir /dev/loop20 de 400G a 300G:
e2fsck -f /dev/loop20resize2fs /dev/loop20 300GCopiar datos de arranque
Y luego, copiar los datos de arranque antes de destruir los dispositivos de bucle:
dd if=/dev/loop20 of=/dev/loop21 bs=1 count=512losetup -d /dev/loop20losetup -d /dev/loop21Configuración de Xen y arranque de la VM
Ahora edita el archivo de configuración de la VM de Xen, en mi caso, /etc/xen/b1.cfg, cambiando:
disk = [
'file:/vm/domains/b1/disk.img,xvda2,w',
'file:/vm/domains/b1/swap.img,xvda1,w',
]Con:
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',
]Y finalmente:
xm create b1.cfgEnlaces
IO Digital Sec
Debian Wheezy XEN + Configuración de Invitados
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.