Linux ADSM Mini-Howto di Thomas König, Thomas.Koenig@ciw.uni-karlsruhe.de $Date: 1997/01/15 20:36:34 $ Questo documento descrive l'installazione e l'uso di un client per il sistema di backup commerciale ADSM per Linux/i386. ______________________________________________________________________ Indice Generale 1. Introduzione 2. Installazione del modulo iBCS2 3. Installazione del client ADSM 4. Far girare il client 5. Problemi noti ______________________________________________________________________ 11.. IInnttrroodduuzziioonnee ADSM è un sistema di baskup basato sulla rete, venduto dalla IBM ed usato in molte organizzazioni. Esistono client per una grande varietà di sistemi (vari tipi di UNIX, Windows, Novell, Mac, Windows NT). Sofrtunatamente, nel momento in cui sto scrivendo, non esiste una versione nativa per Linux. Per usare ADSM dovrete usare il binario SCO, ed installare l'emulatore iBCS2. La descrizione che segue è valida per ADSM v2r1. Nel momento in cui sto scrivendo, che io sappia esiste solo una versione che funziona con la versione i386 di Linux. 22.. IInnssttaallllaazziioonnee ddeell mmoodduulloo iiBBCCSS22 Il modulo iBCS2 è disponibile su ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2. Se usate il kernel 1.2.13, scaricate ibcs-1.2-950721.tar.gz, spacchettatelo ed applicate le patch ibcs-1.2-950808.patch1 e ibcs-1.2-950828.patch2. Potete poi digitare "make" ed installare il modulo iBCS2 con "insmod". Per i kernel 2.0, scaricate ibcs-2.0-960610.tar.gz, spacchettatelo in una directory adatta, fate chdir in quella directory ed applicate questa patch: --- 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) Poi, copiate CONFIG.i386 in CONFIG, e digitate make. Se non li avete ancora, create i file di device necessari eseguendo # cd /dev # ln -s null XOR # ln -s null X0R # mknod socksys c 30 0 # mknod spx c 30 1 33.. IInnssttaallllaazziioonnee ddeell cclliieenntt AADDSSMM Il file binario SCO è distribuito sotto forma di tre file tar o tre dischi. Spostatevi nella directory di root, impostate gli umask a seconda delle vostre preferenze e spacchettatele da lì (come root). Nella directory /tmp troverete uno script di installazione; eseguitelo. Dovrete quindi modificare a mano /usr/adsm/dsm.sys and /usr/adsm/dsm.opt. In dsm.sys, le linee importanti da specificare sono: SSeerrvveerrnnaammee Il nome del server TTCCPPSSeerrvveerraaddddrreessss L'hostname del server completo di dominio NNOODDeennaammee Il vostro hostname In dsm.opt, dovrete specificare SSeerrvveerr Come sopra FFoolllloowwssyymmbboolliicc Se seguire o no i link simbolici (in generale non è una buona idea) SSUUbbddiirr Se fare o no il backup delle sottodirectory (in genere vorrete farlo) ddoommaaiinn I filesystem di cui fare il backup Dovrete poi creare un /etc/mnttab SCO-compatibile. Per farlo potete usare il seguente script Perl, fstab2mntab. ______________________________________________________________________ #!/usr/bin/perl $mnttab_struct = "a32 a32 I L"; open(MTAB, "/etc/mtab") || die "Non posso aprire /etc/mtab: $!\n"; open(MNTTAB, ">/etc/mnttab") || die "Non posso aprire /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; ______________________________________________________________________ Per usare questi client non avete bisogno di installare librerie con­ divise; sono linkate tutte staticamente. 44.. FFaarr ggiirraarree iill cclliieenntt Esistono due client, dsm, che ha un'interfaccia X11, e dsmc, che lavora da linea di comando. Il vostro centro di computer vi dirà come farlo girare. Ci sarà probabilmente bisogno di qualche script all'avvio, come ad esempio dsmc schedule -quiet 2>&1 >/dev/null & 55.. PPrroobblleemmii nnoottii Sfortunatamente, SCO può trattare solo hostname non più lunghi di otto caratteri. Se il vostro hostname è più lungo, o se specificate il dominio completo, dovrete specificare l'hostname nella linea NODename line in /usr/adsm/dsm.sys. Se usate la variabile DISPLAY, dovrete dare l'hostname completo (ad esempio DISPLAY=host.full.do.main:0 invece di DISPLAY=host:0).