De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Backup de Sistemas - Restauração

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 18 de outubro de 2010

Na dica publicada no dia 14 de outubro de 2010, eu falei sobre um script para fazer um backup de um sistema operacional GNU/Linux. O backup neste caso não tem por objetivo salvar arquivos de usuários, fila de emails ou qualquer outro arquivo que não se relacione diretamente com o funcionamento do sistema operacional em si. Estes arquivos devem ser tratados de uma forma diferente, com backups diários, incrementais, totais, etc. De forma resumida, o procedimento descrito tem por objetivo colocar o sistema operacional no ar o mais rápido possível.

Uma vez feito o backup, precisamos agora saber como restaurá-lo. É claro que, idealmente, backups são feitos para nunca serem usados, mas infelizmente, volta e meia temos que usá-los então, cuide muito bem de seu backup.

Sistemas GNU/Linux e outros que utilizam a filosofia *nix, são muito fáceis de se restaurar. Talvez esta facilidade tenha sido um requisito de seu projeto, ao contrário de outros sistemas bem mais caros a respeito dos quais eu não faço a mínima idéia de como fazer o que vou descrever a seguir.

Então, na dica anterior, foi descrito um procedimento, que simplesmente cria um arquivo .tar.gz, contendo todos os arquivos necessários para fazer o seu sistema operacional funcionar. Para agilizar o processo, são excluídos os arquivos pessoais (que devem ser tratados com um procedimento diferente), mensagens de email não entregues, pastas de email pessoais, arquivos de log, etc. Para restaurar, basta fazer o boot com um livecd de alguma distribuição GNU/Linux, montar o disco onde irá residir o sistema operacional, e abrir o arquivo tar.gz, a partir do ponto de montagem da partição raiz. Existem dezenas de implementações de livecds de sistemas GNU/Linux. Se utilizarmos o Ubuntu, que é bastante popular e conhecido, começamos abrindo uma janela emitindo o comando gnome-terminal, através do menu de comandos ou então diretamente, pressionando as teclas ALT+F2 e digitando o nome do comando desejado (gnome-terminal).

Podem ocorrer diversas situações, mas para chegar nesta condição, provavelmente o disco rígido tenha pifado e estamos substituindo por um outro. Se o disco rígido substituto for exatamente igual ao que parou de funcionar, podemos restaurar o MBR (Master Boot Record), recriando desta forma o particionamento do disco original. Se não for igual, não tem problema, basta usarmos o comando gparted, que nos permitirá fazer o dimensionamento das partições da forma que desejarmos. Um complemento recomendável para o script backupsys, é incluir alguns comandos que listem o particionamento do disco rígido:

  # df -h
  Sist. Arq.            Tam   Usad Disp  Uso% Montado em
  /dev/sda1              28G   11G   16G  41% /
  none                  1,6G  304K  1,6G   1% /dev
  none                  1,6G  2,5M  1,6G   1% /dev/shm
  none                  1,6G  212K  1,6G   1% /var/run
  none                  1,6G     0  1,6G   0% /var/lock
  none                  1,6G     0  1,6G   0% /lib/init/rw
  /dev/sda6             199G  181G  7,7G  96% /home

Pela listagem acima podemos ver que este computador tem um disco rigido (/dev/sda) e duas partições (/dev/sda1 e /dev/sda6). Além destas duas partições eu tenho também a partição de swap.

Outra informação, que vale a pena guardar para fim de recuperação do sistema, é a gerada pelo comando fdisk:

  Disco /dev/sda: 250.1 GB, 250059350016 bytes
  255 heads, 63 sectors/track, 30401 cylinders
  Unidades = cilindros de 16065 * 512 = 8225280 bytes
  Sector size (logical/physical): 512 bytes / 512 bytes
  I/O size (minimum/optimal): 512 bytes / 512 bytes
  Identificador do disco: 0x67fd0c87
  
  Dispositivo Boot Início Fim Blocos Id Sistema
  /dev/sda1   *           1        3647    29294496   83  Linux
  /dev/sda2            3648       30401   214901505    5  Estendida
  /dev/sda5            3648        4133     3903763+  82  Linux swap / Solaris
  /dev/sda6            4134       30401   210997678+  83  Linux

Temos aqui o mapa completo das partições, mas o problema é que a informação é exibida em termos de blocos e precisamos fazer algumas continhas para chegar ao valor que precisaremos usar para a recriação das partições. Mas esta informação é bem completa, e é recomendável que tenhamos estes dados em mãos quando fizermos a recuperação. Com a saída do comando df e a saída do fdisk temos tudo que precisamos.

Continuando, fiz o particionamento do disco, respeitando o particionamento do disco original. Supondo que iremos restaurar uma estação de trabalho em que o sistema operacional esteja na partição /dev/sda1, fazemos como a seguir:

  $ sudo su
  # mount /dev/sda1 /mnt/root
  # cd /mnt/root

O primeiro comando (sudo su) nos dá os poderes de superusuário. No Ubuntu, não é preciso senha de root, este comando funciona diretamente. Em seguida, montamos a partição que irá conter o sistema operacional (/, /boot, /usr, /var, /tmp, etc.).

Se a rede na qual o equipamento estiver ligado tiver um servidor dhcp, muito provavelmente o seu computador já estará com conexão à rede. Se não estiver, e também dependendo de onde você colocou os arquivos de backup, você precisará providenciar esta conexão. Vamos então copiar os arquivos de backup:

  # scp backuphost.com:acme.2010-10-05-0843* .

Este comando irá copiar os arquivos acme.2010-10-05-0843.mbr, acme.2010-10-05-0843.tgz e acme.2010-10-05-0843.tgz.log. O arquivo de log contém a lista de todos os arquivos salvos e pode nos ser útil em algumas situações. Dependendo da situação, podemos vir a precisar do arquivo que contém o MBR. Para saber mais sobre a restauração da MBR, leia o artigo Backup MBR ou o artigo Backup da MBR (Master Boot Record) com o comando dd.

Finalizada a cópia, vamos então expandir os arquivos:

  tar zxpvf acme.2010-10-05-0843.tgz

As diretivas usadas no comando tar são:

z indica que o arquivo está compactado
x indica que se deseja fazer a extração dos arquivos
p indica que se deseja preservar as permissões originais dos arquivos IMPORTANTE
v indica que eu quero que o comando exiba tudo que estiver fazendo (verbose)
f indica o arquivo que será usado, em nosso caso, acme.2010-10-05-0843.tgz, que é um backup feito no dia 5 de outubro de 2010, às 8h43m

Só isto? Ainda não. Para um computador funcionar, ele precisa carregar um programa que por sua vez fará o restante do serviço, carregando o sistema operacional. Na pré-história da computação, havia um botão que ao ser pressionado acionava um programa residente no hardware, que por sua vez lia as instruções contidas em um conjunto de cartões perfurados que por sua vez faziam a carga do sistema operacional. Em outras palavras, para a restauração funcionar, eu preciso gravar em algum lugar o endereço de um programa que irá fazer a carga do sistema operacional. Ao se ligar o computador, ele irá ler o endereço registrado, fará a carga em memória do código que estiver no endereço obtido e este código carregará o sistema operacional. Uma longa história para resumir o que os programas lilo ou grub fazem. Para uma informação mais detalhada sobre este processo, leia o artigo Booting, da Wikipedia.

Então, vamos usar o grub para isto. As informações de restauração do grub podem ser encontradas nos seguintes artigos da Dicas-L:

Uma vez reinstalado o grub, chegou a hora de rebootar o seu sistema e torcer para que tudo dê certo. Geralmente dá. Se não der, a coisa começa a ficar interessante :-)

Se você estiver restaurando o sistema no mesmo equipamento, em que foi trocado apenas o disco rígido, certamente este procedimento irá funcionar. Se você estiver trocando o hardware como um todo, provavelmente você precisará recompilar o kernel para que ele reconheça os diferentes componentes de hardware de seu novo sistema, como o processador, placas de rede e de vídeo e possivelmente outras coisas. Se for este o caso, a coisa fica um pouco mais complicada. Mas no fim dá tudo certo :-)

De qualquer forma, não se esqueça, nunca, de ter um backup em dia, tanto do sistema, quanto dos dados.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida