Procedimento para recuperação de filesystems em sistemas Solaris
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 18 de Abril de 1997
A seguir são detalhados os procedimentos necessários para a recuperação
de sistemas de arquivos em sistemas Solaris. Os nomes designativos dos
filesystems são hipotéticos e devem ser ajustados à situação específica
de cada sistema. No nosso caso utilizamos, para o filesystem "/",
a designação /dev/dsk/c0t3d0s0.
Recomenda-se que se salve em papel ou em várias outras máquinas, todos
os arquivos descritivos dos filesystems e informações de alocação de
espaço em disco (arquivo /etc/vfstab e a saída do comando prtvtoc para
cada um dos discos do sistema). Isto se faz necessário para que se possa
recuperar rapidamente os filesystems ou migrá-los com facilidade
para outra máquina em caso de um crash total. É claro que isto somente
será possível se existirem os backups de todo o sistema.
Este tópico será abordado em mais detalhes em outro documento.
Procedimento de Recuperação:
1. Realizar o boot da máquina a partir do CDROM:
Inserir o CDROM com o sistema operacional Solaris na unidade
de CD.
O boot a partir do CDROM somente é necessário para a
recuperação dos sistemas de arquivos root (/), /usr e /var.
A manutenção destes arquivos é impossível com o sistema
funcionando em modo multiusuário. Os demais filesystems podem
ser recuperados com a máquina em modo multiusuário, mesmo que
sem disponibilizar alguns serviços que dependam de algum sistema
de arquivos que possa estar danificado.
2. Colocar a máquina em modo de PROM pressionando as teclas
<STOP><A>
A seguir aparecerá o prompt:
OK>
Digitar então:
OK> boot cdrom
Ao final do boot pelo cdrom, aparecerá uma janela para instalação do
Solaris. Esta janela não deve ser utilizada. Clicar com o botão direito do
mouse no fundo da tela e, ao aparecer o menu, selecionar a opção para criar
uma ou mais novas janelas (cmdtool ou qualquer aplicação que ofereça um prompt
de comandos).
Caso o filesystem root (/) tenha sido danificado, reconstruir o
sistema de arquivos:
# newfs /dev/dsk/c0t3d0s0
newfs: construct a new filesystem /dev/rdsk/c0t3d0s0 : (y/n) ?
Responder afirmativamente (y)
Será então construído um novo filesystem na partição indicada.
Após a reconstrução do filesystem deve ser executado o restore do
sistema de arquivos a partir da fita de backup. Para realizar o restore
montar o sistema de arquivos:
# mkdir /tmp/mnt
# mount /dev/dsk/c0t3d0s0 /tmp/mnt
Uma vez montado o sistema de arquivos, realizar então o restore a partir
da fita. Restaurar primeiramente o backup nível zero e em seguida todos
os backups incrementais, como descrito abaixo:
# cd /tmp/mnt
# ufsrestore rvf /dev/rmt/0h (restore backup nível 0)
# ufsrestore rvf /dev/rmt/0h (restore backup incremental)
....
# rm restoresymtable
O arquivo restoresymtable somente deve ser removido ao final do restore.
Este arquivo é utilizado para sincronizar o restore realizado a partir
de dumps nível 0 e dumps de outros níveis. Somente ao final de todos
os restore (totais e incrementais) remover o arquivo restoresymtable.
Se for a partição de boot, é necessário também executar o comando
installboot, que irá gravar no disco a localização do programa de
boot da máquina o qual tem por função carregar o kernel do sistema
em memória.
# installboot /usr/lib/fs/ufs/bootblk /dev/rdsk/c0t3d0s0
Uma vez efetuada a gravação no disco da localização do programa de
boot desmontar o sistema de arquivos e executar o shutdown (halt)
do sistema:
# cd /
# umount /tmp/mnt
# halt
Caso a partição de boot não seja a primeira do disco (s0) é necessário
definir no modo PROM a variável boot-device:
OK> setenv boot-device disk3:0
Quando a partição root estiver no slice 0, não é necessário especificar
nem o disco nem o slice. A seguinte definição seria suficiente:
OK> setenv boot-device disk
A especificação acima fará com que o sistema busque, em todos os discos,
e no slice 0, pelo programa de boot.
A especificação do slice varia de 0 a 7. Cada disco, independentemente
de seu tamanho, pode conter até oito partições.
Por exemplo, se o filesystem root for instalado em
/dev/dsk/c0t3d0s7 a variável boot-device deve ser definida como:
OK> setenv boot-device disk3:7
Durante o processo de recuperação é importante que se tenha em mãos
a tabela de alocação dos discos. Esta informação permitirá que discos
eventualmente danificados sejam totalmente reconstruídos.
Após a restauração dos arquivos essenciais, criar o arquivo /etc/nologin,
contendo uma mensagem que será exibida aos usuários que tentarem
acessar o sistema durante o período de recuperação. Durante esta etapa
pode ser que se façam necessários alguns reboots e é conveniente não
permitir que usuários acessem o sistema até que os procedimentos de
recuperação tenham se encerrado.