Abrir partições criptografadas por luks a partir do disco virtual DomU LVM contendo outro LVM

3

Eu me envolvi um pouco, aqui.

Há algum tempo, eu configurei um Unbuntu 13.04 criptografado no Xen. Seu disco virtual é um LVM LVM.

Esse LV foi apresentado ao DomU como um disco físico (completo) durante a instalação, e deixei o instalador do Ubuntu configurar o root e o swap criptografados (usando o LVM).

No entanto, esqueci de escrever a raiz pw. Ou eu escrevi errado. Depois de uma falha de energia no outro dia eu não posso voltar para a máquina como root.

Eu tenho a frase secreta para a partição LVM do DomU: s, então o DomU vai para cima. Eu simplesmente não consigo logar. A inicialização com init=/bin/bash não funciona, já que o init precisa desbloquear a partição criptografada.

Eu não consigo descobrir como abrir a partição contendo LVM o LVM LV do Dom0, uma vez que ´cryptsetup luksOpen´ não aceita um offset no LVM LV.

Alguém sabe como entrar no LV - Partition - (LVM) - LV e redefinir a senha de root?

    
por uvesten 01.07.2013 / 22:47

1 resposta

2

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.

    
por 02.07.2013 / 00:54