Xen Disk · 2 min read · Feb 05, 2026
Debian Wheezy: Dividir e redimensionar imagem de disco Xen
Background
Um dos meus servidores virtuais Xen precisava ter seu disco de 400G dividido e redimensionado durante o fim de semana, e eu queria manter o tempo de inatividade ao mínimo. O disco tinha 240G usados, 235G dos quais eram um diretório /backup, e os restantes 5G dedicados a uma instalação regular do Debian Linux. Eu queria dividir o disco em dois discos - um disco de 20GB contendo o sistema Linux, e um disco de 300G para montar como /backup. Assim, eu poderia aplicar minha configuração DRBD para replicar essa partição de backup de 300G para uma segunda máquina de backup separada.
Eu não queria acabar em uma situação de ter que copiar uma grande quantidade de dados no host físico, e certamente não queria que a máquina virtual ficasse fora do ar enquanto eu fazia isso.
Set up images
A máquina virtual tem sua imagem de disco localizada em /vm/domains/b1/disk.img e uma swap.img acompanhante da qual não precisamos nos preocupar.
Issue:
losetup -aPara localizar todos os dispositivos de loop usados. No meu caso, /dev/loop20 foi o primeiro dispositivo livre. Em seguida, vou configurar um dispositivo de loopback para a imagem e, em seguida, montá-lo:
mkdir -p /mnt/loop-copy-from /mnt/loop-copy-tolosetup /dev/loop20 /vm/domains/b1/disk.imgmount /dev/loop20 /mnt/loop-copy-fromCreate a new empty sparse image
Agora, não vamos mover /backup, em vez disso, vamos mover tudo o mais para a nova imagem de 20G. Vamos criar um arquivo de imagem esparsa de 20G com:
dd if=/dev/zero of=/vm/domains/b1/disk-root.img bs=1k count=1 seek=$(((20*1024*1024)-1))Em seguida, precisaremos configurar um novo dispositivo de loop, criar um sistema de arquivos e finalmente montar esta nova imagem
losetup /dev/loop21 /vm/domains/b1/disk-root.imgmkfs.ext3 /dev/loop21mount /dev/loop21 /mnt/loop-copy-toCopy root filesystem
Agora, vou copiar tudo de /mnt/loop-copy-from para /mnt/loop-copy-to, exceto o diretório de backup de 235G:
rsync -arplogu --exclude "/backup" --stats --progress /mnt/loop-copy-from/ /mnt/loop-copy-toClean up existing filesystem
Quero remover tudo em /mnt/loop-copy-from, exceto o diretório de backup:
cd /mnt/loop-copy-from; ls | grep -v 'backup' | xargs rm -rfEm seguida, desmontaremos ambos os dispositivos:
umount /mnt/loop-copy-fromumount /mnt/loop-copy-toShrink existing filesystem
Agora, precisarei reduzir /dev/loop20 de 400G para 300G:
e2fsck -f /dev/loop20resize2fs /dev/loop20 300GCopy boot data
E então, copiar os dados de inicialização antes de destruir os dispositivos de loopback:
dd if=/dev/loop20 of=/dev/loop21 bs=1 count=512losetup -d /dev/loop20losetup -d /dev/loop21Xen configuration and VM boot
Agora edite o arquivo de configuração da VM Xen, no meu caso, /etc/xen/b1.cfg, mudando:
disk = [
'file:/vm/domains/b1/disk.img,xvda2,w',
'file:/vm/domains/b1/swap.img,xvda1,w',
]Para:
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',
]E finalmente:
xm create b1.cfgLinks
IO Digital Sec
Debian Wheezy XEN + Configuração de Convidado
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.