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(<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;
       ______________________________________________________________
     
   針對這些客戶端你不需要安裝任何的共享程式庫; 每件事是鏈接到固定程序庫.
   
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