mirror of https://github.com/tLDP/LDP
139 lines
4.5 KiB
Plaintext
139 lines
4.5 KiB
Plaintext
<!doctype linuxdoc system>
|
|
|
|
<article>
|
|
|
|
<title>Linux ADSM Mini-Howto
|
|
<author>by Thomas König, <tt/Thomas.Koenig@ciw.uni-karlsruhe.de/
|
|
<date>v, 15 January 1997
|
|
|
|
<abstract> This document describes how to install and use a client
|
|
for the commercial ADSM backup system for Linux/i386.
|
|
<toc>
|
|
<sect>Introduction
|
|
<p>
|
|
ADSM is a network-based backup system, sold by IBM, in use at
|
|
many organizations. There are clients for a large variety of systems
|
|
(different UNIX brands, Windows, Novell, Mac, Windows NT).
|
|
Unfortunately, at the time of this writing, there is no native Linux version.
|
|
<p>
|
|
You will have to use the SCO binary, and install the iBCS2-emulator
|
|
for running ADSM. This description is for ADSM v2r1.
|
|
<p>
|
|
At the time if this writing, I am only aware of a version which works
|
|
with the i386 version of Linux.
|
|
<sect>Installing the iBCS module
|
|
<p>
|
|
The iBCS2 module is available from
|
|
<htmlurl name="ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2"
|
|
url="ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2">. If you are
|
|
running kernel version 1.2.13, get
|
|
<tt/ibcs-1.2-950721.tar.gz/, unpac it and apply the patches
|
|
<tt/ibcs-1.2-950808.patch1/ and <tt/ibcs-1.2-950828.patch2/.
|
|
You can then type &dquot;<tt/make/&dquot; and
|
|
install the iBCS modlue with &dquot;<tt/insmod/&dquot;.
|
|
<p>
|
|
For a 2.0 kernel version, get <tt/ibcs-2.0-960610.tar.gz/, unpack it
|
|
in a suitable place, chdir into that directory,
|
|
and apply the following patch:
|
|
<verb>
|
|
|
|
--- 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)
|
|
</verb>
|
|
Then, copy <tt/CONFIG.i386/ to <tt/CONFIG/, and type <tt/make/.
|
|
<p>
|
|
If you don't have them already, create the needed device files by
|
|
executing
|
|
<verb>
|
|
# cd /dev
|
|
# ln -s null XOR
|
|
# ln -s null X0R
|
|
# mknod socksys c 30 0
|
|
# mknod spx c 30 1
|
|
</verb>
|
|
<sect>Installing the ADSM client
|
|
<p>
|
|
The SCO binary is supplied as three tar files, or disks. Change to
|
|
the root directory, set your umask according to your policies, and
|
|
unpack them from there (as root). In your Directory /tmp, you will
|
|
find an installation script; execute that.
|
|
<p>
|
|
You will then have to hand-edit <tt>/usr/adsm/dsm.sys</tt> and
|
|
<tt>/usr/adsm/dsm.opt</tt>.
|
|
In <tt/dsm.sys/, important lines to specify are:
|
|
<descrip>
|
|
<tag/Servername/The name of the server
|
|
<tag/TCPServeraddress/The fully qualified host name of the server
|
|
<tag/NODename/Your own hostname
|
|
</descrip>
|
|
In <tt/dsm.opt/, you will have to specify
|
|
<descrip>
|
|
<tag/Server/As before
|
|
<tag/Followsymbolic/Wether or not to follow symbolic links (not a good idea, in general)
|
|
<tag/SUbdir/Wether to back up subdirectories (you usually want that)
|
|
<tag/domain/The file systems to back up
|
|
</descrip>
|
|
<p>
|
|
You will then have to create a SCO-compatible <tt>/etc/mnttab</tt>
|
|
from your <tt>/etc/fstab</tt>. You can use the following Perl script,
|
|
<tt/fstab2mnttab/, for this.
|
|
<tscreen>
|
|
<code>
|
|
#!/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(<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;
|
|
</code>
|
|
</tscreen>
|
|
You do not need to install any shared libraries for these clients;
|
|
everything is linked statically.
|
|
<sect>Running the client
|
|
<p>
|
|
There are two clients, <tt/dsm/, which is an X11 interface, and
|
|
<tt/dsmc/, a command-line interface. Your computer centre will tell
|
|
you how to run it. Some startup script at boot, for example
|
|
<verb>
|
|
dsmc schedule -quiet 2>&1 >/dev/null &
|
|
</verb>
|
|
will probably be required.
|
|
<sect>Known Problems
|
|
<p>
|
|
Unfortunately, SCO can only deal with hostnames no longer than eight
|
|
characters. If your hostname is longer, or fully qualified, you may
|
|
need to specify your hostname on the <tt/NODename/ line in
|
|
<tt>/usr/adsm/dsm.sys</tt>.
|
|
<p>
|
|
If you use the DISPLAY variable, you will have to supply the fully
|
|
qualified host name (i.e. <tt/DISPLAY=host.full.do.main:0/ instead of
|
|
<tt/DISPLAY=host:0/).
|
|
</article>
|