Acessando dados em imagens HVM
De Xen-BR wiki
Existem duas ferramentas que podem ajudar muito no acesso de dados em imagens de disco de maquinas virtuais: lomount e kpartx. Lembre-se de nunca fazer isso enquanto a maquina virtual estiver ativa ou você poderá corromper o sistema de arquivos!
lomount
# lomount -t ext3 -diskimage /xen/images/fc5-file.img -partition 1 /mnt/boot
lomount trabalha somente com pequenas imagens de disco e não pode lidar com volumes LVM, portanto para casos mais complexos, é preferivel o uso do kpartx (disponível no pacote debian multipath-tools ou device-mapper-multipath para rpm):
kpartx
Para sistemas RPM:
# yum install device-mapper-multipath
Para sistemas baseados no Debian:
# apt-get install multipath-tools
Modo de uso:
# kpartx -av /dev/xen/guest1 add map guest1p1 : 0 208782 linear /dev/xen/guest1 63 add map guest1p2 : 0 16563015 linear /dev/xen/guest1 208845
Note que isso trabalha somente com dispositívos de bloco e não com imagens instaladas em arquivos regulares. Para usar imagens, você precisará configurar um dispositívo loopback para o arquivo:
# losetup -f /dev/loop0 # losetup /dev/loop0 /xen/images/fc5-file.img # kpartx -av /dev/loop0 add map loop0p1 : 0 208782 linear /dev/loop0 63 add map loop0p2 : 0 12370050 linear /dev/loop0 208845
Neste caso nós adicionamos uma imagem formatada com uma instalação padrão do Fedora, portanto terá duas partições: /boot e um volume LVM contendo todo o resto. Elas estão acessiveis no /dev/mapper:
# ls -l /dev/mapper/ | grep guest1 brw-rw---- 1 root disk 253, 6 Jun 6 10:32 xen-guest1 brw-rw---- 1 root disk 253, 14 Jun 6 11:13 guest1p1 brw-rw---- 1 root disk 253, 15 Jun 6 11:13 guest1p2 # mount /dev/mapper/guest1p1 /mnt/boot/
Para acessar os volumes LVM na segunda partição, será necessário fazer um rescan no LVM com "vgscan" e ativas o "volume group" na partição (chamada de "VolGroup00" por padrão) com "vgchange -ay":
# kpartx -a /dev/xen/guest1 # vgscan Reading all physical volumes. This may take a while... Found volume group "VolGroup00" using metadata type lvm2 # vgchange -ay VolGroup00 2 logical volume(s) in volume group "VolGroup00" now active # lvs LV VG Attr LSize Origin Snap% Move Log Copy% LogVol00 VolGroup00 -wi-a- 5.06G LogVol01 VolGroup00 -wi-a- 800.00M # mount /dev/VolGroup00/LogVol00 /mnt/ ... # umount /mnt # vgchange -an VolGroup00 # kpartx -d /dev/xen/guest1
Nota: Lembre-se sempre de desativas o volume lógico com "vgchange -an", remover as partições com "kpartx -d" e (se apropriado) deletar o dispositívo loopback com "losetup -d" após estar finalizado. Existem duas razões para isso: primeira de todas, o nome padrão do "volume group" para a instalação do Fedora é sempre a mesma (isso ocorre também com o Red Hat e com o CentOS), se você acabar ativando dois discos ao mesmo tempo acabará com dois volumes LVM separados com o mesmo nome. O LVM tratará disso da melhor maneira possível, mas você não poderá distinguir entre estes dois grupos na linha de comandos. Em segundo lugar, se você não desativar isso e se por acaso a maquina virtual for inicializada, você terá co LVM ativo na maquina virtual e no Dom0 ao mesmo tempo, isso levará o volume group ou o sistema de arquivos a corromper-se.
Referência: http://fedoraproject.org/wiki/FedoraXenQuickstartFC6