|
Página seguinte
Página anterior
Índice
Nesta descrição, vou me referir a duas máquinas como ``msdos '' e ``linux ''. ``msdos '' é o nome da máquina que tem o dispositivo de fita e opera normalmente o MS-DOS (ou Windows).``linux '' é a máquina Linux de cujo disco se deseja efetuar cópias de segurança ou recuperar arquivos a partir do dispositivo de fita.
Para simplificar, vou referir-me à primeira máquina como ``msdos '', mesmo quando esta seja inicializada e operando dentro de um Linux. A partir disto, todos os nomes dos caminhos neste documento devem ser considerados como sendo relativos à máquina Linux com os discos Pesquisa-e-Salvamento (BES) montados em algum lugar no sistema.
Isto significa que o arquivo /etc/passwd é o arquivo de senhas no disco rígido da máquina Linux, enquanto, por exemplo /tape144/etc/passwd é o arquivo correspondente em disquete.
Estou usando os programas de geração de cópias de segurança de Karel Kubats, versão 1.03, disponíveis em
ftp://metalab.enc.edu:/pub/Linux/system/Backup/backup-1.03.tar.gz
Neste documento, vou me referir a eles simplesmente como ``os programas de cópia de segurança ''. Você não precisa usar estes programas para gravar suas próprias cópias de segurança. Particularmente prefiro estes programas porque eles usam o comando afio para gerar um arquivo descompactado de arquivos compactados, ao invés de um arquivo compactado de arquivos descompactados.
O primeiro é mais seguro, caso haja um erro de leitura na mídia durante a restauração. Karel não está mais suportando estes programas, mas sim produziu agora o 'tob', ou cópias de segurança orientadas a fitas. Embora eu não tenha utilizado o novo pacote, isto não faz uma diferença significativa ao procedimento aqui descrito.
Primeiramente, obtenha o módulo ftape. Ele é parte de todos os kernels modernos. Porém, se você estiver usando um kernel antigo, poderá encontrar o módulo em:
ftp://metalab.unc.edu/pub/Linux/kernel/tapes/ftape-2.05.tar.gz
A seguir, pegue um disco de inicialização Linux e crie uma imagem em um disquete de 3"1/2.
O módulo ftape somente funcionará se ele for instalado em um kernel que esteja sendo utilizado ao ser compilado.
Então, deve-se gerar um novo kernel com suporte à ftape e à rede. Neste estágio, leia as instruções que aparecem com o arquivo ftape para maiores informações.
Lembre-se que o kernel gerado deve suportar placas Ethernet tanto na máquina Linux quanto na máquina MS-DOS.
Copie a nova imagem do kernel criada recentemente sobre uma do disco de inicialização da Rede. Use /bin/cp . Não crie um disco de inicialização com o comando ``dd '' como seria o usual para se criar uma imagem de kernel inicializável. Proteja o disco de inicialização contra gravação e etiquete-o: SAR#1.
Agora, monte o disco raiz tape144 da distribuição Slackware. Assumiremos que o ponto de montagem seja /tape144 , para evitar confusão nos nomes dos arquivos. Precisamos liberar algum espaço nele, então devem ser apagados os seguintes arquivos:
/tape144/bin/dialog
/tape144/bin/elvis
/tape144/bin/vi
/tape144/boot/ftape.o
Agora, deve ser criado um novo arquivo:
/tape144/etc/exports
que contém a seguinte linha:
/mnt msdos(ro)
Aqui, ``msdos '' deve ser trocado com o nome ou endereço IP da máquina MS-DOS que tem o dispositivo de fita instalado.
Então, para que não tenha que se basear em nomes de servidor, devem ser acrescentadas linhas ao arquivo /tape144/etc/hosts com os nomes e números IP das máquinas Linux e MS-DOS. Por exemplo, o meu contém as duas linhas seguintes:
128.100.75.114 caliban.physics.utoronto.ca caliban caliban.physics
128.100.75.111 ariel.physics.utoronto.ca ariel ariel.physics
Agora, existe um problema com a configuração do inetd. Temos que informar o nome completo do caminho do servidor rsh. Substitua a linha 19 de /tape144/etc/inetd.conf para:
shell stream tcp nowait root /usr/etc/tcpd /usr/etc/in.rshd
Acrescente informações de roteamento da rede local para /tape144/etc/rc.d/rc.inet1 para habilitar a máquina MS-DOS a usar a rede. O formato depende da configuração local de rede. Pode-se simplesmente copiar o formato apropriado do arquivo Linux /etc/rc.d/rc.inet1 .
Para a minha rede, as linhas que tiveram que ser acrescentadas foram:
/etc/ifconfig eth0 128.100.75.111 broadcast 128.100.75.0 netmask 255.255.255.0
/etc/route add -net 128.100.75.0 netmask 255.255.255.0
O endereço IP na entrada ifconfig é o da máquina MS-DOS.
Agora, copie este arquivo dentro de /tape144/etc/rc.d/rc.inet1-l , e troque o endereço IP no novo arquivo para utilizar primeiramente os dados da máquina Linux ao invés da máquina MS-DOS.
Em seguida, corte as linhas 3 a 11 do /tape144/etc/rc.local . Trata-se de condição que executa os arquivos rc.inet* . No nosso caso não necessitamos desta execução durante a inicialização do sistema.
Crie um novo arquivo: /tape144/root/.rhosts que contenha a linha:
linux root
aqui, novamente, ``linux '' é substituído pelo nome completo da máquina (inclusive domínio) ou o endereço IP da máquina Linux.
Preencha o campo de senha no /tape144/etc/passwd do superusuário para evitar que as pessoas acessem a máquina MS-DOS enquanto se esteja executando cópias de segurança. Pode-se fazer isto copiando o campo correspondente da máquina Linux, do arquivo /etc/passwd .
Copie /usr/bin/rsh para /tape144/usr/bin.
Copie os seguintes arquivos a partir de /usr/etc para /tape144/usr/etc :
in.rshd
rpc.mountd
rpc.nfsd
rpc.portmap
services
tcpd
Crie um novo programa chamado /tape144/bin/tapesetup , que consista do seguinte:
(troque ``linux '' para refletir o nome da sua máquina Linux).
#! /bin/sh
/bin/sh /etc/rc.d/rc.inet1
/bin/sh /etc/rc.d/rc.inet2
/bin/mount linux:/nfs /mnt
/bin/insmod /mnt/ftape.o
Note que os kernels mais novos não irão requerer a linha insmod.
Em seguida, crie outro novo programa chamado /tape144/bin/msdosset , como se segue:
(Troque ``linux '' para refletir o nome da sua máquina).
#! /bin/sh
/bin/sh /etc/rc.d/rc.inet1
/bin/sh /etc/rc.d/rc.inet2
mount linux:/mnt /mnt
/bin/insmod /mnt/ftape.o
Como acima, os kernels mais novos não irão requerer uma linha insmod.
Criar um arquivo texto chamado /tape144/root/notes , o qual deve conter as seguintes informações úteis sobre uma recuperação total:
Para uma recuperação completa de um disco rígido danificado
Inicialize a máquina Linux com o disco SAR #1 #2
e digite o seguinte:
/bin/sh /etc/rc.d/rc.inet1-l
/bin/sh /etc/rc.d/rc.inet2
/usr/etc/rpc.portmap
/usr/etc/rpc.mountd
/usr/etc/rpc.nfsd
Em seguida, insira o disco SAR #3 e digite:
mount /dev/fd0 /mnt
Crie um novo ponto de montagem com:
mkdir /mnt2
e monte a sua partição de disco rígido Linux neste ponto.
Talvez você tenha que reformatar a partição antes. Se for necessário, siga as instruções no COMO FAZER da Instalação do Linux . Os discos SAR contêm todos os arquivos necessários para a reformatação.
Finalmente, use os discos SAR#1 e SAR#2 para inicializar a máquina MS-DOS e execute o programa /bin/msdosset nesta máquina.
Tardará algo como um minuto para executar este programa, porque ele obtém um arquivo NSF a partir do dispositivo de disquete. Então, seja paciente.
Agora, recupere os arquivos a partir da fita em /mnt2 na máquina Linux.
Caso se esteja usando os programas de cópias de segurança, será necessário copiar o programa 'afio' para o subdiretório /tape144/local/bin . Não é necessário ter-se os demais arquivos de programas de cópias de segurança nos discos de recuperação. Um arquivo pode ser recuperado usando somente 'afio' e 'gzip'.
Não pude usar os programas de cópia de segurança do modo que eles foram gerados. O arquivo em fita parece ser construído de uma maneira correta, mas ele é irrecuperável. Descobri que removendo o tamanho do bloco e proposições de conversões permitem que ele funcione corretamente. Aqui está o ajuste para o programa ``netbackup ''. Esta alteração deve ser aplicada à cópia em disco rígido da máquina Linux assim como à cópia nos discos SAR.
*** netbackup.orig Mon Jan 9 17:22:32 1995
--- netbackup Mon Jan 9 17:23:25 1995
***************
*** 35,41 ****
"'mknod", devname, "p'");
exec ("su -", USERNAME, "-c",
"'rsh ", REMOTE_HOST,
! "\"dd", "of=" REMOTE_DEVICE, "obs=20k", "conv=sync\"",
"<", devname,
"'&"
);
--- 35,41 ----
"'mknod", devname, "p'");
exec ("su -", USERNAME, "-c",
"'rsh ", REMOTE_HOST,
! "\"dd", "of=" REMOTE_DEVICE, "\"",
"<", devname,
"'&"
);
***************
*** 50,56 ****
"'mknod", devname, "p'");
exec ("su", USERNAME, "-c",
"'rsh ", REMOTE_HOST,
! "\"dd", "if=" REMOTE_DEVICE, "ibs=20k", "conv=sync\"",
">", devname,
"'&"
);
--- 50,56 ----
"'mknod", devname, "p'");
exec ("su", USERNAME, "-c",
"'rsh ", REMOTE_HOST,
! "\"dd", "if=" REMOTE_DEVICE, "\"",
">", devname,
"'&"
);
Bem, concluímos o disco SAR #2. Proteja o disquete contra gravação.
A seguir monte um disco vazio formatado (crie-o com fdformat e mkfs ). Copie o arquivo ftape.o nele e etiquete-o como SAR#3. Por alguma razão, as coisas não funcionam bem caso se proteja este disco contra gravação, então deve-se deixar a gravação habilitada.
Na máquina Linux, crie um novo diretório para servidor de arquivos NFS.
Sugiro a criação do diretório:
/nfs
Copie o ftape.o (sem os simbólicos, cerca de 500 kB) dentro deste subdiretório.
Crie uma entrada no seu arquivo de exportação Linux /etc/exports :
/nfs msdos(ro)
Note que todos os arquivos no seu diretório NFS e seus subdiretórios não estão seguros. Alguém pode inicializar a máquina MS-DOS no modo Linux com estes discos de inicialização e montar este diretório. Então tenha a certeza de que não haja nada sensível no subdiretório NFS.
Reinicie seu servidor NFS, rpc.mountd e rpc.nfsd . Eles parecem não aceitar muito bem o comando SIGHUP . Então finalize-os e reinicialize os servidores. Caso eles não estejam sendo ativados no /etc/rc.d/rc.inet2 , pode-se fazê-lo agora.
OK, agora nós estamos prontos para gerar as cópias de segurança e recuperação. Para fazer uma cópia total de segurança da máquina Linux, inicialize a máquina MS-DOS com SAR#1.
Quando estiver pronto para o segundo disco, carregue SAR#2.
Registre-se como superusuário e execute o programa: /bin/tapesetup .
Saia do computador MS-DOS.
Se você estiver usando programas de cópia de segurança, o comando netbackup funcionará agora.
Pode-se usar também o parâmetro ``-f msdos:/dev/ftape '' com os utilitários GNU tar , cpio , ou mt , e gerar uma cópia de segurança desta forma. Caso se tenha um programa de cópia de segurança, que só é capaz de escrever em um arquivo local, deve-se adotar o seguinte procedimento:
Assuma que este programa de cópia de segurança seja chamado "localbackup '' e escreva no arquivo representado pelos argumentos de linha de comando:
mknod /tmp/tapepipe p
rsh msdos dd of=/dev/ftape < /tmp/tapepipe &
localbackup /tmp/tapepipe
Após a conclusão o arquivo /tmp/tapepipe deve ser apagado.
Note-se que está sendo usado 'rsh ' para o superusuário na máquina MS-DOS. Isso funcionará corretamente caso haja uma entrada adequada em .rhosts . A configuração no disco 'tape144 ' permite que seja executado o interpretador de comandos remotos rsh para o superusuário, porém não permite comandos como telnet ou rlogin , e os acessos ao sistema estarão restritos à console. Este é um procedimento de segurança indicado.
Caso se esteja preocupado sobre o arquivo raiz .rhost , pode-se criar um novo usuário em SAR#2, ``usuariodefita '', com permissões para operar a unidade de fita mas não os discos (deve-se criar um grupo de usuários e colocar "usuariodefita" nele, e então adicionar os programas chown e chmod , /dev/rft* e /dev/nrft* ). O programa de cópia de segurança deve então reconhecer o rsh para este usuário além do superusuário. Obviamente, agora deve-se ter no arquivo .rhosts o usuário ~usuariodefita em SAR#2. Optei por esta opção ao invés de usar o superusuário em .rhosts .
Finalmente, seguem as instruções para uma completa recuperação para um disco rígido danificado. Isto supõe que a partição Linux ficou completamente irrecuperável. Se necessário, reformate a partição conforme descrito no COMO FAZER da Instalação Linux.
Inicialize a máquina Linux do disco SAR #1.
Após insira o disco #2.
Agora, siga as instruções no arquivo /root/notes (ou seja /tape144/root/notes quando foi montado na máquina Linux).
Assim que ambas as máquinas tenham sido inicializadas, execute a rotina de recuperação necessária.
Caso se esteja utilizando os programas de cópia de segurança pode-se observar o seguinte:
- mude o diretório para o ponto de montagem da partição do disco rígido que se está recuperando.
- se qualquer dos volumes montados estiverem na cópia de segurança e se deseja recuperá-los, devem ser criados os pontos de montagem dentro da partição do disco rígido e montados os volumes.
- Execute o comando:
rsh -n msdos dd if=/dev/ftape | afio -i -v -Z -c 1024 -
ou
rsh -n -l usuariodefita msdos dd if=/dev/ftape | afio -i -v -Z -c 1024 -
ou
mknod /tmp/backpipe p
rsh -n msdos dd if=/dev/ftape >> /tmp/backpipe &
afio -i -v -Z -c 1024 /tmp/backpipe
Isso faz com que a fita seja lida da máquina remota, o resultado seja colocado na saída padrão de onde afio lê os resultados.
O indicador '-i ' indica que devem ser recuperados os arquivos relativos ao diretório de trabalho atual (o qual é o raiz da partição do disco rígido). '-v ' indica a apresentação de mensagens, listando os arquivos à medida que eles são recuperados. '-Z ' informa ao afio que este é um arquivo de arquivos compactados individualmente. '-c 1024 ' indica o uso de um buffer de leitura e gravação de 5 MB para evitar um excesso de rebobinamento de fita.
Página seguinte
Página anterior
Índice
|