Zip Drive Mini-HOWTO 作者:Kyle Dansie [1]dansie@ibm.net 譯者:楊尚峰 [2]storm@chempro.che.ntu.edu.tw v2.4, 10 January 1999 翻譯日期:8 June 1999 _________________________________________________________________ 這份文件提供你一個在 Linux 上設定與使用 Iomega ZIP 磁碟機的快速指引。 _________________________________________________________________ 1. 簡介 * 1.1 本文件的發源地 2. 快速上手指引 3. 建立一個能使用 ZIP 磁碟機的核心 * 3.1 SCSI 版本 4. ZIP 磁碟機 * 4.1 並列埠版本的 ZIP 100 磁碟機 * 4.2 SCSI 外接式版本 * 4.3 SCSI 內接式版本 * 4.4 ZIP Plus - IMM 驅動程式 * 4.5 ATAPI 版本 * 4.6 IDE 版本 * 4.7 USB 版本 * 4.8 ZIP 250 版本 5. 使用 ZIP 磁碟機 * 5.1 Fdisk, mke2fs, mount, 等等 * 5.2 使用一片已經用 DOS 格式化好的磁片 * 5.3 重新將磁片格式化成 Linux 格式的磁片 * 5.4 fstab 檔 * 5.5 ZIP Tools 工具磁片 6. 性能表現 7. 常見問答集 * 7.1 我能夠將印表機串接在並列埠版本的 ZIP 磁碟機上嗎? * 7.2 是否有計畫在 ppa 中支援 EPP/ECP 模式的並列埠? * 7.3 我能夠將 Linux 安裝在 ZIP 磁碟機上,並由 ZIP 磁碟機上啟動執行嗎 ? * 7.4 我能用 ZIP 磁碟機開機嗎? * 7.5 為何 Iomega 使用第 4 個分割區? * 7.6 我要怎樣才能在開機時,自動將磁片掛載起來? * 7.7 如果當我開機時沒有插磁片在磁碟機內,那麼會怎樣呢? * 7.8 我能夠把並列埠磁碟機當成真實的 SCSI 磁碟機來用嗎? * 7.9 ppa 驅動程式能用在 Iomega 的並列埠磁帶機上嗎? * 7.10 ppa 驅動程式是否能在並列埠版的 SyQuest EZ135 上正常運作? 8. 取得更多最新資訊 _________________________________________________________________ 1. 簡介 Iomega ZIP 磁碟機是一種很受歡迎的抽取式磁碟機。ZIP 磁碟機有很多不同的版 本: * 並列埠(Parallel Port) * SCSI * IDE - ATAPI * Plus 其中,最受歡迎的似乎是並列埠的版本,主要是因為並列埠版本的機器上市已有 一段不短的時間,並且價格低廉。 SCSI 版本的機器雖然也上市了一段時間了, 但是因為需要有 SCSI 配接卡,而 SCSI 卡並不是人人都有的,因此,並沒有如 並列埠版本般流行。 ATAPI 版本的機器現在則似乎越來越常見了。 Plus 是一個 較新的 ZIP 磁碟機版本,它具有自動偵測磁碟機是連接在並列埠或者 SCSI 介面 的能力。 本文件主要會將焦點放在並列埠的版本上,然而也會提供一些其他版本 機器的提示。 本文件包含了一些其他人所收集及發表的資訊,尤其是: * Grant Guenther, grant@torque.net * Scot Wilcoxon, sewilco@fielday.mn.org * Joe Mack, mack@ncifcrf.gov * Byron Jeff, byron@cc.gatech.edu 我非常感謝他們的重要貢獻以及指正我所犯的錯誤。 特別感謝完成 0.26 版的 ppa 驅動程式以及這個 HOWTO 的原始版本作者 Grant Guenther 。 如果發現本文件有任何錯誤或疏失,請讓我知道: [3]dansie@ibm.net 如果有任何翻譯上的錯誤或疏失,也請讓譯者知道: [4]storm@chempro.che.ntu.edu.tw 1.1 本文件的發源地 本文件的最新原文版本可以在這裡取得: [5]http://www.njtcom.com/dansie/zip-drive.html 2. 快速上手指引 現在,你買了一台新的 ZIP 磁碟機,而你想要使用它。 有些 Linux 的發行版本 (Distribution)已經建好了 ppa 模組。 你可以試著以 insmod ppa 指令來載 入 ppa 模組以使用 ZIP 磁碟機。(請確定你有把 ZIP 磁碟機安裝妥當,並且在 磁碟機內插有磁片。) 如果發現系統中沒有 ppa 模組,那麼你必須要調整核心 組態設定。 我的機器上有兩個並列埠,一個接 ZIP 磁碟機,而另一個接印表機 。 這樣可以免去切換與插拔電纜線的麻煩。 設定系統核心(kernel)組態: * 切換路徑至 /usr/src/linux * make xconfig * 選擇 scsi support = Y * 選擇 scsi disk support = Y * 選擇 Iomega zip support as a module * 選擇 printer support as a module * 結束並儲存設定 * make dep * make clean * make zImage 或 zlilo 或 zdisk * make modules * make modules_install 接下來,要使用 ppa 驅動程式: * 載入 ppa 模組: insmod ppa * 建立一個掛載點(mounting point): mkdir /zip * 插入一片已經以 Windows 檔案系統格式格式化好的 ZIP 磁片到 ZIP 磁碟機 中。 * 將 ZIP 磁片掛載(mount)起來: mount -t vfat /dev/sda4 /zip * 使用任何標準的檔案指令,例如 l /zip, ls /zip, df, cp, * 當你工作完成以後: umount /zip 如果你在上面的操作步驟中遇到任何問題,請參考接下來的各章節以獲得更詳細 的說明。 3. 建立一個能使用 ZIP 磁碟機的核心 要在 Linux 下使用 ZIP 磁碟機,你必須要有一個支援 SCSI 裝置,支援 SCSI 磁碟,以及支援你所用的主配接器(Host Adapter)的核心。 如果你對於如何建 立核心並不熟悉,你可以由 [6]Linux Kernel HOWTO 獲得相關資訊[譯者註]。 [譯者註] 中文化的 Linux Kernel HOWTO 可以在 [7]CLDP Linux Kernel HOWTO 中找到。 建立核心的第一步是設定核心組態。下面會告訴你哪些核心設定選項必須要選定 。 首先, cd /usr/src/linux。有許多方法可以進行組態設定。 在 X window 下我用 make xconfig。 此外,在命令列下,還可以用 make menuconfig 或 make config。然而,最簡單的方法是用 xconfig。 在 SCSI Support 組態群組中,選定 SCSI support = Y。另外也要選定 SCSI disk support = Y。 在 SCSI low-level drivers 組態群組中,你要選定 IOMEGA Parallel Port ZIP drive SCSI support = M。 "M" 代表設定成模組。 在 Character Devices 組態群組中,找到並選定 Parallell Printer support = M。 如果你對上面的步驟感到任何一點點的不確定,那麼在編譯核心時,請使用 make zdisk 的編譯方式。 這樣會建立並安裝核心到軟碟機上。如此一來,如果 你因為某些原因而搞砸了,在硬碟上你仍然還有一個可以正常開機的系統。 現在,以下列的步驟建立核心: * make dep * make clean * make zImage 或 zlilo 或 zdisk * make modules * make mdoules_install [小提示] 如果你想記錄在 make zImage 過程中的螢幕輸出的話,你可以用下列 指令: make zImage 2>&1 | tee zImage.out 十分建議你將編譯過程記錄下來,尤其是當編譯過程有發生錯誤,或者核心組態 設定有錯的時候, 你可以在記錄檔中找到相關的錯誤訊息。這樣會方便你在向別 人求助時能提供相關訊息。 此外,你必須將模組載入。在我的系統上,我只是在 boot.local 中加了下面幾 行: * insmod ppa * insmod lp 我的系統是 SuSE 5.3 ,而這個檔案在 /etc/rc.d 下。 這個檔案的名稱和路徑 在每個發行版本中都會略有不同,但總會有一個這樣的檔案,用來紀錄一些你自 己希望在系統啟動時,自動執行的命令。 你應該找到並使用你所安裝的發行版本 中相對應的檔案[譯者註]。 [譯者註] 在 RedHat 和 Slackware 這兩個發行版本中,這個檔案是 /etc/rc.d/rc.local。 現在,關閉系統並重新啟動。 你也可以將全部或者部分的 SCSI 裝置設定建成模組。 如果你這樣做,在你試著 使用 ZIP 磁碟機前,記得要先確定載入 scsi.o ,接下來載入 sd.o ,最後載入 你的主配接器的模組。 3.1 SCSI 版本 如果你已經有一台 SCSI 硬碟,而且你將 ZIP 磁碟機接在同一個 SCSI 控制器上 ,那麼你不需要變更核心的組態設定;否則,你很可能必須建立一個新的核心。 如果你在建立一個可以使用 SCSI ZIP 磁碟機的核心,你應該要開啟支援 SCSI 以及 SCSI 磁碟機的設定選項。 此外,你也必須選擇一個支援你所用的 SCSI 配 接卡的驅動程式。如果你有 ZIP Zoom SCSI 配接卡,請選擇 aha152x 這個驅動 程式。 請務必讀過在 SCSI HOWTO 文件中,有關你所使用的 SCSI 配接卡的相關資訊, 並且務必讀過在 Linux 核心原始程式碼目錄下,drivers/scsi 目錄下所有的 README 檔。 請特別注意是否有必須傳給核心以驅動你的 SCSI 配接卡的相關核 心啟動參數。 例如,如果你是用 ZIP Zoom 介面卡,你將必須在開機出現 boot: 提示符號時, 輸入類似 aha152x=0x340,11,7,1 的核心參數(或者將這段參數加在你的 /etc/lilo.conf 中的 append 命令中) 。 這列參數告訴驅動程式有關你的 ZIP Zoom 卡的輸出入埠位址以及中斷(IRQ )- 務必確定所用的數值與你卡上的硬體跳線器(Jumper)設定相符。 你也該看看 Paul Gortmaker 的 [8]BootPrompt HOWTO 以獲得更多有關如何設定 與使用 LILO 或 LOADLIN[譯者註]。 [譯者註] 中文化的 BootPrompt HOWTO 可以在 [9]CLDP BootPrompt HOWTO 中找 到。 4. ZIP 磁碟機 Iomega ZIP 100 磁碟機最少有五種或六種不同版本。 Iomega 網站上有關這些磁 碟機的部分在 [10]http://www.iomega.com/zip/。 所有的機種都能使用容量為 100 MB 的特殊 3.5" 磁片匣。 這種磁片實際上有 96 個磁柱(Cylinder),每 個磁柱有 2048 個磁區,每個磁區有 512 位元組。這種磁片的實際容量通常為 96 MB。 外接式的機種有: * 並列埠 * SCSI * Plus 內接式的機種有: * SCSI * IDE * ATAPI 內接式的機種能夠裝在電腦機殼的 3.5 或 5.25 吋磁碟機槽。 外接式的機種則 是裝在一個藍色小塑膠機殼中[譯者註],並由外部的電源供應器供應電源。 [譯者註] 早期曾有一段時間,EPSON 有代理外接式並列埠 ZIP 磁碟機,EPSON 所代理的機器的機殼顏色是白色的。 不管是哪一種機型,每部 ZIP 磁碟機的前面板都會有一個按鈕。那是退片鈕。 當 ZIP 磁碟機被使用時,Linux 會鎖住磁片,然而若在此時按下了退片鈕,ZIP 磁碟機會『記起來』退片要求,並且在系統解除鎖定磁片後,立刻將磁片退出來 。 4.1 並列埠版本的 ZIP 100 磁碟機 這個版本的 ZIP 磁碟機相關資訊可以在這裡找到: [11]http://www.iomega.com/zip/products/parallel_port.html Linux 的 ZIP 驅動程式有幾個不同的版本。在 2.0.x 的核心附的是 0.26 版的 ppa.c 驅動程式。 如果你的核心版本低於 2.0.35,那麼你有一個老舊版本的驅 動程式。 到 [12]David Campbell's page 來找找比較新的版本。在寫這篇 mini-Howto 時,最新的版本是 1.42 版[譯者註]。 [譯者註] 在我翻譯這篇 mini-Howto 時(May 1999),最新的版本仍是 1.42 版 。 1.4x 版驅動程式的自動硬體組態偵測功能實在太棒了。 你不需要告訴驅動程式 你的並列埠的基底記憶體位置,驅動程式會自動偵測並列埠的標準基底位址,如 果偵測到 ZIP 磁碟機的話,還會自動連接磁碟機。 最常遇到的錯誤是在載入 ppa 驅動程式前,先載入了 lp 印表機模組。ppa 驅動 程式必須在 lp 模組之前載入。 ppa 驅動程式之所以必須先載入的原因是因為 lp 模組會佔用 ZIP 磁碟機所用的輸出入埠。 另外也請確定所有電纜都有穩固的連接妥當。 如果你一切都做對了 :) 你會在開機時看到類似這樣的訊息: VFS: Mounted root (ext2 filesystem) readonly. Adding Swap: 102528k swap-space (priority -1) ppa: Version 1.42 ppa: Probing port 03bc ppa: Probing port 0378 ppa: SPP port present ppa: EPP 1.9 with hardware direction protocol ppa: Found device at ID 6, Attempting to use EPP 32 bit ppa: Communication established with ID 6 using EPP 32 bit ppa: Probing port 0278 ppa: SPP port present scsi0 : Iomega parport ZIP drive scsi : 1 host. Vendor: IOMEGA Model: ZIP 100 Rev: D.09 Type: Direct-Access ANSI SCSI revision: 02 Detected scsi removable disk sda at scsi0, channel 0, id 6, lun 0 SCSI device sda: hdwr sector= 512 bytes. Sectors= 196608 [96 MB] [0.1 GB] sda: Write Protect is off sda: sda4 lp2 at 0x0278, (polling) 你能夠用 dmesg | more 指令來查看開機訊息。 你也可以用 dmesg > dmesg.txt 指令將開記訊息存到檔案中。 當你試著找出安裝上的錯誤時,這個檔 常常十分有用。 此外,也請看看 " [13]取得更多最新資訊" 這個章節。 4.2 SCSI 外接式版本 Iomega 網站上有關這種磁碟機的部分在 [14]http://www.iomega.com/zip/products/scsi.html。 SCSI 介面的外接式 ZIP 磁碟機有兩個 DB25F 接頭及兩個設定開關。 其中一個 開關是用來設定磁碟機的標的位址[譯者註]。能夠選擇的值限制在 5 或 6。 另 一個開關是當 ZIP 磁碟機是 SCSI 電纜上串接的最後一個裝置時,用來開啟內部 終端電阻用的。 25 針的 SCSI 接頭是採用類似麥金塔(Macintosh)電腦所用的 配線方式。 購買磁碟機時,會隨貨附一條麥金塔的 SCSI 電纜線,然而,若你的 SCSI 配接卡是用 Centronics 接頭或者高密度接頭的話,標準 SCSI 電纜線以及 轉換接頭應該很容易取得。 [譯者註] 原文是 target address,由語意判斷,應該是指 SCSI ID。 我沒看過內接式的 SCSI ZIP 磁碟機,但我猜應該也有一個 50 針 DIP SCSI 接 頭以及兩個一樣的設定開關。 請確定你所設定的標的位址沒有和在同一個匯流排上的其他 SCSI 裝置相衝突。 也請確定在 SCSI 電纜線上穿接的最後一個裝置有啟動內部終端電阻,或者裝上 一個外部終端電阻。 如果你有內接式的 SCSI 硬碟或光碟機,並且你將你的 ZIP 磁碟機接在同一個 SCSI 配接卡上,你應該檢查看看是否有必須要移除的終端電阻。 只有 SCSI 匯 流排上最末兩端必須接上終端電阻。 如果你的 SCSI 匯流排上同時有內接式以及 外接式的 SCSI 裝置,那麼最後的一個內接以及外接裝置上必須接上終端電阻, 但是 SCSI 配接卡本身不需要終端電阻。 請確定所有的電纜線都有緊緊地接好。 核心的組態設定和設定內接式版本時一樣。請參考下面 SCSI 內接式版本章節中 的設定範例。 ZIP ZOOM 主配接卡 ZIP Zoom 是 Iomega 賣的 SCSI 主配接卡。 這塊卡的設計實際上是基於 Adaptec AHA1520 系列配接卡。 這塊卡上有一個與隨 ZIP 磁碟機附贈的電纜線 相容的,Macintosh 用的 DB25F 外接接頭。 支援這塊配接卡的 Linux 驅動程式是 aha152x。 4.3 SCSI 內接式版本 硬體的安裝請見『安裝與參考指引』。請注意所使用的 SCSI ID,IRQ 及 I/O 埠 位址(稍後你將會需要這些資訊)。 請小心 ZIP Zoom 這塊卡在硬體線路上直接設定了使用 SCSI ID 7。 在接下來的 命令列中所提到的 SCSI ID 是指 SCSI 卡的 ID ,而不是磁碟機的。 卡和磁碟 機必須使用不同的 SCSI ID。例如,如果卡的 ID 是 7,則磁碟機使用 5 或其他 的 ID。 在開啟了支援 『SCSI』,『SCSI disk』及『AHA152X/2825』等的組態設定後, 重新編譯核心,並請安裝新的核心 :-( 請決定適合你的系統的核心啟動參數: aha152x=[I/O Port][,IRQ][,SCSI ID][,RECONNECT][,PARITY] 例如: aha152x=0x140,10,7,1 如果你是使用 LILO,將核心啟動參數加到 lilo.conf 的 append 命令中。 (例如將 append = "aha152x=0x140,10,7,1" 加到 lilo.conf 中) 如果你是用 LOADLIN,那麼將你的核心啟動參數加到你用來啟動 loadin 的命令 中。 (例如 loadlin c:\vmlinuz root=/dev/hda3 aha152x=0x140,10,5,1 ro) 4.4 ZIP Plus - IMM 驅動程式 這是一種比較新的外接式 ZIP 磁碟機。 Zip Plus 不是用 ppa 驅動程式, 而是 使用 imm 驅動程式。 [15]Philippe Andersson 提供了這段有關 ZIP Plus 的 imm 驅動程式的說明。謝謝 Philippe。 首先,重建一個包含下列組態的核心: * modules support * SCSI support * SCSI Disk support * lp 建成模組 (如果你需要的話) 你應該有注意到我們並沒有選擇任何低階的 SCSI 驅動程式。這沒關係 -- 我們 將在稍後另外建立它。 接下來,你要到 Dave Campbell 的網站取得驅動程式的原始程式碼 ( [16]http://www.torque.net/~campbell/imm.tar.gz)。0.18 版是在寫這份文件 時(Aug. '98)的最新版本[譯者註]。 將檔案解壓縮到某目錄下(例如解到 /usr/src 下面)。接下來執行 make。 你就會得到 imm 驅動程式模組(imm.o) 。將該模組複製到 /lib/modules/$(uname -r)/scsi 下。 [譯者註] 在我翻譯這篇 mini-Howto 時(Jun. 1999),最新的版本仍是 0.18 版 。 如果你已經載入 lp 模組(可以使用 lsmod(1) 命令檢查),先卸除 lp 模組 (rmmod lp),然後載入 imm.o 模組(insmod imm)。 到這裡,你已經完成了 基本的設定。 如果你在載入 imm 模組時, ZIP 磁碟機並沒有連接好或者沒有打開電源,你會 看到 "init_module: Device or resource busy" 的錯誤訊息,而無法載入模組 。(附帶一提,當你要連接 ZIP 磁碟機到電腦主機時,似乎不需要將電腦關機 -- 只要確定 imm 模組沒有載入,而且磁碟機的電源是關的,接著只要將電纜線 插好,打開電源,並載入模組就可以了。) 如果 ZIP 磁碟機已經接好而且也打開電源了,但是沒有插磁片在裡面,那麼 imm 模組還是會載入,但是你會看到無法讀取磁碟分割表的錯誤訊息。 這沒關係 ,因為當你在磁碟機內插入磁片,系統會自動讀取分割表。 若你在載入模組時,ZIP 磁碟機內有插磁片,那你會看到該磁片的分割區列表以 及寫入保護狀態等等的完整資訊。 下面是一個載入模組時所看到的磁片資訊的例 子: vger:~# insmod imm imm: Version 0.18 imm: Probing port 03bc imm: Probing port 0378 imm: SPP port present imm: ECP with a 16 byte FIFO present imm: PS/2 bidirectional port present imm: Passed Intel bug check. imm: Probing port 0278 scsi0 : Iomega ZIP Plus drive scsi : 1 host. Vendor: IOMEGA Model: ZIP 100 PLUS Rev: J.66 Type: Direct-Access ANSI SCSI revision: 02 Detected scsi removable disk sda at scsi0, channel 0, id 6, lun 0 SCSI device sda: hdwr sector= 512 bytes. Sectors= 196608 [96 MB] [0.1 GB] sda: Write Protect is off sda: sda1 vger:~# 最後值得一提的是,當磁片被掛載以後,這版的驅動程式會將磁片鎖住。 如果在 這時按下退片鈕,磁片並不會退出來,但是磁碟機會『記得』你的退片要求,並 在你卸載(umount)磁片後立刻退片。 4.5 ATAPI 版本 有關這種機型的資訊可以在這裡找到: [17]http://www.iomega.com/zip/products/insider.html 之前有一小段時間還有一種 IDE 版本的磁碟機。不過我想現在絕大部分都已經被 ATAPI 版本的機器所取代。 Donald Stidwell 提供我下面這些有關 ATAPI 版本的說明。謝謝 Don。 我有一台 ATAPI ZIP 磁碟機,而且在 2.0.32 及 2.0.33 版的核心下都能正常運 作。 我在 RH 5.0 及 OpenLinux 1.2 (我現在在使用的發行版本)下都測試 過[譯者註]。 我所需要做的只是開啟 ATAPI floppy support 的核心組態設定 。OpenLinux 的核心並沒有內定開啟這個功能。 [譯者註] 我本身在 Slackware 3.3/3.6 以及 RedHat 5.2 下都能正常使用 ATAPI ZIP,測試過的核心版本有 2.0.35, 2.0.36, 2.2.1, 2.2.2 等。 不需要其他額外的驅動程式。ZIP 磁片會以延伸分割區(Extended Partition)的 形式掛載在第 4 個分割區。 例如,我的狀況是掛載 HDB4。我以 noauto 的掛載 選項將 ZIP 磁片掛載於 /mnt/zip,但是我想用自動掛載應該也不會有問題。 我 想唯一可能的問題是退片。我總是在要退片前,先卸載磁片。 在 1998 年五月號的 Linux Gazette 中,有對於在 Linux 下安裝 ATAPI ZIP 的 更詳細介紹。 請參考 2 cent tip 的部分。 [18]http://www.linuxgazette.com/issue28/lg_tips28.html#atapi 4.6 IDE 版本 我沒用過 IDE 版本的 ZIP。Eric Backus 提供下面這些說明。謝謝 Eric。 我有一台 IDE ZIP 磁碟機,是在一年前隨著我的 Gateway 2000 電腦一起買來的 。 我想這種機型絕大部分都是在 ATAPI 版本的 ZIP 發行前,由這類的大型 OEM 公司隨貨賣出的。 好消息是:要支援這種磁碟機,不需要額外的核心模組或者核心組態變更。 這種 機型對核心而言,就跟 IDE 硬碟一樣。 我能在 2.0.31 及 2.0.32 版的核心上 直接使用。 而壞消息是:因為不是使用 ATAPI 協定,所以你無法啟動使用 SCSI 轉 ATAPI 的核心組態, 也就是說,你不能用 mtools 來開啟磁片的防寫功能以及退片[譯 者註]。 [譯者註] 請參考 mzip(1) 指令以及 mtools 的 man page 說明。 4.7 USB 版本 這台磁碟機的資料可以在這裡找到: [19]http://www.iomega.com/zip/products/usb.html 這種磁碟機看起來很酷,而且 USB 介面也看起來很棒。 唯一的問題是目前 Linux 對 USB 介面的驅動程式還在發展中。 因此,就目前而言,這種 ZIP 磁碟 機無法在 Linux 下使用。 看看這個網站以取得最新資訊: [20]http://peloncho.fis.ucm.es/~inaky/USB/news.html 4.8 ZIP 250 版本 這種機型是 1999 年 1 月推出的新機型。我買了一台,而且在 Linux 下使用非 常良好。 所要做的只有使用由 [21]http://www.torque.net/~campbell/imm.tar.gz 取得的 imm 驅動程式。 設 定上和 ZIP Plus 相同。簡單的說,先取得驅動程式原始碼,解壓縮,然後執行 make。 接著複製 imm.o 到存放核心模組的目錄下,例如 /lib/modules/2.0.35/scsi(2.0.35 是你的核心版本號碼)。 如果你不確定你 的核心版本號碼是多少,可以用 uname -r 指令查詢。 5. 使用 ZIP 磁碟機 如果你已經建立好所有需要的元件,那麼核心應該能在開機時辨識出你的配接卡 以及磁碟機。 如果你是用可載入式模組的方式建立驅動程式的話,接下來的討論 僅適用於模組以載入後的情形。 在大部分情形下,SCSI 和 並列埠版本的磁碟機表現相同,除了並列埠版本的比 較慢以外。 5.1 Fdisk, mke2fs, mount, 等等 一旦你知道你的 ZIP 磁碟機所屬的磁碟裝置名稱,你就已經準備就緒。 你能夠 使用 Linux 的磁碟管理命令來對該磁碟裝置進行操作。 fdisk(或者 cfdisk) 是用來規劃磁碟的分割表。 mke2fs 能用來將分割區格式化(Format)成 ext2 檔案系統 -- 這是 Linux 下最常使用的檔案系統。 mount 則是用來將格式化好 的分割區連接到你的目錄體系中。 如果你對這些工具並不熟悉,你應該研讀一下這些工具的手冊。 請小心注意 fdisk 程式現在有許多十分不一樣的版本 - 請務必小心。 我將陳述兩個常見的案例。 5.2 使用一片已經用 DOS 格式化好的磁片 如果你有一張原本由 Iomega 的工具程式格式化成 DOS 檔案結構的 ZIP 磁片, 那麼掃瞄分割表時應該會發現磁片上有一個分割區 /dev/sda4。 你應該先建立一個用來掛載 ZIP 磁片的目錄,例如 /zip,然後以 MS-DOS 檔案 系統格式將磁片掛載起來: mkdir /zip mount -t vfat /dev/sda4 /zip 你也可以用 msdos 來取代上面的 vfat。兩者的差別在於, vfat 支援長檔名, 而 msdos 不支援。 現在,磁片上的檔案應該會出現在 /zip 目錄下。 當磁片被 掛載了,你將無法由磁碟機中將磁片退出。 當你完成了對磁片的存取,你可以卸 載磁片來切斷磁片和目錄體系的連接,並取出磁片: umount /zip 一旦你已經建好 /zip 這個掛載點 - 你不需要再建立一次。 所以稍後你能再將 另一片磁片掛載在那兒。 5.3 重新將磁片格式化成 Linux 格式的磁片 如果你想要消去 ZIP 磁片上原有的檔案系統,並建立 Linux 的檔案系統,你應 該使用 fdisk 來重新規劃整片磁片的分割區: fdisk /dev/sda 並且刪除所有已存在的分割區(用 fdisk 的 d 命令)。 接著,用 n 命令建立 一個新的分割區,選擇主分割區號碼 1 ,用 w 命令將分割表寫到磁片上,然後 用 q 命令離開 fdisk 程式。 接著格式化分割區: mke2fs /dev/sda1 (數字 1 就是你在 fdisk 中給定該分割區的分割區編號)。 現在,你可以將磁 片掛載起來: mount -t ext2 /dev/sda1 /zip (再次使用我們之前建立的掛載點)。 5.4 fstab 檔 /etc/fstab 能讓你對 mount 命令進行設定。 我希望系統上登錄的任何使用者都 能掛載及寫入 ZIP 磁片,因此我在 fstab 的檔案結尾加了兩列像這樣的內容: /dev/sda1 /zip ext2 noauto,rw,user,nosuid,sync /dev/sda4 /zipdos vfat noauto,rw,user,nosuid,sync,mode =0777 這裡假設你有一個 /zip 目錄和一個 /zipdos 目錄。 如果你要所有使用者都能 夠讀寫 ZIP 磁片,請確定你設定了適當的存取權限,例如 chmod 666 /zip。 你 必須以 root 的身份執行 chmod 命令。 上面 fstab 的內容也假設了你的 DOS 格式 ZIP 磁片的分割區編號是 4 (在我的系統是 sda4),以及 ext2(Linux) 格式的磁片分割區編號是 1(sda1)。 你可以用 man mount 找到更多 fstab 檔 案的設定選項資料。 如果你在 fstab 檔案中加入上面兩列設定,那麼你可以用 mount /zipdos 掛載 DOS 格式磁片。 如果你要掛載 Linux ext2 格式的磁片,那麼命令是 mount /zip 。 5.5 ZIP Tools 工具磁片 如果你想使用隨 ZIP 磁碟機附贈的磁片,還有一點額外的工作要做。 這些磁片 在出貨時,軟體控制的寫入保護功能是被開啟的。 大部分的人在要在 Linux 下 使用 ZIP 磁片時,會先在 DOS 下將寫入保護功能關閉。 Linux 無法存取被寫入 保護鎖定的磁片,所以必須先用 Iomega 的工具程式來解除鎖定。 相信在 Linux 下,能用來管理磁片的寫入保護以及其他功能的程式,將在不久的 將來發展完成[譯者註]。 [譯者註] 現在已經有一些工具程式可以用來控制 ZIP 磁片的各種狀態,計有 mtools 中的 mzip(1) ,以及現在由 Mirko Kraft 所發展維護的 ziptool 等等 。 6. 性能表現 標準 2.0.x 版的核心原始程式中所附的 ppa.c 驅動程式碼是 0.26 版的。 這是 一個非常可靠的簡單程式,因此被大量而廣泛的使用。 這個程式唯一的缺點是速 度不是很快。 在我自己的機器上,我是用 2.0.30 版的核心,而且有兩個並列埠 。 這也是一台低價位的機器:pentium 133 - 16 MB 記憶體,5 GB Maxter EIDE 硬碟。 機器花了我 500 元美金,而 ZIP 磁碟機則花了 250 元。 我用的 都是廉價品,但那有什麼關係。 我將 ZIP 磁碟機裝在第二個並列埠,而將印表機裝在第一個。 第二個並列埠是 一張舊式的並列埠擴充卡,沒有 EPP 模式。 因此 ZIP 磁碟機只能在 4 位元標 準並列埠模式下運作。 測試性能表現的基準方法是,我由硬碟複製一個 Netscape 的 tar 壓縮檔到 ZIP 磁碟機。 這個檔大約是 10.6 MB,所花的時間是 7 分 15 秒。 而由 ZIP 磁碟機將同一個檔案複製到硬碟上,則大約花了 7 分鐘。 接著我做了兩項改變。首先,我將 ZIP磁碟機接到第一個並列埠,並開啟 BIOS 中的 EPP 模式選項。 另外,我將印表機接到第二個並列埠。 其次,我由 [22]David Campbell 的網頁下載新的 PPA 驅動程式。 我安裝驅動 程式,並閱讀隨程式所附的 readme 檔。 然後我再次進行相同的測試,複製 Netscape tar 檔到 ZIP 上,以及由 ZIP 上 複製出來。 由 ZIP 上複製到 C 磁碟花了 1 分 55 秒。而由硬碟複製到 ZIP 磁 碟機則花了 1 分鐘整。 這相較於使用舊版驅動程式的 7:15 以及 7:00 來說, 新版程式的效能大幅提升,遠遠超越了 0.26 版程式的效能。 這些測試是在 ZIP 磁碟機也使用 vfat 檔案系統格式的情況下進行的。 接著,我重新將 ZIP 磁碟機格式化成 ext2 檔案系統格式。並再次進行同樣的測 試。 由 ZIP 磁碟機上複製到硬碟只花了 50 秒。而由硬碟複製到 ZIP 磁碟機則 只花了 40 秒。 性能表現摘要 在搬移一個 10.6 MB 檔案的測試中,在使用 4 位元標準並列埠模式以及 0.26 版 ppa 驅動程式的情況下,速度最慢,時間是 7:00 及 7:15。 在使用新版(1.41 版)驅動程式,EPP 並列埠模式,並使用 ext2 檔案系統的情 況下,速度最快,時間是 50 秒和 40 秒。 7. 常見問答集 這裡是一些我常被問到的問題。請在再次發問前,先找找看這裡的答案! 7.1 我能夠將印表機串接在並列埠版本的 ZIP 磁碟機上嗎? 可以,但是就目前而言,你不能在同一個並列埠上同時掛載啟動 lp 及 ppa 驅動 程式模組。 目前正在設計以及開始實做一個資源分享協定,但在 Linux 2.0 釋 出前不會正式發行[譯者註]。 [譯者註] 不太清楚原作者所指的 Linux 2.0 是什麼,懷疑指是 Kernel 2.2.0 (2.2.0 版的核心)。 如果你喜歡冒險,那麼取得並安裝 2.1.x 版的核心,你就能使並列埠資源共享。 請參考 [23]http://www.cyberelk.demon.co.uk/parport.html 在 2.0.x 的核心下最簡單的解決辦法是使用兩個不同的並列埠。 我花了 15 美 元買了第二個並列埠介面,而且運作得很好。 你可以一個用來接 ZIP 磁碟機, 另一個接印表機。 所要做的只有建立一個支援 lp 和 ppa 模組的核心,以及這 兩個模組。 我用的是比較新(1.41 版)的 ppa 驅動程式,所以我先載入 ppa 模組(insmod ppa)。 ppa 驅動程式會偵測到在第一個並列埠上的 ZIP 磁碟機 。 接著我再載入 lp 模組(insmod lp)來驅動第二個並列埠上的印表機。 如果你是用 0.26 版的 ppa 驅動程式,那麼請更新到 1.41 版或更新的版本。 如果你在使用 ppa 驅動程式時遇到任何問題,唯一的解答是請更新 ppa 到更新 的版本。 7.2 是否有計畫在 ppa 中支援 EPP/ECP 模式的並列埠? 0.26 版的程式並不支援 EPP。而 1.41 版則有支援 EPP。 這版的程式也比舊版 快多了。更詳細的資訊請參考" [24]性能表現"的部分。 7.3 我能夠將 Linux 安裝在 ZIP 磁碟機上,並由 ZIP 磁碟機上啟動執行嗎? 已經有人這麼做了。這種安裝方式是製作一個急救磁片或者測試安裝時的好方法 。 [25]http://metalab.unc.edu/LDP/HOWTO/mini/ZIP-Install.html[譯者註] [譯者註] 中文化的 ZIP Install mini-HOWTO 可以在 [26]CLDP ZIP Install mini-HOWTO 中找到。 7.4 我能用 ZIP 磁碟機開機嗎? 這要視你所使用的主配接器種類而定。如果你的主配接器的 BIOS ROM 允許你由 SCSI ID 為 5 或 6 的裝置上開機,那麼你就能用 SCSI ZIP 磁碟機開機。 並列 埠版本的 ZIP 磁碟機無法用來開機。 如果你的硬碟上有裝 DOS,而你想要啟動在 ZIP 磁片上的 Linux 系統,那麼你 可以用 LOADLIN 。 你必須複製一份核心影像檔到 DOS 的硬碟上,而完整的 Linux 系統則需裝在 ZIP 磁片上。 請確定你所複製的核心檔的相關驅動程式組 態設定是對的。 據我所知,目前常見的發行版本中,沒有任何一個有提供用來安裝於並列埠版本 ZIP 上的可開機安裝磁片。 7.5 為何 Iomega 使用第 4 個分割區? 這是最常見到的問題,但我想沒有人知道確實的答案。 可能是他們頭腦不清楚吧 ?也許沒有特別的原因。 7.6 我要怎樣才能在開機時,自動將磁片掛載起來? 你所要做的只有在你的 /etc/fstab 檔內加一行設定。 舉例來說,如果你開機時 總會插一片 DOS 格式的磁片在 ZIP 磁碟機內,那你可以將 /dev/sda4 /zip vfat defaults 0 0 加到你的 fstab 檔案中。 隨你所使用的發行版本而略有不同,但開機時,通常 負責系統初始化的命令稿(Script)會試著在 fstab 內有紀錄的分割區上執行 fsck。 請注意,如果開機時你忘了放磁片或者放了錯誤格式的磁片,這樣可能會 造成問題。 7.7 如果當我開機時沒有插磁片在磁碟機內,那麼會怎樣呢? 系統核心會試著讀取磁片的分割表,但是會作業逾時。 然而,這沒什麼好擔心的 。 一旦當你插了一片磁片到磁碟機內,並且試著進行讀寫等動作時,核心會重新 讀取分割表。 提示:當你抽換磁片時,最好能夠用 fdisk 檢查一下新插入的磁片上的分割表結 構。 某些 SCSI 主配接器上的 BIOS 會在系統開機期間試著讀取你的磁片上的分割表 。 如果你不能將 SCSI 卡的這項功能關掉,那麼你可能會被迫在開機時,必須插 一片磁片在磁碟機內。 7.8 我能夠把並列埠磁碟機當成真實的 SCSI 磁碟機來用嗎? PPA-3 並列埠轉 SCSI 轉接器是被實做成一個 Iomega 稱為 VPI0 的 ASIC 單晶 片。 這片晶片被內嵌於 ZIP 磁碟機控制卡上。 實際上是有一個 SCSI 匯流排存 在,但是不是在能使用的形式下。 雖然我還沒比較過這兩種卡,邏輯上似乎 VPI0 取代了傳統的 SCSI 匯流排外接 延伸裝置所需要的電子緩衝電路。 7.9 ppa 驅動程式能用在 Iomega 的並列埠磁帶機上嗎? 不能。這些磁帶機是軟碟式磁帶機(floppy-tape drive),跟 SCSI 無關。 有些人表示對於應用我的方法,來試著找出傳輸協定,及發展這些磁帶機的驅動 程式感到興趣。 第一步是要先讓 DOS 下的驅動程式能在 DOSemu 下使用。 到目 前為止,我還沒聽說有成功的案例。 7.10 ppa 驅動程式是否能在並列埠版的 SyQuest EZ135 上正常運作? 不能。 EZ135 是一個內建 ShuttlePort 並列埠轉 IDE 轉換器的 IDE 磁碟機。 然而,這台磁碟機的驅動程式發展也已經有一些成果。到這兒瞧瞧: [27]http://www.torque.net/linux-pp.html 8. 取得更多最新資訊 最新版本的並列埠 ZIP 驅動程式(ppa.c)以及關於該驅動程式的技術資訊可以 在下面 URL 找到: [28]http://www.torque.net/~campbell/ 許多並列埠外接裝置驅動程式的資訊可以在下面 URL 找到: [29]http://www.torque.net/linux-pp.html 並列埠共享(Parallel Port sharing)的相關資訊可以在下面 URL 找到: [30]http://www.cyberelk.demon.co.uk/parport.html 由 ZIP 磁碟機安裝 Linux(對於沒有 CD-ROM 的機器)的相關訊息可以在下面的 mini HOWTO 找到: [31]http://metalab.unc.edu/mdw/HOWTO/mini/Install-From-ZIP.html ziptool 程式的 X 前端介面可以在下面 URL 找到: [32]http://www.scripps.edu/~jsmith/jazip/ 關於 LILO 的設定相關資訊可以在下面的 mini HOWTO 中找到: [33]http://metalab.unc.edu/mdw/HOWTO/mini/LILO.html 關於 BootPrompt 的使用資訊可以在下面的 HOWTO 文件中找到: [34]http://metalab.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html 如果你想要把 Linux 安裝在 ZIP 磁碟機上,並且由 ZIP 磁碟機執行 Linux 的 話, 下面的 mini HOWTO 文件將提供你相關訊息: [35]http://metalab.unc.edu/LDP/HOWTO/mini/ZIP-Install.html Iomega 的網頁在: [36]http://www.iomega.com/. 此外,如果你想尋找在 PC 上寫並列埠應用程式的相關資訊的話,也許你會想看 看下面這個網頁: [37]http://www.lvr.com/parport.htm References 1. mailto:dansie@ibm.net 2. mailto:storm@chempro.che.ntu.edu.tw 3. mailto:dansie@ibm.net 4. mailto:storm@chempro.che.ntu.edu.tw 5. http://www.njtcom.com/dansie/zip-drive.html 6. http://metalab.unc.edu/mdw/HOWTO/Kernel-HOWTO.html 7. http://www.linux.org.tw/CLDP/Kernel-HOWTO.html 8. http://metalab.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html 9. http://www.linux.org.tw/CLDP/BootPrompt-HOWTO.html 10. http://www.iomega.com/zip/ 11. http://www.iomega.com/zip/products/parallel_port.html 12. http://www.torque.net/~campbell/ 13. file://localhost/tmp/zh-sgmltools.9317/ZIP-Drive.txt.html#sec-more-info 14. http://www.iomega.com/zip/products/scsi.html 15. mailto:Philippe_Andersson@ste.scitex.com 16. http://www.torque.net/~campbell/imm.tar.gz 17. http://www.iomega.com/zip/products/insider.html 18. http://www.linuxgazette.com/issue28/lg_tips28.html#atapi 19. http://www.iomega.com/zip/products/usb.html 20. http://peloncho.fis.ucm.es/~inaky/USB/news.html 21. http://www.torque.net/~campbell/imm.tar.gz 22. http://www.torque.net/~campbell/ 23. http://www.cyberelk.demon.co.uk/parport.html 24. file://localhost/tmp/zh-sgmltools.9317/ZIP-Drive.txt.html#sec-performance 25. http://metalab.unc.edu/LDP/HOWTO/mini/ZIP-Install.html 26. http://www.linux.org.tw/CLDP/mini/ZIP-Install.html 27. http://www.torque.net/linux-pp.html 28. http://www.torque.net/~campbell/ 29. http://www.torque.net/linux-pp.html 30. http://www.cyberelk.demon.co.uk/parport.html 31. http://metalab.unc.edu/mdw/HOWTO/mini/Install-From-ZIP.html 32. http://www.scripps.edu/~jsmith/jazip/ 33. http://metalab.unc.edu/mdw/HOWTO/mini/LILO.html 34. http://metalab.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html 35. http://metalab.unc.edu/LDP/HOWTO/mini/ZIP-Install.html 36. http://www.iomega.com/ 37. http://www.lvr.com/parport.htm