Mini-COMO FAZER ADSM do Linux por Thomas König, Thomas.Koenig@ciw.uni-karlsruhe.de v, 15 de Janeiro de 1997 Este documento descreve como instalar e usar a versão cliente do sistema comercial de cópias de segurança ADSM para Linux/i386. ______________________________________________________________________ Índice geral 1. Introdução 2. Instalando o módulo iBCS 3. Instalando o ADSM (cliente) 4. Executando o programa 5. Problemas Conhecidos ______________________________________________________________________ 11.. IInnttrroodduuççããoo O ADSM é um sistema de cópias de segurança baseado em redes, vendido pela IBM e em uso em várias organizações. Há programas para uma grande variedade de sistemas (vários tipos de UNIX, Windows, Novell, Mac, Windows NT). Infelizmente, na época em que escrevia não havia uma versão nativa para o Linux. Será necessário usar o binário SCO, e instalar o emulador iBCS2 para usar o ADSM. A descrição é para o ADSM v2r1. Quando estava escrevendo isso, só dei atenção a uma versão que funcionava com a versão i386 do Linux. 22.. IInnssttaallaannddoo oo mmóódduulloo iiBBCCSS O módulo iBCS2 está disponível em ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2. Se estiver usando um kernel versão 1.2.13, use ibcs-1.2-950721.tar.gz, descompacte e use os programas de correção ibcs-1.2-950808.patch1 e ibcs-1.2-950828.patch2. Você pode então digitar "make" e instalar o módulo iBCS com "insmod". Para um kernel versão 2.0, use ibcs-2.0-960610.tar.gz, descompacte-o num bom lugar, vá até o diretório onde ele está, e use o seguinte programa de correção: --- iBCSemul/ipc.c.orig Wed Jan 15 21:32:15 1997 +++ iBCSemul/ipc.c Wed Jan 15 21:32:31 1997 @@ -212,7 +212,7 @@ switch (command) { case U_SEMCTL: cmd = ibcs_sem_trans(arg3); - arg4 = (union semun *)get_syscall_parameter (regs, 4); + arg4 = (union semun *)(((unsigned long *) regs->esp) + (5)); is_p = (struct ibcs_semid_ds *)get_fs_long(arg4->buf); #ifdef IBCS_TRACE if ((ibcs_trace & TRACE_API) || ibcs_func_p->trace) Copie então o CONFIG.i386 para CONFIG, e digite make. Se você ainda não os tem, crie os arquivos de dispositivo necessários para executar. # cd /dev # ln -s null XOR # ln -s null X0R # mknod socksys c 30 0 # mknod spx c 30 1 33.. IInnssttaallaannddoo oo AADDSSMM ((cclliieennttee)) O binário SCO é fornecido como três arquivos tar, ou discos. Mude para o diretório raiz, configure sua umask de acordo com as sua vontade, e faça a descompactação aí (como super usuário). No seu diretório /tmp, você irá achar um roteiro de instalação; execute-o. Será necessário editar na mão os arquivos /usr/adsm/dsm.sys e /usr/adsm/dsm.opt. No dsm.sys, existem linhas importantes que devem ser especificadas: SSeerrvveerrnnaammee O nome do servidor TTCCPPSSeerrvveerraaddddrreessss O dados do servidor completos NNOODDeennaammee O nome da sua máquina No dsm.opt, será necessário especificar SSeerrvveerr Como já foi feito FFoolllloowwssyymmbboolliicc Se quiser ou não seguir links simbólicos (geralmente não é uma boa idéia) SSUUbbddiirr Se quiser fazer cópias de segurança dos subdiretórios (normalmente se faz isto) ddoommaaiinn O sistema de arquivos do qual se deve fazer a cópia de segurança. Então, terá de ser criado um /etc/mnttab compatível com o SCO do seu /etc/fstab. Pode-se usar para isto, o seguinte roteiro em Perl, fstab2mnttab: ______________________________________________________________________ #!/usr/bin/perl $mnttab_struct = "a32 a32 I L"; open(MTAB, "/etc/mtab") || die "Cannot open /etc/mtab: $!\n"; open(MNTTAB, ">/etc/mnttab") || die "Cannot open /etc/mnttab: $!\n"; while() { next if /pid/; chop; /^(\S*)\s(\S*)\s(\S*)\s.*$/; $device = $1; $mountpt = $2; $fstype = $3; if($fstype ne "nfs" && $fstype ne "proc") { $mnttab_rec = pack($mnttab_struct, $device, $mountpt, 0x9d2f, time()); syswrite(MNTTAB, $mnttab_rec, 72); print "Made entry for: $device $mountpt $fstype\n"; } } close(MNTTAB); exit 0; ______________________________________________________________________ Não é necessário instalar qualquer biblioteca compartilhada para estes programas; tudo é ligado estaticamente. 44.. EExxeeccuuttaannddoo oo pprrooggrraammaa Há dois programas, o dsm, com a interface do X11, e o dsmc, com a interface através de linhas de comando. O seu computador irá dizer como executar isto. Alguns roteiros de inicialização, como por exemplo: dsmc schedule -quiet 2>&1 >/dev/null & serão provavelmente necessários. 55.. PPrroobblleemmaass CCoonnhheecciiddooss Infelizmente, o SCO pode apenas lidar com nomes de máquinas com menos de oito caracteres. Se o o nome da sua máquina é extenso, ou completamente qualificado, você pode querer especificar o nome da máquina na linha NODename no arquivo /usr/adsm/dsm.sys. Se você usa a variável DISPLAY, você terá que fornecer o nome da máquina completamente qualificado ( por exemplo: DISPLAY=host.full.do.main:0 ao invés de DISPLAY=host:0).