Zip Drive Mini-HOWTO <author> 作者:Kyle Dansie <tt><htmlurl url="mailto:dansie@ibm.net" name="dansie@ibm.net"></tt><newline> 譯者:楊尚峰 <tt><htmlurl url="mailto:storm@chempro.che.ntu.edu.tw" name="storm@chempro.che.ntu.edu.tw"></tt> <date>v2.5, 07 March 2002 翻譯日期:12 May 2002 <abstract> 這份文件提供你一個在 Linux 上設定與使用 Iomega ZIP 磁碟機的快速指引。 </abstract> <toc> <!-- Begin the document --> <sect>簡介 <p> Iomega ZIP 磁碟機是一種很受歡迎的抽取式磁碟機。ZIP 磁碟機有很多不同的版本: <itemize> <item> 並列埠(Parallel Port) <item> SCSI <item> IDE - ATAPI <item> Plus </itemize> 其中,最受歡迎的似乎是並列埠的版本,主要是因為並列埠版本的機器上市已有一段不短的時間,並且價格低廉。 SCSI 版本的機器雖然也上市了一段時間了,但是因為需要有 SCSI 配接卡,而 SCSI 卡並不是人人都有的,因此,並沒有如並列埠版本般流行。 ATAPI 版本的機器現在則似乎越來越常見了。 Plus 是一個較新的 ZIP 磁碟機版本,它具有自動偵測磁碟機是連接在並列埠或者 SCSI 介面的能力。 本文件主要會將焦點放在並列埠的版本上,然而也會提供一些其他版本機器的提示。 <p> 本文件包含了一些其他人所收集及發表的資訊,尤其是: <itemize> <item> Grant Guenther, grant@torque.net <item> Scot Wilcoxon, sewilco@fielday.mn.org <item> Joe Mack, mack@ncifcrf.gov <item> Byron Jeff, byron@cc.gatech.edu </itemize> 我非常感謝他們的重要貢獻以及指正我所犯的錯誤。 特別感謝完成 0.26 版的 ppa 驅動程式以及這個 HOWTO 的原始版本作者 Grant Guenther 。 如果發現本文件有任何錯誤或疏失,請讓我知道: <htmlurl url="mailto:dansie@ibm.net" name="dansie@ibm.net"> 如果有任何翻譯上的錯誤或疏失,也請讓譯者知道: <htmlurl url="mailto:storm@chempro.che.ntu.edu.tw" name="storm@chempro.che.ntu.edu.tw"> <sect1> 本文件的發源地 <p> 本文件的最新原文版本可以在這裡取得: <url url="http://www.njtcom.com/dansie/zip-drive.html"> <sect>快速上手指引 <p> 現在,你買了一台新的 ZIP 磁碟機,而你想要使用它。 有些 Linux 的發行版本(Distribution)已經包含了 ppa 模組。 你可以試著以 insmod ppa 指令來載入 ppa 模組以使用 ZIP 磁碟機。(請確定你有把 ZIP 磁碟機安裝妥當,並且在磁碟機內插有磁片。) 如果發現系統中沒有 ppa 模組,那麼你必須要調整核心組態設定。 我的機器上有兩個並列埠,一個接 ZIP 磁碟機,而另一個接印表機。 這樣可以免去切換與插拔電纜線的麻煩。 設定系統核心(kernel)組態: <itemize> <item> 切換工作目錄至 /usr/src/linux <item> make xconfig <item> 選擇 scsi support = Y <item> 選擇 scsi disk support = Y <item> 選擇 Iomega zip support as a module <item> 選擇 printer support also as a module <item> 結束並儲存設定 <item> make dep <item> make clean <item> make zImage or zlilo or zdisk <item> make modules <item> make modules_install </itemize> 接下來,要使用 ppa 驅動程式: <itemize> <item> 載入 ppa 模組: <tt>insmod ppa</tt> <item> 建立一個掛載點(mounting point): <tt>mkdir /zip</tt> <item> 插入一片已經以 Windows 檔案系統格式格式化好的 ZIP 磁片到 ZIP 磁碟機中。 <item> 將 ZIP 磁片掛載(mount)起來: <tt>mount -t vfat /dev/sda4 /zip</tt> <item> 使用任何標準的檔案指令,例如 <tt> l /zip, ls /zip, df, cp,</tt> <item> 當你工作完成以後: <tt> umount /zip </tt> </itemize> 如果你在上面的操作步驟中遇到任何問題,請參考接下來的各章節以獲得更詳細的說明。 <sect> 建立一個能使用 ZIP 磁碟機的核心 <p> 要在 Linux 下使用 ZIP 磁碟機,你必須要有一個支援 SCSI 裝置,支援 SCSI 磁碟,以及支援你所用的主配接器(Host Adapter)的核心。 如果你對於如何建立核心並不熟悉,你可以由 <url url="http://metalab.unc.edu/mdw/HOWTO/Kernel-HOWTO.html" name="Linux Kernel HOWTO"> 獲得相關資訊<tt><bf>[譯者註]</bf></tt>。 <bf><tt>[譯者註] 中文化的 Linux Kernel HOWTO 可以在 <url url="http://www.linux.org.tw/CLDP/Kernel-HOWTO.html" name="CLDP Linux Kernel HOWTO"> 中找到。</tt></bf> 建立核心的第一步是設定核心組態。下面會告訴你哪些核心設定選項必須要選定。 首先, <tt> cd /usr/src/linux</tt>。有許多方法可以進行組態設定。 在 X window 下我用 <bf>make xconfig</bf>。 此外,在命令列下,還可以用 <tt>make menuconfig</tt> 或 <tt>make config</tt>。然而,最簡單的方法是用 xconfig。 在 <bf>SCSI Support</bf> 組態群組中,選定 <bf>SCSI support = Y</bf>。另外也要選定 <bf>SCSI disk support = Y</bf>。 在 <bf>SCSI low-level drivers</bf> 組態群組中,你要選定 <bf>IOMEGA Parallel Port ZIP drive SCSI support = M</bf>。 "M" 代表設定成模組。 在 <bf>Character Devices</bf> 組態群組中,找到並選定 <bf>Parallell Printer support = M</bf>。 如果你對上面的步驟感到任何一點點的不確定,那麼在編譯核心時,請使用 <tt>make zdisk</tt> 的編譯方式。 這樣會建立並安裝核心到軟碟機上。如此一來,如果你因為某些原因而搞砸了,在硬碟上你仍然還有一個可以正常開機的系統。 現在,以下列的步驟建立核心: <itemize> <item> make dep <item> make clean <item> make zImage 或 zlilo 或 zdisk <item> make modules <item> make mdoules_install </itemize> <bf>[小提示]</bf> 如果你想記錄在 make zImage 過程中的螢幕輸出的話,你可以用下列指令: <tscreen><verb> make zImage 2>&1 | tee zImage.out </verb></tscreen> 十分建議你將編譯過程記錄下來,尤其是當編譯過程有發生錯誤,或者核心組態設定有錯的時候, 你可以在記錄檔中找到相關的錯誤訊息。這樣會方便你在向別人求助時能提供相關訊息。 此外,你必須將模組載入。在我的系統上,我只是在 boot.local 中加了下面幾行: <itemize> <item> insmod ppa <item> insmod lp </itemize> 我的系統是 SuSE 5.3 ,而這個檔案在 /etc/rc.d 下。 這個檔案的名稱和路徑在每個發行版本中都會略有不同,但總會有一個這樣的檔案,用來紀錄一些你自己希望在系統啟動時,自動執行的命令。 你應該找到並使用你所安裝的發行版本中相對應的檔案<tt><bf>[譯者註]</bf></tt>。 <bf><tt>[譯者註] 在 RedHat 和 Slackware 這兩個發行版本中,這個檔案是 /etc/rc.d/rc.local。</tt></bf> 現在,<tt>關閉系統並重新啟動</tt>。 你也可以將全部或者部分的 SCSI 裝置設定建成模組。 如果你這樣做,在你試著使用 ZIP 磁碟機前,記得要先確定載入 scsi.o ,接下來載入 sd.o ,最後載入你的主配接器的模組。 <sect1> SCSI 版本 <p> 如果你已經有一台 SCSI 硬碟,而且你將 ZIP 磁碟機接在同一個 SCSI 控制器上,那麼你不需要變更核心的組態設定;否則,你很可能必須建立一個新的核心。 如果你在建立一個可以使用 SCSI ZIP 磁碟機的核心,你應該要開啟支援 SCSI 以及 SCSI 磁碟機的設定選項。 此外,你也必須選擇一個支援你所用的 SCSI 配接卡的驅動程式。如果你有 ZIP Zoom SCSI 配接卡,請選擇 aha152x 這個驅動程式。 請務必讀過在 SCSI HOWTO 文件中,有關你所使用的 SCSI 配接卡的相關資訊,並且務必讀過在 Linux 核心原始程式碼目錄下,drivers/scsi 目錄下所有的 README 檔。 請特別注意是否有必須傳給核心以驅動你的 SCSI 配接卡的相關核心啟動參數。 例如,如果你是用 ZIP Zoom 介面卡,你將必須在開機出現 boot: 提示符號時,輸入類似 <tscreen><verb> aha152x=0x340,11,7,1 </verb></tscreen> 的核心參數(或者將這段參數加在你的 /etc/lilo.conf 中的 append 命令中)。 這列參數告訴驅動程式有關你的 ZIP Zoom 卡的輸出入埠位址以及中斷(IRQ)- 務必確定所用的數值與你卡上的硬體跳線器(Jumper)設定相符。 你也該看看 Paul Gortmaker 的 <url url="http://metalab.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html" name="BootPrompt HOWTO"> 以獲得更多有關如何設定與使用 LILO 或 LOADLIN<tt><bf>[譯者註]</bf></tt>。 <bf><tt>[譯者註] 中文化的 BootPrompt HOWTO 可以在 <url url="http://www.linux.org.tw/CLDP/BootPrompt-HOWTO.html" name="CLDP BootPrompt HOWTO"> 中找到。</tt></bf> <sect>ZIP 磁碟機 <p> Iomega ZIP 100 磁碟機最少有五種或六種不同版本。 Iomega 網站上有關這些磁碟機的部分在 <url url="http://www.iomega.com/zip/">。 所有的機種都能使用容量為 100 MB 的特殊 3.5" 磁片匣。 這種磁片實際上有 96 個磁柱(Cylinder),每個磁柱有 2048 個磁區,每個磁區有 512 位元組。這種磁片的實際容量通常為 96 MB。 外接式的機種有: <itemize> <item> 並列埠 <item> SCSI <item> Plus </itemize> 內接式的機種有: <itemize> <item> SCSI <item> IDE <item> ATAPI </itemize> 內接式的機種能夠裝在電腦機殼的 3.5 或 5.25 吋磁碟機槽。 外接式的機種則是裝在一個藍色小塑膠機殼中<tt><bf>[譯者註]</bf></tt>,並由外部的電源供應器供應電源。 <bf><tt>[譯者註] 早期曾有一段時間,EPSON 有代理外接式並列埠 ZIP 磁碟機,EPSON 所代理的機器的機殼顏色是白色的。</tt></bf> 不管是哪一種機型,每部 ZIP 磁碟機的前面板都會有一個按鈕。那是退片鈕。 當 ZIP 磁碟機被使用時,Linux 會鎖住磁片,然而若在此時按下了退片鈕,ZIP 磁碟機會『記起來』退片要求,並且在系統解除鎖定磁片後,立刻將磁片退出來。 <sect1> 並列埠版本的 ZIP 100 磁碟機 <p> 這個版本的 ZIP 磁碟機相關資訊可以在這裡找到:<url url="http://www.iomega.com/zip/products/parallel_port.html"> Linux 的 ZIP 驅動程式有幾個不同的版本。在 2.0.x 的核心附的是 0.26 版的 ppa.c 驅動程式。 如果你的核心版本低於 2.0.35,那麼你有一個<bf>老舊版本的</bf>驅動程式。 到 <url url="http://www.torque.net/~campbell/" name="David Campbell's page"> 來找找比較新的版本。在寫這篇 mini-Howto 時,最新的版本是 1.42 版<tt><bf>[譯者註]</bf></tt>。 <bf><tt>[譯者註] 在我翻譯這篇 mini-Howto 時(May 1999),最新的版本仍是 1.42 版。</tt></bf> 1.4x 版驅動程式的自動硬體組態偵測功能實在太棒了。 你不需要告訴驅動程式你的並列埠的基底記憶體位置,驅動程式會自動偵測並列埠的標準基底位址,如果偵測到 ZIP 磁碟機的話,還會自動連接磁碟機。 最常遇到的錯誤是在載入 ppa 驅動程式前,先載入了 lp 印表機模組。ppa 驅動程式必須在 lp 模組之前載入。 ppa 驅動程式之所以必須先載入的原因是因為 lp 模組會佔用 ZIP 磁碟機所用的輸出入埠。 另外也請確定所有電纜都有穩固的連接妥當。 如果你一切都做對了 :) 你會在開機時看到類似這樣的訊息: <verb> 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) </verb> 你能夠用 dmesg | more 指令來查看開機訊息。 你也可以用 dmesg > dmesg.txt 指令將開記訊息存到檔案中。 當你試著找出安裝上的錯誤時,這個檔常常十分有用。 此外,也請看看 "<ref id="sec-more-info" name="取得更多最新資訊">" 這個章節。 <sect1> SCSI 外接式版本 <p> Iomega 網站上有關這種磁碟機的部分在 <url url="http://www.iomega.com/zip/products/scsi.html">。 SCSI 介面的外接式 ZIP 磁碟機有兩個 DB25F 接頭及兩個設定開關。 其中一個開關是用來設定磁碟機的標的位址<tt><bf>[譯者註]</bf></tt>。能夠選擇的值限制在 5 或 6。 另一個開關是當 ZIP 磁碟機是 SCSI 電纜上串接的最後一個裝置時,用來開啟內部終端電阻用的。 25 針的 SCSI 接頭是採用類似麥金塔(Macintosh)電腦所用的配線方式。 購買磁碟機時,會隨貨附一條麥金塔的 SCSI 電纜線,然而,若你的 SCSI 配接卡是用 Centronics 接頭或者高密度接頭的話,標準 SCSI 電纜線以及轉換接頭應該很容易取得。 <bf><tt>[譯者註] 原文是 target address,由語意判斷,應該是指 SCSI ID。</tt></bf> 我沒看過內接式的 SCSI ZIP 磁碟機,但我猜應該也有一個 50 針 DIP SCSI 接頭以及兩個一樣的設定開關。 請確定你所設定的標的位址沒有和在同一個匯流排上的其他 SCSI 裝置相衝突。 也請確定在 SCSI 電纜線上串接的最後一個裝置有啟動內部終端電阻,或者裝上一個外部終端電阻。 如果你有內接式的 SCSI 硬碟或光碟機,並且你將你的 ZIP 磁碟機接在同一個 SCSI 配接卡上,你應該檢查看看是否有必須要移除的終端電阻。 只有 SCSI 匯流排上最末兩端必須接上終端電阻。 如果你的 SCSI 匯流排上同時有內接式以及外接式的 SCSI 裝置,那麼最後的一個內接以及外接裝置上必須接上終端電阻,但是 SCSI 配接卡本身不需要終端電阻。 請確定所有的電纜線都有緊緊地接好。 核心的組態設定和設定內接式版本時一樣。請參考下面 SCSI 內接式版本章節中的設定範例。 <sect2> ZIP ZOOM 主配接卡 <p> ZIP Zoom 是 Iomega 賣的 SCSI 主配接卡。 這塊卡的設計實際上是基於 <bf>Adaptec AHA1520</bf> 系列配接卡。 這塊卡上有一個與隨 ZIP 磁碟機附贈的電纜線相容的,Macintosh 用的 DB25F 外接接頭。 支援這塊配接卡的 Linux 驅動程式是 <bf>aha152x</bf>。 <sect1> SCSI 內接式版本 <p> 硬體的安裝請見『安裝與參考指引』。請注意所使用的 SCSI ID,IRQ 及 I/O 埠位址(稍後你將會需要這些資訊)。 <bf>請小心</bf> ZIP Zoom 這塊卡在硬體線路上直接設定了使用 SCSI ID 7。 在接下來的命令列中所提到的 SCSI ID 是指 SCSI 卡的 ID ,而不是磁碟機的。 卡和磁碟機必須使用不同的 SCSI ID。例如,如果卡的 ID 是 7,則磁碟機使用 5 或其他的 ID。 在開啟了支援 『SCSI』,『SCSI disk』及『AHA152X/2825』等的組態設定後,重新編譯核心,並請安裝新的核心 :-( 請決定適合你的系統的核心啟動參數: <tt> aha152x=[I/O Port][,IRQ][,SCSI ID][,RECONNECT][,PARITY] </tt> 例如: <tt> aha152x=0x140,10,7,1 </tt> 如果你是使用 LILO,將核心啟動參數加到 lilo.conf 的 append 命令中。 (例如將 append = "aha152x=0x140,10,7,1" 加到 lilo.conf 中) 如果你是用 LOADLIN,那麼將你的核心啟動參數加到你用來啟動 loadin 的命令中。 <verb>(例如 loadlin c:\vmlinuz root=/dev/hda3 aha152x=0x140,10,5,1 ro)</verb> <sect1> ZIP Plus - IMM 驅動程式 <p> 這是一種<bf>比較新</bf>的外接式 ZIP 磁碟機。 <bf>Zip Plus</bf> 不是用 ppa 驅動程式, 而是使用 <bf>imm</bf> 驅動程式。 <htmlurl url="mailto:Philippe_Andersson@ste.scitex.com" name="Philippe Andersson"> 提供了這段有關 ZIP Plus 的 imm 驅動程式的說明。謝謝 Philippe。 首先,重建一個包含下列組態的核心: <itemize> <item>modules support <item>SCSI support <item>SCSI Disk support <item>lp 建成模組 (如果你需要的話) </itemize> 你應該有注意到我們並沒有選擇任何低階的 SCSI 驅動程式。這沒關係 -- 我們將在稍後另外建立它。 接下來,你要到 Dave Campbell 的網站取得驅動程式的原始程式碼 (<url url="http://www.torque.net/~campbell/imm.tar.gz" name="http://www.torque.net/~campbell/imm.tar.gz">)。0.18 版是在寫這份文件時(Aug. '98)的最新版本<tt><bf>[譯者註]</bf></tt>。 將檔案解壓縮到某目錄下(例如解到 <tt>/usr/src</tt> 下面)。接下來執行 <tt>make</tt>。 你就會得到 imm 驅動程式模組(<tt>imm.o</tt>)。將該模組複製到 <verb>/lib/modules/$(uname -r)/scsi</verb> 下。 <bf><tt>[譯者註] 在我翻譯這篇 mini-Howto 時(Jun. 1999),最新的版本仍是 0.18 版。</tt></bf> 如果你已經載入 lp 模組(可以使用 <bf>lsmod</bf>(1) 命令檢查),先卸除 lp 模組(<tt>rmmod lp</tt>),然後載入 <tt>imm.o</tt> 模組(<tt>insmod imm</tt>)。 到這裡,你已經完成了基本的設定。 如果你在載入 imm 模組時, ZIP 磁碟機並沒有連接好或者沒有打開電源,你會看到 "init_module: Device or resource busy" 的錯誤訊息,而無法載入模組。(附帶一提,當你要連接 ZIP 磁碟機到電腦主機時,似乎不需要將電腦關機 -- 只要確定 imm 模組沒有載入,而且磁碟機的電源是關的,接著只要將電纜線插好,打開電源,並載入模組就可以了。) 如果 ZIP 磁碟機已經接好而且也打開電源了,但是沒有插磁片在裡面,那麼 imm 模組還是會載入,但是你會看到無法讀取磁碟分割表的錯誤訊息。 這沒關係,因為當你在磁碟機內插入磁片,系統會自動讀取分割表。 若你在載入模組時,ZIP 磁碟機內有插磁片,那你會看到該磁片的分割區列表以及寫入保護狀態等等的完整資訊。 下面是一個載入模組時所看到的磁片資訊的例子: <verb> 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:~# </verb> 最後值得一提的是,當磁片被掛載以後,這版的驅動程式會將磁片鎖住。 如果在這時按下退片鈕,磁片並不會退出來,但是磁碟機會『記得』你的退片要求,並在你卸載(umount)磁片後立刻退片。 <sect1> ATAPI 版本 <p> 有關這種機型的資訊可以在這裡找到:<url url="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 (我現在在使用的發行版本)下都測試過<tt><bf>[譯者註]</bf></tt>。 我所需要做的只是開啟 <bf>ATAPI floppy support</bf> 的核心組態設定。OpenLinux 的核心並沒有內定開啟這個功能。 <bf><tt>[譯者註] 我本身在 Slackware 3.3/3.6 以及 RedHat 5.2 下都能正常使用 ATAPI ZIP,測試過的核心版本有 2.0.35, 2.0.36, 2.2.1, 2.2.2 等。</tt></bf> 不需要其他額外的驅動程式。ZIP 磁片會以延伸分割區(Extended Partition)的形式掛載在第 4 個分割區。 例如,我的狀況是掛載 HDB4。我以 noauto 的掛載選項將 ZIP 磁片掛載於 /mnt/zip,但是我想用自動掛載應該也不會有問題。 我想唯一可能的問題是退片。我總是在要退片前,先卸載磁片。 在 1998 年五月號的 Linux Gazette 中,有對於在 Linux 下安裝 ATAPI ZIP 的更詳細介紹。 請參考 2 cent tip 的部分。 <url url="http://www.linuxgazette.com/issue28/lg_tips28.html#atapi"> <sect1> IDE 版本 <p> 我沒用過 IDE 版本的 ZIP。Eric Backus 提供下面這些說明。謝謝 Eric。 我有一台 IDE ZIP 磁碟機,是在一年前隨著我的 Gateway 2000 電腦一起買來的。 我想這種機型絕大部分都是在 ATAPI 版本的 ZIP 發行前,由這類的大型 OEM 公司隨貨賣出的。 好消息是:要支援這種磁碟機,不需要額外的核心模組或者核心組態變更。 這種機型對核心而言,就跟 IDE 硬碟一樣。 我能在 2.0.31 及 2.0.32 版的核心上直接使用。 而壞消息是:因為不是使用 ATAPI 協定,所以你無法啟動使用 SCSI 轉 ATAPI 的核心組態, 也就是說,你不能用 mtools 來開啟磁片的防寫功能以及退片<tt><bf>[譯者註]</bf></tt>。 <bf><tt>[譯者註] 請參考 mzip(1) 指令以及 mtools 的 man page 說明。</tt></bf> <sect1> USB 版本 <p> 這台磁碟機的資料可以在這裡找到:<url url="http://www.iomega.com/zip/products/usb.html"> 這種磁碟機看起來很酷,而且 USB 介面也看起來很棒。 唯一的問題是目前 Linux 對 USB 介面的驅動程式還在發展中。 因此,就目前而言,這種 ZIP 磁碟機無法在 Linux 下使用。 看看這個網站以取得最新資訊: <url url="http://peloncho.fis.ucm.es/~inaky/USB/news.html"> <sect1> ZIP 250 版本 <p> 這種機型是 1999 年 1 月推出的新機型。我買了一台,而且在 Linux 下使用非常良好。 所要做的只有使用由 <url url="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 指令查詢。 <sect> 安裝過程故障排除 <p> 當你執行 <tt>insmod ppa</tt> 指令,卻得到下面這樣的錯誤訊息: <code> root# insmod ppa Using /lib/modules/version/kernel/drivers/scsi/ppa.o /lib/modules/version/kernel/drivers/scsi/ppa.o: unresolved symbol parport_register_device_Rf274b881/lib/modules/version/kernel/drivers/scsi/ppa.o: unresolved symbol parport_unregister_device_Rb0814cd3 /lib/modules/version/kernel/drivers/scsi/ppa.o: unresolved symbol parport_release_Rf8ec22de /lib/modules/version/kernel/drivers/scsi/ppa.o: unresolved symbol parport_claim_R4c7222c6 /lib/modules/version/kernel/drivers/scsi/ppa.o: unresolved symbol parport_enumerate_Rbc847709 /lib/modules/version/kernel/drivers/scsi/ppa.o: Note: modules without a GPL compatible license cannot use GPLONLY_ symbols </code> 造成這個問題的原因是因為你沒有在 'Printer Configuration' 中加入一台印表機至你的系統中。 在你執行 'insmod ppa' 前,你必須先增加一台印表機。 以 KDE 視窗環境而言,以滑鼠點選 [開始]->[系統]->[印表機設定], 以 /dev/lp0 (或使用 lp1 或 lp2,視 dmesg |more 的輸出而定)新增一個名為 'sometestprinter' 的印表機。 現在,測試看看新增的印表機: <it><tt>/etc/rc.d/init.d/lpd restart </tt></it> 如果 lpd daemon 順利啟動了,表示新增的印表機設定沒有問題。 接下來,試試: <code> bash# insmod ppa bash# insmod lp </code> 你應該就不會遇到任何錯誤了。 <sect> 使用 ZIP 磁碟機 <p> 如果你已經建立好所有需要的元件,那麼核心應該能在開機時辨識出你的配接卡以及磁碟機。 如果你是用可載入式模組的方式建立驅動程式的話,接下來的討論僅適用於模組以載入後的情形。 在大部分情形下,SCSI 和 並列埠版本的磁碟機表現相同,除了並列埠版本的比較慢以外。 <sect1> Fdisk, mke2fs, mount, 等等 <p> 一旦你知道你的 ZIP 磁碟機所屬的磁碟裝置名稱,你就已經準備就緒。 你能夠使用 Linux 的磁碟管理命令來對該磁碟裝置進行操作。 <tt>fdisk</tt>(或者 <tt>cfdisk</tt>)是用來規劃磁碟的分割表。 <tt>mke2fs</tt> 能用來將分割區格式化(Format)成 ext2 檔案系統 -- 這是 Linux 下最常使用的檔案系統。 <tt>mount</tt> 則是用來將格式化好的分割區連接到你的目錄體系中。 如果你對這些工具並不熟悉,你應該研讀一下這些工具的手冊。 請小心注意 <tt>fdisk</tt> 程式現在有許多十分不一樣的版本 - 請務必小心。 我將陳述兩個常見的案例。 <sect1> 使用一片已經用 DOS 格式化好的磁片 <p> 如果你有一張原本由 Iomega 的工具程式格式化成 DOS 檔案結構的 ZIP 磁片,那麼掃瞄分割表時應該會發現磁片上有一個分割區 <tt>/dev/sda4</tt>。 你應該先建立一個用來掛載 ZIP 磁片的目錄,例如 <tt>/zip</tt>,然後以 MS-DOS 檔案系統格式將磁片掛載起來: <tscreen><verb> mkdir /zip mount -t vfat /dev/sda4 /zip </verb></tscreen> 你也可以用 msdos 來取代上面的 vfat。兩者的差別在於, vfat 支援長檔名,而 msdos 不支援。 現在,磁片上的檔案應該會出現在 /zip 目錄下。 當磁片被掛載了,你將無法由磁碟機中將磁片退出。 當你完成了對磁片的存取,你可以卸載磁片來切斷磁片和目錄體系的連接,並取出磁片: <tscreen><verb> umount /zip </verb></tscreen> 一旦你已經建好 /zip 這個掛載點 - 你不需要再建立一次。 所以稍後你能再將另一片磁片掛載在那兒。 <sect1> 重新將磁片格式化成 Linux 格式的磁片 <p> 如果你想要消去 ZIP 磁片上原有的檔案系統,並建立 Linux 的檔案系統,你應該使用 fdisk 來重新規劃整片磁片的分割區: <tscreen><verb> fdisk /dev/sda </verb></tscreen> 並且刪除所有已存在的分割區(用 fdisk 的 <tt>d</tt> 命令)。 接著,用 <tt>n</tt> 命令建立一個新的分割區,選擇主分割區號碼 1 ,用 <tt>w</tt> 命令將分割表寫到磁片上,然後用 <tt>q</tt> 命令離開 fdisk 程式。 接著格式化分割區: <tscreen><verb> mke2fs /dev/sda1 </verb></tscreen> (數字 1 就是你在 <tt>fdisk</tt> 中給定該分割區的分割區編號)。 現在,你可以將磁片掛載起來: <tscreen><verb> mount -t ext2 /dev/sda1 /zip </verb></tscreen> (再次使用我們之前建立的掛載點)。 <sect1> fstab 檔 <p> /etc/fstab 能讓你對 mount 命令進行設定。 我希望系統上登錄的任何使用者都能掛載及寫入 ZIP 磁片,因此我在 fstab 的檔案結尾加了兩列像這樣的內容: <verb> /dev/sda1 /zip ext2 noauto,rw,user,nosuid,sync /dev/sda4 /zipdos vfat noauto,rw,user,nosuid,sync,mode=0777 </verb> 這裡假設你有一個 /zip 目錄和一個 /zipdos 目錄。 如果你要所有使用者都能夠讀寫 ZIP 磁片,請確定你設定了適當的存取權限,例如 <bf>chmod 666 /zip</bf>。 你必須以 root 的身份執行 chmod 命令。 上面 fstab 的內容也假設了你的 DOS 格式 ZIP 磁片的分割區編號是 4 (在我的系統是 sda4),以及 ext2(Linux)格式的磁片分割區編號是 1(sda1)。 你可以用 <bf>man mount</bf> 找到更多 fstab 檔案的設定選項資料。 如果你在 fstab 檔案中加入上面兩列設定,那麼你可以用 <bf> mount /zipdos </bf> 掛載 DOS 格式磁片。 如果你要掛載 Linux ext2 格式的磁片,那麼命令是 <bf> mount /zip </bf>。 <sect1> ZIP Tools 工具磁片 <p> 如果你想使用隨 ZIP 磁碟機附贈的磁片,還有一點額外的工作要做。 這些磁片在出貨時,軟體控制的寫入保護功能是被開啟的。 大部分的人在要在 Linux 下使用 ZIP 磁片時,會先在 DOS 下將寫入保護功能關閉。 Linux 無法存取被寫入保護鎖定的磁片,所以必須先用 Iomega 的工具程式來解除鎖定。 相信在 Linux 下,能用來管理磁片的寫入保護以及其他功能的程式,將在不久的將來發展完成<tt><bf>[譯者註]</bf></tt>。 <bf><tt>[譯者註] 現在已經有一些工具程式可以用來控制 ZIP 磁片的各種狀態,計有 mtools 中的 mzip(1) ,以及現在由 Mirko Kraft 所發展維護的 ziptool 等等。</tt></bf> <sect> 性能表現 <label id="sec-performance"> <p> 標準 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 模式選項。 另外,我將印表機接到第二個並列埠。 其次,我由 <url url="http://www.torque.net/~campbell/" name="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 秒。 <bf>性能表現摘要</bf> <p> 在搬移一個 10.6 MB 檔案的測試中,在使用 4 位元標準並列埠模式以及 0.26 版 ppa 驅動程式的情況下,速度最慢,時間是 7:00 及 7:15。 在使用新版(1.41 版)驅動程式,EPP 並列埠模式,並使用 ext2 檔案系統的情況下,速度最快,時間是 50 秒和 40 秒。 <sect> 常見問答集 <p> 這裡是一些我常被問到的問題。請在再次發問前,先找找看這裡的答案! <sect1> 我能夠將印表機串接在並列埠版本的 ZIP 磁碟機上嗎? <p> 可以,但是就目前而言,你不能在同一個並列埠上同時掛載啟動 lp 及 ppa 驅動程式模組。 目前正在設計以及開始實做一個資源分享協定,但在 Linux 2.0 釋出前不會正式發行。 如果你喜歡冒險,那麼取得並安裝 2.1.x 版的核心,你就能使並列埠資源共享。 請參考 <url url="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 到更新的版本。 <sect1> 是否有計畫在 ppa 中支援 EPP/ECP 模式的並列埠? <p> 0.26 版的程式並不支援 EPP。而 1.41 版則<bf>有</bf>支援 EPP。 這版的程式也比舊版快多了。更詳細的資訊請參考"<ref id="sec-performance" name="性能表現">"的部分。 <sect1> 我能夠將 Linux 安裝在 ZIP 磁碟機上,並由 ZIP 磁碟機上啟動執行嗎? <p> 已經有人這麼做了。這種安裝方式是製作一個急救磁片或者測試安裝時的好方法。 <url url="http://metalab.unc.edu/LDP/HOWTO/mini/ZIP-Install.html"><tt><bf>[譯者註]</bf></tt> <bf><tt>[譯者註] 中文化的 ZIP Install mini-HOWTO 可以在 <url url="http://www.linux.org.tw/CLDP/mini/ZIP-Install.html" name="CLDP ZIP Install mini-HOWTO"> 中找到。</tt></bf> <sect1> 我能用 ZIP 磁碟機開機嗎? <p> 這要視你所使用的主配接器種類而定。如果你的主配接器的 BIOS ROM 允許你由 SCSI ID 為 5 或 6 的裝置上開機,那麼你就能用 SCSI ZIP 磁碟機開機。 並列埠版本的 ZIP 磁碟機無法用來開機。 如果你的硬碟上有裝 DOS,而你想要啟動在 ZIP 磁片上的 Linux 系統,那麼你可以用 LOADLIN 。 你必須複製一份核心影像檔到 DOS 的硬碟上,而完整的 Linux 系統則需裝在 ZIP 磁片上。 請確定你所複製的核心檔的相關驅動程式組態設定是對的。 據我所知,目前常見的發行版本中,沒有任何一個有提供用來安裝於並列埠版本 ZIP 上的可開機安裝磁片。 <sect1> 為何 Iomega 使用第 4 個分割區? <p> 這是最常見到的問題,但我想沒有人知道確實的答案。 可能是他們頭腦不清楚吧?也許沒有特別的原因。 <sect1> 我要怎樣才能在開機時,自動將磁片掛載起來? <p> 你所要做的只有在你的 <tt>/etc/fstab</tt> 檔內加一行設定。 舉例來說,如果你開機時總會插一片 DOS 格式的磁片在 ZIP 磁碟機內,那你可以將 <tscreen><verb> /dev/sda4 /zip vfat defaults 0 0 </verb></tscreen> 加到你的 <tt>fstab</tt> 檔案中。 隨你所使用的發行版本而略有不同,但開機時,通常負責系統初始化的命令稿(Script)會試著在 fstab 內有紀錄的分割區上執行 fsck。 請注意,如果開機時你忘了放磁片或者放了錯誤格式的磁片,這樣可能會造成問題。 <sect1> 如果當我開機時沒有插磁片在磁碟機內,那麼會怎樣呢? <p> 系統核心會試著讀取磁片的分割表,但是會作業逾時。 然而,這沒什麼好擔心的。 一旦當你插了一片磁片到磁碟機內,並且試著進行讀寫等動作時,核心會重新讀取分割表。 提示:當你抽換磁片時,最好能夠用 fdisk 檢查一下新插入的磁片上的分割表結構。 某些 SCSI 主配接器上的 BIOS 會在系統開機期間試著讀取你的磁片上的分割表。 如果你不能將 SCSI 卡的這項功能關掉,那麼你可能會被迫在開機時,必須插一片磁片在磁碟機內。 <sect1> 我能夠把並列埠磁碟機當成真實的 SCSI 磁碟機來用嗎? <p> PPA-3 並列埠轉 SCSI 轉接器是被實做成一個 Iomega 稱為 VPI0 的 ASIC 單晶片。 這片晶片被內嵌於 ZIP 磁碟機控制卡上。 實際上是有一個 SCSI 匯流排存在,但是不是在能使用的形式下。 雖然我還沒比較過這兩種卡,邏輯上似乎 VPI0 取代了傳統的 SCSI 匯流排外接延伸裝置所需要的電子緩衝電路。 <sect1> ppa 驅動程式能用在 Iomega 的並列埠磁帶機上嗎? <p> 不能。這些磁帶機是軟碟式磁帶機(floppy-tape drive),跟 SCSI 無關。 有些人表示對於應用我的方法,來試著找出傳輸協定,及發展這些磁帶機的驅動程式感到興趣。 第一步是要先讓 DOS 下的驅動程式能在 DOSemu 下使用。 到目前為止,我還沒聽說有成功的案例。 <sect1> ppa 驅動程式是否能在並列埠版的 SyQuest EZ135 上正常運作? <p> 不能。 EZ135 是一個內建 ShuttlePort 並列埠轉 IDE 轉換器的 IDE 磁碟機。 然而,這台磁碟機的驅動程式發展也已經有一些成果。到這兒瞧瞧: <url url="http://www.torque.net/linux-pp.html"> <sect> 取得更多最新資訊 <label id="sec-more-info"> <p> 最新版本的並列埠 ZIP 驅動程式(ppa.c)以及關於該驅動程式的技術資訊可以在下面 URL 找到: <url url="http://www.torque.net/~campbell/"> 許多並列埠外接裝置驅動程式的資訊可以在下面 URL 找到: <url url="http://www.torque.net/linux-pp.html"> 並列埠共享(Parallel Port sharing)的相關資訊可以在下面 URL 找到: <url url="http://www.cyberelk.demon.co.uk/parport.html"> 由 ZIP 磁碟機安裝 Linux(對於沒有 CD-ROM 的機器)的相關訊息可以在下面的 mini HOWTO 找到: <url url="http://metalab.unc.edu/mdw/HOWTO/mini/Install-From-ZIP.html"> ziptool 程式的 X 前端介面可以在下面 URL 找到: <url url="http://www.scripps.edu/~jsmith/jazip/"> 關於 LILO 的設定相關資訊可以在下面的 mini HOWTO 中找到: <url url="http://metalab.unc.edu/mdw/HOWTO/mini/LILO.html"> 關於 BootPrompt 的使用資訊可以在下面的 HOWTO 文件中找到: <url url="http://metalab.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html"> 如果你想要把 Linux 安裝在 ZIP 磁碟機上,並且由 ZIP 磁碟機執行 Linux 的話, 下面的 mini HOWTO 文件將提供你相關訊息: <url url="http://metalab.unc.edu/LDP/HOWTO/mini/ZIP-Install.html"> Iomega 的網頁在: <url url="http://www.iomega.com/">. 此外,如果你想尋找在 PC 上寫並列埠應用程式的相關資訊的話,也許你會想看看下面這個網頁: <url url="http://www.lvr.com/parport.htm"> </article>