  Linux ADSM Mini-Howto
  di Thomas Knig, 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


  ______________________________________________________________________

  11..  IInnttrroodduuzziioonnee

  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.

  22..  IInnssttaallllaazziioonnee ddeell mmoodduulloo iiBBCCSS22

  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



  33..  IInnssttaallllaazziioonnee ddeell cclliieenntt AADDSSMM

  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:

     SSeerrvveerrnnaammee
        Il nome del server

     TTCCPPSSeerrvveerraaddddrreessss
        L'hostname del server completo di dominio

     NNOODDeennaammee
        Il vostro hostname

  In dsm.opt, dovrete specificare

     SSeerrvveerr
        Come sopra

     FFoolllloowwssyymmbboolliicc
        Se seguire o no i link simbolici (in generale non  una buona
        idea)

     SSUUbbddiirr
        Se fare o no il backup delle sottodirectory (in genere vorrete
        farlo)

     ddoommaaiinn
        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(<MTAB>) {
      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.

  44..  FFaarr ggiirraarree iill cclliieenntt

  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 &



  55..  PPrroobblleemmii nnoottii

  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).



