domingo, 29 de maio de 2011

Sistema de Recuperação

Uma das coisas que me fazem gostar muito do Linux é que, salvo uma pane muito grave, dificilmente você se vê numa situação de "perda total", onde a "única alternativa" é formatar e reinstalar tudo outra vez!

Recentemente, me deparei com uma situação inusitada que, embora tenha acontecido em um ambiente virtual e controlado, bem pode acontecer numa situação do dia-a-dia, como por exemplo você clonar uma partição do HD (boot, por exemplo) e depois tentar recuperá-la em outro HD.

O pessoal do suporte costuma fazer muito isto! Digamos que uma empresa comprou 15 máquinas idênticas para seus colaboradores. Ao invés do pessoal do suporte instalar tudo em todas as máquinas, instala-se tudo em uma máquina e depois é só cloná-la e restaurar o clono nas outras. Mole, mole...

Mas podem ocorrer algumas "pegadinhas" como esta que ocorreu comigo, embora haja uma boa explicação para isto!

Ao tentar o boot em uma máquina virtual que importei de outro ambiente (uso muito o VirtualBox), deparei-me com a situação mostrada na figura abaixo.


Como vocês podem ver na figura acima, o sistema não conseguiu completar o boot porque não encontrou a partição de boot! Prestem atenção na seguinte informação:

Could not find /dev/disk/by-id/ata-VBOX_HARDDISK_VB82ef4f0b-5de0e2e8-part2.

Bem, o que interessa aqui é o detalhe do /disk/by-id/!

Normalmente, as partições são identificadas no Linux por algo como /dev/sdaN, onde N é o número da partição. Isto é o que chamamos de device name. As versões mais novas do Linux estão identificando o(s) disco(s) e suas respectivas partições agora pelo ID do dispositivo (device ID). Isto também tem uma boa razão para ser assim, principalmente quando você pode ter muito baratamente muitos discos em um mesmo sistema!.

Enfim, caso isto ocorra com você, vou mostrar como corrigir isto, usando o Sistema de Recuperação do OpenSuSE.

O sistema de recuperação do opensuse nada mais é que a possibilidade de você dar boot pelo DVD e "assumir" o sistema em modo root. Veja como fazer isto seguindo as figuras abaixo.


Selecionando o Sistema de Recuperação do DVD de instalação

Não deixe de apertar F2 e selecionar nosso idioma. Senão o teclado vai ficar uma bagunça!


Pronto para entrar em modo root?

Digite root e aperte Enter, para assumir o controle em modo root!


Explorando o ambiente

Usando o fdisk

O FDISK


Normalmente, em sistemas com um só HD, /dev/sda1 é a partição de swap e /dev/sda2 a partição de boot. Em outras situações onde existem dois ou mais HD as coisas podem estar de forma diferente e usar o fdisk pode ser a maneira mais apropriada para descobrir quem é quem.

O fdisk é o particionador de linha de comando do linux. Ele pode ser usado para obter informações a respeito do(s) disco(s) instalado(s) no sistema. Em nosso caso, vamos acionar o fdisk para ver como nosso disco foi particionado. É só digitar:

fdisk /dev/sda

NOTA: Se você é um daqueles raros que ainda usa uma placa mãe não SATA, com HD IDE, então use /dev/hda.

Uma vez no fdisk, tecle p e Enter, para exibir as partições de /dev/sda

Agora podemos ver que sda tem duas partições -> sda1 e sda2. sda1 é a partição de swap e sda2 é nossa partição de boot. Pronto, já temos as informações que precisamos para resolver o problema!


Montando a partição de boot do sistema e assumindo o controle como o root "de verdade".

Existe um truque no openSuSE para você montar a partição de boot "original" e assumir o controle como se você tivesse dado boot normalmente. Este truque consiste em montar a partição "original" e usar o comando chroot. Mas, para isto, tem um pequeno detalhe técnico que vou mostrar agora. Siga as instruções!

1) montando a partição
Esta é a parte mais fácil:

mount /dev/sda2 /mnt

2) montando os dispositivos virtuais (detalhe técnico)

mount -o bind /proc /mnt/proc
mount -o bind /dev /mnt/dev
mount -o bind /sys /mnt/sys

3) a "mágica" do chroot

 Agora que está tudo preparado,  basta digitar

chroot /mnt

Pronto, agora você está em seu HD, como se tivesse dado o boot por ele, e com os privilégios do super usuário root! Veja na figura abaixo a sequência completa destes comandos e como o prompt muda para a cor vermelha, sinalizando que você está em modo root.


A tela após você assumir o root do sistema


Verificando as pastas do sistema "original"


Resolvendo o problema


Agora que estamos no controle do sistema "original" (verdadeiro), podemos corrigir o problema.


O GRUB e o arquivo menu.lst
Todos sabem(?) que o Grub é o gerenciador de boot do Linux. E sabem também que ele usa um arquivo chamado menu.lst, para obter as informações necessárias para o boot, certo? Ok. Então vamos verificar os dados contidos em menu.lst do nosso sistema "original".

Basta usar um belo cat /boot/grub/menu.lst para ver algo como o mostrado na tela abaixo.




Ops, Grub!

Podemos ver na figura acima que o grub procura a partição de boot em /dev/disk/by-id/ata-VBOX_HARDDISK_VB82ef4f0b-5de0e2e8-part2. Ocorre que ata-VBOX_HARDDISK_VB82ef4f0b-5de0e2e8 é o ID do HD de origem, mas estamos em outro HD, não é mesmo? Então o ID aqui é diferente e o Grub se ferra!


FSTAB

Outro arquivo usado pelo sistema e que pode atrapalhar o processo de boot é o fstab. O fstab guarda as informações a respeito das partiçoes do(s) disco(s) e seus respectivos pontos de montagem. Veja ne figura abaixo o resultado do comando cat /etc/fstab.


cat /etc/fstab


Como podemos ver na figura acima, as informações contidas no fstab usam disk-by-id. Este é outro arquivo que vamos ter que editar.

Alterando as configurações das partições

Há duas maneiras de corrigir inconsistências no fstab: através do yast ou editando o arquivo diretamente.

Eu prefiro trabalhar com arquivos de configuração editando-os diretamente. Mas isto porque já me sinto seguro em fazer alterações neles. Se você está iniciando, pode fazer quase tudo diretamente no yast, o utilitário de console para configuração do sistema (o yast2 é para o modo gráfico).

Usando o yast

Para entrar no yast, basta digitar yast na linha de comando.

Tela inicial do yast

Para chegar no particionador via yast, basta selecionar Sistema / Particionador. Veja na figura abaixo o yast exibindo o modo como a partição /dev/sda1 está montada em /etc/fstab.


/dev/sda1 em /etc/fstab, vista pelo yast

Como podemos ver na figura acima, /dev/sda1 está montada via fstab como a opção Device ID e é justamente isto que está causando o problema. Basta agora mudar para Device name e pronto.
Salvando esta modificação e voltando à linha de comando, podemos dar um novo cat /etc/fstab para ver o resultado. Deve ser algo como o mostrado na figura abaixo.

/etc/fstab modificado pelo yast

Podemos ver na figura acima que /dev/sda1 (a partição de swap) agora está montada pelo device name em fstab. Note que a partição /dev/sda2 continua montada pelo seu Device ID.

Editando fstab diretamente


Depois que você ganha experiência, tende a editar os arquivos de configuração diretamente. Vamos fazer isto com /etc/fstab, usando o joe. O joe é um editor de textos do console que acho melhor que o vi! Para chamá-lo, basta digitar joe, seguido do caminho/arquivo a ser editado.


Editando /etc/fstab com o joe

Para saber o que fazer com o joe, basta apertar Ctrl+K, depois H, para obter ajuda na tela.
Depois que editar fstab com o joe, basta Ctrl+K X, para salvar e sair.


Hora de editar /boot/grub/menu.lst


/boot/grub/menu.lst antes de editar


/boot/grub/menu.lst editado

 Note na figura acima que as informações de partição foram modificadas para Device name, à semelhança de /etc/fstab.


/boot/grub/device.map


Há um último lugar onde as informações do HD estão gravadas no formato /dev/disk/byid. Trata-se do arquivo device.map, usado também pelo grub. Podemos abrí-lo com o joe e editá-lo, como mostrado nas figuras abaixo.



/boot/grub/device.map antes da edição

/boot/grub/device.map depois da edição


De volta ao controle!


Depois de todas as alterações feitas a gravadas, basta reiniciar o sistema, para ver se tudo deu certo! Basta digitar

reboot


De volta ao sistema "original"

Até o próximo artigo...

domingo, 15 de maio de 2011

CloneZilla: Restaurando "Backups" ou "Imagens" do Sistema

Complementando o artigo anterior, vamos ver agora como restaurar um "backup" ou, melhor dizendo, uma imagem feita pelo CloneZilla. 

No artigo anterior, fizemos a imagem da partição raiz do sistema, normalmente chamada de partição de boot. Neste artigo, vamos fazer de conta que houve uma "pane" qualquer e será necessário restaurar a imagem que foi salva na pasta /home/cawasame/2010-09-30-RootPartition-img.


Primeiramente, colocamos o LiveCD do Clonezilla e fazemos o boot por ele:

Fig1 - Tela de boot.

Fig2- Vá apenas apertando Enter

Fig3

Fig4

Fig5

Fig6

Fig7- Neste ponto, selecionamos a partição montada em /home (onde a imagem está gravada)

Fig8 - Agora selecionamos a pasta do usuário que fez a imagem (afinal, é dentro dela que está a imagem)


Fig9


Não fiz muitos comentários até este ponto pois as etapas até aqui foram praticamente as mesmas que você seguiu para fazer a imagem. Todavia, a partir deste ponto, iremos usar o CloneZilla no modo Expert, por uma razão que explicarei logo mais.



 É importante selecionar o modo Expert para a restauração de uma imagem.


Como estamos nos preparando para restaurar uma imagem, neste ponto devemos fazer a escolha correta: se você fez a imagem de uma ou mais partições, selecione restoreparts; se fez a imagem de um disco inteiro, selecione restoredisk.
Selecionando Restoreparts, para restaurar a imagem de uma partição.


Selecionando a Imagem a restaurar

Quando você informa o local de onde obter a imagem (Fig7 e Fig8), o CloneZilla detecta automaticamente as imagens que foram salvas. Na figura abaixo você poderá ver a imagem que foi criada no artigo anterior.

Selecionando a imagem para restaurar (RootPartition, feita no artigo anterior).

Agora que você selecionou qual a imagem a restaurar, o Clonezilla pedirá que você informe sobre qual partição a imagem será restaurada. Naturalmente, como estamos trabalhando na mesma máquina onde fizemos a imagem, fica fácil saber qual partição é: sda2 (veja na figura acima esta informação, no final do nome da imagem -> _sda2).

Observe também que nosso sistema tem apenas uma partição "elegível" para receber a imagem. Se teu sistema tiver muitas partições, tome muito cuidado nesta hora!


 Selecionando a partição sobre a qual a imagem será restaurada.


Opções do modo Expert do CloneZilla

Numa situação atípica, você poderia estar restaurando uma imagem feita de um HD para outro HD ou de uma partição para outra partição, com geometrias diferentes. Em tal situação, coisas como "Reinstall grub in cliente disk MBR" ou "Try to resize the filesystem to fit partition size" fazem sentido. Mas, no nosso caso, estas opções podem ter um efeito adverso. Pior mesmo: podem falhar!

Isto ocorre porque o Clonezilla não sabe que você está restaurando a imagem para o mesmo HD e partição da qual ela foi feita. E ele vai tentar fazer todas estas coisas, desnecessariamente, porque simplesmente são as opções default.

Pelas razões expostas acima, desmarque todas as opções marcadas por default, antes de prosseguir.

 Desmarque todas as opções marcadas acima, antes de prosseguir.


Nesta etapa, simplesmente aperte Enter, para prosseguir.



Nesta etapa, você pode escolher entre continuar no Clonezilla ao final da operação, reiniciar ou desligar.


Por precaução, o Clonezilla vai querer que você confirme duas vezes a restauração da imagem sobre uma partição com dados. Cruze os dedos e responda Y nas duas vezes.

Restauração sendo feita...


Tudo finalizado, sem nenhuma mensagem de erro! Basta selecionar "Reboot" (1) e prosseguir.


Finalmente, tudo volta a ser com dantes!


Até o próximo artigo...

sábado, 14 de maio de 2011

CloneZilla: Fazendo "Backups" ou "Imagens" do Sistema

I,m back! ;-)

Devido a mudanças significativas em minha vida, estive um pouco "fora do ar" e deixei o Blog ficar desatualizado.

O Blog começou quando eu ainda usava o openSuSE 11.2. Depois desta pausa, o Blog carece de "matérias" atualizadas, tendo em vista que o openSuSE 11.4 já está há um certo tempo "no ar".

Bem, abrindo caminho para uma séria de "matérias" que tenho em mente, vou falar sobre o CloneZilla. Primeiro, porque o CloneZilla é uma ferramenta muito boa para técnicos de suporte (e estou falando também do outro sistema operacional :-), e também para usuários comuns. Mas, o que é o CloneZilla?

Seus criadores dizem o seguinte:

What is Clonezilla?

You're probably familiar with the popular proprietary commercial package Norton Ghost®. The problem with these kind of software packages is that it takes a lot of time to massively clone systems to many computers. You've probably also heard of Symantec's solution to this problem, Symantec Ghost Corporate Edition® with multicasting. Well, now there is an OpenSource clone system (OCS) solution called Clonezilla with unicasting and multicasting!
Clonezilla, based on DRBL, Partclone and udpcast, allows you to do bare metal backup and recovery. Two types of Clonezilla are available, Clonezilla live and Clonezilla SE (server edition). Clonezilla live is suitable for single machine backup and restore. While Clonezilla SE is for massive deployment, it can clone many (40 plus!) computers simultaneously. Clonezilla saves and restores only used blocks in the harddisk. This increases the clone efficiency. At the NCHC's Classroom C, Clonezilla SE was used to clone 41 computers simultaneously. It took only about 10 minutes to clone a 5.6 GBytes system image to all 41 computers via multicasting!

Independentemente do seu grau de expertise, o Clonezilla pode te ajudar muito!


Uma das coisa mais chatas da vida é instalar e configurar um Sistema Operacional. Outra coisa também muito chata é quando uma situação adversa qualquer faz uma tremenda bagunça no Sistema Operacional que funcionava bem.

Imagine poder recuperar-se de um desastre destes em menos de cinco minutos! O Clonezilla faz isto! Como? Restaurando uma Imagem. Basta que você a tenha criado previamente.

O CloneZilla é tão simples e prático, que é mais difícil falar do que fazer. Por isto, vamos deixar de blá-blá-blá e vamos passar para a prática.
Neste primeiro artigo vou mostrar como criar a(s) imagens(s).

Obtendo o CloneZilla

Para obter o Clonezilla, basta fazer o download Clonezilla live ISO file, para boot via CD. Existe também a versão para USB flash drive (pendrive), mas vou usar a versão CD neste artigo. Clique aqui para ir até a página download.

Após "queimar" um CD com a imagem baixada, basta colocá-lo na unidade e "rebootar" o computador.

Criando a imagem

Vou passar a sequência de imagens capturadas durante todo o processo de criaçao de uma imagem, explicando o que julgo necessário saber em cada fase.


Boot
desnecessário qualquer comentário

Fig2

Fig3

Fig4

Fig5


Fig12

device-image significa que você quer fazer o clone de um dispositivo (HD) para uma imagem (que naturalmente será salva em outro HD ou outra partição no mesmo HD).
device-device significa que você quer fazer o clone de um dispositivo (HD) para outro dispositivo (HD). É como se fosse fazer uma "xerox" de um HD em outro!


Fig6

Agora você deve informar onde você quer fazer a imagem.

local_dev significa salvar a imagem em um dispositivo local, ou seja, um dispositivo "plugado" na máquina onde você está trabalhando.

As outras opções são para quando você estiver em uma rede e quiser (e puder) salvar a imagem em outra máquina na mesma rede.

Fig7

 Escolhido local_dev, você precisa informar qual o dispositivo (disco, partição, pendrive, etc) que vai usar como repositório da imagem. Neste exemplo, vou criar a imagem em /home/cawasame/, sendo que a partição /home foi montada em sda3 (uma partição em separado da partição raz / ) e cawasame é o meu id de usuário.


 Fig8

Complementando o que foi dito anteriormente, veja que sda3 já foi "montada". Bastou selecionar a pasta cawasame, para continuar. 

Fig9


Fig10

No hora de fazer a imagem, a opção Beginner é sempre a melhor escolha. Uso o CloneZilla há muito tempo e nunca senti a necessidade de usar o modo Expert, para fazer a imagem.

Fig11

Hora de escolher o que vai ser salvo na imagem. Note que você pode salvar o disco inteiro (savedisk) ou partiçoes (saveparts). Neste exemplo vou salvar a partição de boot (ou root ou / ).

Fig12

Fig13

Dando um nome mais sugestivo à pasta que irá conter a imagem.

Fig14

Acima, foi selecionada a partição a ser salva na imagem. Neste exemplo, sda2 é a partição de boot do sistema.

Fig15

Após selecionar , uma checagem nas opções...

Fig16

 ...um aviso final e...

 Fig17

Voilá!

 Fig18

Final da operação! Desligar ou reiniciar são as opções que fazem mais sentido agora. Vamos selecionar (1) Reboot.

Fig19

Fig20

Resultado da operação!

No próximo artigo mostrarei como restaurar esta (e outras) imagem, em caso de "crash" no sistema.



...