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