Linux ADSM Mini-Howto 作者: by Thomas König, Thomas.Koenig@ciw.uni-karlsruhe.de 译者: Mile Yeh mile@mail.timenet.net v, 15 January 1997 _________________________________________________________________ 这文件描述如何在 Linux/i386 之中针对商业性的 ADSM 备份系统去安装使用一 个客户端. _________________________________________________________________ 1. 介绍 2. 安装 iBCS 模组 3. 安装 ADSM客户端 4. 执行客户端 5. 已知的问题 _________________________________________________________________ 1. 介绍 ADSM 是一个由 IBM 卖出且以网路为基础的备份系统,它在多数组织中使用 其中 包涵有许多各式各样的系统 (不同的品牌的 UNIX,视窗系列, Novell, Mac,视窗 NT). 不幸的,在这个时候没有原生的 Linux 版本. 你必须要使用 SCO 二进位元档,安装 iBCS2-emulator 来执行 ADSM.这份描述是 针对 ADSM v2r1. 当我写的同时,这是我唯一的发觉到可以 与 i386版本的 Linux 一起工作的版 本. 2. 安装 iBCS 模组 iBCS2模组是可以从此处取得 [1]ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2. 如果你是执行核心 版本 1.2.13,取得 解开它这运用 ibcs-1.2-950721.tar.gz, 解开它这运用 ibcs-1.2-950808.patch1 ibcs-1.2-950828.patch2. 你能够然後键入 "make"然 後使用 "insmod" 安装 iBCS modlue ;. 针对一个 2.0核心版本,取得 ibcs-2.0-960610.tar.gz,解开它放在一个 合适的 放置,改变目录到此目录中,使用下列修补档: --- 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) 然後,复制 CONFIG.i386到 CONFIG,键入 make. 如果你没有已有这些设备,依著下列执行建立必要的设备档案 # cd /dev # ln -s null XOR # ln -s null X0R # mknod socksys c 30 0 # mknod spx c 30 1 3. 安装 ADSM客户端 SCO二进位元档的是由三个 tar 档案提供的,或者由磁碟提供.改变路径到 根目 录,根据你的政策设定你的 umask ,然後 在一个目录解开他们 (譬如 根目录).在 目录 /tmp,你会 找到一个程序档;执行它 这时你要必须手动编辑 /usr/adsm/dsm.sys /usr/adsm/dsm.opt. 在 dsm.sys,重 要的行数详细说明如下: Servername The name of the server(伺服器名称) TCPServeraddress 伺服器 DNS 全名 NODename 你的自己的主机名 In dsm.opt,你必须要详细说明 Server 如同前面的描述 Followsymbolic 要或不要跟随符号连接点 (一般来说,不是一个好主意) SUbdir 支援子目录 (你通常需要它) domain 档案系统备份 这时你要必须创造一个 SCO-相容的 /etc/mnttab 从你的 /etc/fstab.你可以使 用下列各项 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; ______________________________________________________________ 针对这些客户端你不需要安装任何的共享程式库; 每件事是链接到固定程序库. 4. 执行客户端 有两种客户端, dsm,一种是 X11界面, dsmc,一个命令行界面.你的电脑中心会告 诉你如何操作 它.一些起动时的起动程序档,例如 dsmc schedule -quiet 2>&1 >/dev/null & 可能将是需要的 5. 已知的问题 不幸的, SCO 只能处理比 8 个字元还短的主机名 .如果你的主机名更长,或者是 用 Internet 全名,你也许 需要在 NODenameline in /usr/adsm/dsm.sys行详细 说明你的机器名.. 如果你使用 DISPLAY 变数,你要必须提供 伺服器 DNS 全名 (举例. DISPLAY=host.full.do.main:0 instead of DISPLAY=host:0). References 1. ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2