Restauração temporária do instantâneo LVM do root

3

Eu tenho um instantâneo do sistema de arquivos raiz com o qual quero inicializar: colocar a máquina em um estado que estava há alguns dias, executar alguns testes e voltar para onde estou agora.

Eu tentei editar fstab e apenas configurar o snapshot para inicializar como root, mas parece que nada aconteceu - o snapshot foi montado, mas o estado do sistema de arquivos não mudou, eu ainda estou no estado atual.

Editar: Não há outras partições, exceto raiz. A captura instantânea é RHEL 6.2, o estado atual é RHEL 6.3 (portanto, há um novo kernel). Eu editei o site seguindo este artigo do blog e agora parece que o lvms não são ativados na inicialização. Dracut escreve que todos eles são inativos por herança e congela.

    
por M.K. 15.05.2012 / 09:34

3 respostas

2

Eu encontrei uma solução agradável e fácil (solução uthers de alguma forma não funcionou para mim, não sei porquê). Renomeie o lv_root para algo como lv_root_old e renomeie o instantâneo para lv_root.

 $ lvrename /dev/VolGroup/lv_root /dev/VolGroup/lv_root_old
 $ lvrename /dev/VolGroup/snapshot /dev/VolGroup/lv_root

Em seguida, adicione rd_LVM_LV=VolGroup/lv_root_old na linha do kernel em grub.conf , para que ele seja ativado (aparentemente, a captura instantânea não funciona se a origem estiver inativa na inicialização, pois contém apenas alterações relativas à origem). É assim que minha entrada no grub se parece agora:

root (hd0,0)
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto quiet rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_root_old KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM elevator=deadline processor.max_cstate=1
initrd /initramfs-2.6.32-220.el6.x86_64.img

Aviso - se você atualizou seu kernel entre tirar o instantâneo e agora, não se esqueça de inicializar o kernel que foi usado quando o instantâneo foi tirado.

    
por 16.05.2012 / 18:37
2

Embora você já tenha criado o snap, vou seguir os passos para maior clareza.

Crie o snap.

# lvcreate --size 100M --snapshot --name lv_root_snap /dev/vg_linux/lv_root
# lvs
 LV           VG           Attr   LSize   Origin  Snap%  Move Log Copy%  Convert
 lv_home      vg_linux    -wi-ao  11.72g                                       
 lv_opt       vg_linux    -wi-ao   4.00g                                       
 lv_root      vg_linux     owi-ao   2.00g                                       
 lv_root_snap vg_linux     swi-a- 100.00m lv_root   2.52  

Se desejar, monte o snap e verifique.

# mount /dev/vg_linux/lv_root_snap /mnt

Adicione uma entrada ao /etc/grub.conf que diga ao kernel para usar o sistema de arquivos raiz de captura instantânea. ( /etc/grub.conf é um link simbólico para /boot/grub/grub.conf , por isso não é afetado pelo instantâneo de / )

title RHEL 6.2 Snap
    root (hd0,0)
    kernel /vmlinuz-2.6.32-220.13.1.el6.x86_64 ro root=/dev/mapper/vg_linux-lv_root_snap ....
    ....

Como alternativa, se você não quiser criar uma entrada grub , poderá especificar a raiz fs durante a inicialização, digitando o menu grub e editando a entrada alterando root= para apontar para o snap. Isso será temporário e não persistirá quando o sistema for inicializado novamente.

    
por 15.05.2012 / 17:43
1

/etc/fstab não é usado para localizar a raiz fs. No menu grub, pressione e para editar a entrada e alterar o argumento da linha de comando root = kernel para apontar para a captura instantânea. Isto irá arrancar a partir do instantâneo apenas desta vez.

    
por 16.05.2012 / 04:17