Eu não estou familiarizado com o Xen. Com o KVM, eu acabei de fazer a VM inicializar em um CD de resgate ou live, e chroot a partir daí. Como você faria se tivesse esse problema em sua área de trabalho real.
Se tudo que você precisa é de um offset, em geral você pode usar losetup
para isso. Ou, mais especificamente, os deslocamentos para tabelas de partição, você pode usar partx
ou kpartx
.
Se você tiver um LV particionado, poderá obter os deslocamentos usando parted
:
parted /dev/mapper/lvm-vmfoobar unit b print
e ele iria imprimir deslocamentos de partição (em bytes) como assim
Number Start End Size Type File system Flags
1 1048576B 2148532223B 2147483648B primary fat32 lba
2 2149580800B 3223322623B 1073741824B primary ext2 boot
3 3224371200B 13961789439B 10737418240B primary ext2
Então, suponha que você queria acessar a partição 3 mais direta como, usando o deslocamento 3224371200
, você poderia fazê-lo com losetup
assim:
# losetup -f --show -o 3224371200 --sizelimit 10737418240 /dev/mapper/lvm-foobar
/dev/loop0
(sizelimit é opcional, por segurança, então você não pode escrever após o final da partição)
e verifique se é a coisa correta
file -s /dev/loop0
/dev/loop0: Linux rev 1.0 ext2 filesystem data, UUID...
Como alternativa, se você tiver partx
ou kpartx
, um simples
partx -a /dev/mapper/lvm-foobar
deve funcionar e você encontraria as partições mapeadas como /dev/mapper/lvm-foobarp1
ou similar ( kpartx
pode usar nomes diferentes de partx
).
E, em seguida, você pode trabalhar com esse dispositivo mapeado ( cryptsetup luksOpen
, vgchange
, ...) para poder montar o sistema de arquivos raiz da VM, chroot
e passwd
a new senha de root.