README for adding PC hosts to the Amanda backup system.

Installation

Amanda is able to back up Microsoft Windows shared disks by using
SAMBA, a package that implements a SMB client and server for Unix.
Releases from 1.9.18p5 up to 1.9.18p10 would log information in the tar
files it produces, making them unusable (both the tar files and the
releases of SAMBA :-)!  If you really must, a patch that fixes the
problem was posted to the Amanda Users mailing-list; please check the
archives.  The patch may be available in the Amanda Patches Page too.

Amanda no longer supports SAMBA releases prior to 1.9.18.  If you're
using SAMBA from 1.9.18 up to 1.9.18p3, make sure you don't set a low
logging/debugging level in smb.conf.  This flag may prevent that
estimate sizes are printed correctly.  Amanda will report an estimate
failure in this case.

This problem may also occur if you have large (>2GB) filesystems to
back up with samba.  In this case, apply samba-largefs.patch, after
making sure your C compiler supports `unsigned long long's, and that
printf() in your C library understands that "%llu" means `unsigned
long long'.  gcc may help you getting unsigned long longs, in case
your platform doesn't, but it will not help printf understand "%llu".

After building and installing samba with the selected patches, Amanda
must be configured with smbclient support - when you run configure,
add the following argument:

 --with-smbclient=/full/path/to/smbclient

If you configure --with-smbclient, amanda will try to find smbclient
in the PATH, but if the --with-smbclient switch is not issued at all,
amanda will *not* enable its SAMBA hooks.

Setup

Once Amanda is installed, the only difference is in how the backup
disks are specified.  For each PC host disk, and entry is placed in the
disklist not for that host, but for the 'samba server' host, where the
patched samba suite is installed.  Instead of a path or a disk
specified in the space provided in the disklist for this purpose, a
sharename is listed.

Additionally, a file must be created called /etc/amandapass, which
includes a sharename to password mapping.  Each line of input
lists the sharename in 'Amanda format' (it is case sensitive so
make it identical to the sharename listed in the disklist) followed
by whitespace and then the password, which must not contain spaces.
This file must owned by the amanda user, and without world-read
privileges, or amcheck will complain.

The share must be given full access (read/write) to the disk -
otherwise incremental backups will not work and it will always backup
most of the disk (Archive bits never being reset).

e.g.

Amanda client software, and the patched samba is installed onto a host
'pcserver'.  A share to be backed up is called 'backupc' on host
'thepc'.  It has a password on the share of 'f00bar'.

The entry in the disklist file is:

pcserver	//thepc/backupc		nocomp-user-gnutar

^ samba installed unix host
                 ^ pc host and sharename
					^ dumptype must include the tar option

And in /etc/amandapass on the machine 'pcserver', this line must be
present :
//thepc/backupc f00bar

If smbclient would require a workgroup specification (-W), you may add
it as a third argument in /etc/amandapass line:
//thepc/backupc f00bar NTGROUP

This way, smbclient will be invoked with -W NTGROUP


An example dumptype (from amanda.conf) could be:

define dumptype nocomp-user-gnutar {
    program "GNUTAR"
    comment "user partitions dumped with tar and no compression"
    options no-compress
    priority medium
}

Essentially the disklist entry is a 'pseudo-disk' which contains all the
relevant information needed by the smbclient program to backup the disk,
but in an Amanda compatible way.  The full sharename shouldn't be greater
than 79 characters.  And the password should not include any whitespace.

For NT systems, or where the shares are specified with a username, the
username it connects with is 'backup'.  See bugs for some notes on
this.

amcheck does a quick check to see if smbclient exits and also tries to
connect to any appropriate hosts.  It also checks for the existence of
/etc/amandapass, and that the permissions are set appropriately.

Bugs

SAMBA will not back up open files (such as PAGEFILE.SYS and registry
files) nor Access Control List data.  Furthermore, at restore time,
smbclient is unable to overwrite read-only files.  Hence, Amanda+SAMBA
is not a perfect solution for backing up (restoring, actually) system
disks.

SAMBA does not use Windows' Backup API, so configuring the Amanda
backup user as a member of group backup, in the Windows host, is
useless.  You will probably have to configure it as an Administrator,
and make sure that it can read and change permission of *all* files in
the share.

It seems impossible to detect when a per-user based login fails - e.g.
the username doesn't exist on an NT workstation.  It connects but you
can't see any files (e.g. backups backup nothing).  The selfcheck code
isn't particularly robust in this area either, so you can get no
warnings when a disk isn't being backed up.  Just check to see that
level 0 dumps are bigger than 64K - otherwise it means the backup was
empty.  (i have code in sendsize to detect this situation, but I don't
know how to flag it, without aborting every disk (or 'pseudo disk') on
that host).

The estimate and totals are probably a bit out, since tar pads to the
nearest 512 bytes after each file (i think).  Not sure how much of a
problem this is.

If you compile with smbclient support, gnutar support is automatically
added too.  If you aren't using the gnutar part, you may get warnings
about the availability of /usr/local/bin/gtar (or whatever it was
compiled with) - these can safely be ignored, unless you enable index
generation for those filesystems.

Original text by:
Michael Zucchi
School of Computer and Information Science
University of South Australia
M.Zucchi@CIS.UniSA.Edu.Au
