Ftape-HOWTO Kai Harrekilde-Petersen, v1.7.1, 13 February 1996 for ftape-2.06 佐藤亮一, v1.7.1j, 2 October 1996 この HOWTO は Linux の ftape ドライバーにできること,できないことの概 要を記したものです.ftape ドライバーインターフェースは QIC-40, QIC-80, QIC-3010, QIC-3020 及びこれらの互換ドライプのみをサポートしていま す.QIC-3010, QIC-3020 は Travan (TR-2, TR-3) の名称でも知られているも のです.上記のドライブはいずれもフロッピーディスクコントローラーを介し て接続するタイプのものです. Linux の ftape ドライバ−は SCSI あるいは QIC-02 テープドライプはサポートしていません.また DAT ドライブは通常 (常に?)SCSI コントローラーと接続します.本文書は Linux HOWTO 文書の 一つとして作成されたものです.HOWTO 文書の目録は で入手できます.また HOWTO本体 につ いては公式サイトの一つである sunsite.unc.edu:pub/Linux/doc/HOWTO から (ftpを使って)入手できます.あるいは Linux 関連文書プロジェクトのホー ムページある から取得するという 方法もあります. 注意: この文書はかなり以前に書かれたものなので、いまどきの Linux 環境 にはあてはまらない箇所があります。 (JF Project) 1. Legalese 本文書は,ftape ドライバーに関する「よくある質問」(FAQ)とHOWTO を併せ たものです.(Copyright (C) 1993, 1994, 1995, 1996 Kai Harrekilde- Petersen) 著作権の取り扱いについて: この文書は「削除・変更を一切加えない限り」自由に配布することが許されて います.この文書を部分的に配布する場合には,著作権に関する記述を併記す ると共に,「配布された部分がHOWTOの全体ではないこと」および本HOTWO全体 の入手方法を付記してください.本文書を商用配布に同梱する場合にも,著者 の事前同意が不要であることを特に明記しておきます.しかしながら,商用配 布に際してはご一報くださいますようお願いいたします. 本HOWTOの翻訳は自由です.ただし,著作権に関する記述はそのまま併記して ください.更に当文書翻訳者に関する記載を付け加えてください. DISCLAIMER: While I have tried to include the most correct and up-to-date information available to me, I cannot guarantee that usage of the information in this document does not result in loss of data. I provide NO WARRANTY about the information in the HOWTO and I cannot be made liable for any consequences for any damage resulting from using information in this HOWTO. 著者は入手できる最新かつ最も正確な情報を記載すべく努力しています.しか し「この文書に記載されている情報を利用した結果,データーが失われること がない」との保証は致しかねます.著者はこのHOWTOに記載した情報に関する 一切の責任を負いません.またこのHOWTOに記載されている情報を利用した結 果生じるいかなる損害に対しても責任を負いません. 2. ニュースフラッシュ これは厳密な意味ではニュースとは言えないでしょう.とはいうもの の,ASCII 版及び HTML 版には permuted セクション見出しがあります.これ は LDP プロジェクトが採用している SGMLシステムの特色です.この点につい ては著者もどうしようもありません.HTML 版では著者の記載したヘッターが もう一度そのまま繰り返されているように見える場合も少なくありませんが, こうした場合にも内容は全く同一です.GNU info 版には,"(Un)supported drives" というセクションはありません.これは info システムが "(Un)" と いう部分を別ファイルの参照と判断してしまうためです. 履歴 version 1.7.1 (February 13, 1996) o ftape-2.06bへの対応 version 1.7 (January 28, 1996) o ftape-2.06,modules-1.3.57への対応 version 1.6.2 (January 23, 1996) o Connor TST3200R ドライバ鴫に関する記述を追加 o 2Mbps fdc にかんする情報を更新 version 1.6.1 (January 16, 1996) o 細部の訂正 version 1.6 (January 10, 1996) o ftape の管理者交代 o v2.05への対応 o 新型ドライプ関連情報の追加 Bas Laarhoven 氏は本業が多忙を極めているので,ftape のメンテから撤退し ました (declined from),しかしながら同氏は,ftape に対する側面からの援 助は続けたいとの意向を表明しています.同氏に代ってメンテ作業に従事して いるのは,著者である Kai Harrekilde- Petersen で す.著者は ftpe 本体と同 HOWTO の両方の維持管理に携わっています.HOWTO の更新は,テンポのバラつきは大きくなるものの(今まで通り大きいもの の?)今後も続けていく方針です. 3. The preliminaries 筆者は,HOWTO の維持管理に従事してはいるものの,もう自分自身では ftape を使用していません.従って「どのドライブを購入すればいいか?」という質 問にたいしてはあまり最新のアドバイスを提供できません.この種の問題に関 しては, comp.os.linux.help で質問するか vger.rutger.edu のテープ関す るログを参照するようお薦めします(以下の,ftape の開発に加わるには?の 項をご覧ください).問題がたとえ部分的にではあっても解決した場合には, 問題及びその解決法の要旨を投稿するようにしてください.また,発見された 解決法を著者 () にも御送付下されば幸いです.必要に応 じて本 HOWTO に追加させていただきます. 著者はメイルを毎日読んでいます.何方にたいしても返事をさし上げるべく努 力しておりますが,間髪を入れずお答えできるという自信はありません.また ニュースグループは (comp.os.linux.help et al) たまにしか目を通しており ません.というのもインターネットにはモデムを介してしかアクセスできな い,ニュースをオンラインで読むしかないという環境に著者は置かれているの です. この文書を CD-ROM 上の文書あるいは印刷配布の一部として入手された方は, 是非 Linux Documentation のホームページ あるいは ftp サイト で最新版がないかどうかを お確かめ下さい.転ばぬ先の杖となるかもしれません. 3.1. ftape とは何か? ftape とはフロッピーコントローラーに接続するタイプの低価格テープドライ ブ各種を制御するためのドライバープログラムです. ftape そのものはバックアッププログラムではありません.ftape は,デバイ スファイル /dev/[n]rft[0-3] を介してテープドライプを使えるようにするた めのデバイスドライバーなのです(SoundBlaster 16 ドライバーを使えばサウ ンドカードが利用できるようになるのと同じことです). ftape は Bas Laarhoven 氏が「友人達から ECC (error correcting code) に関する若干の助言を得て」作成したものです.ftape の 著作権は同氏が保有しており,著作権の取り扱いについては GNUの General Public License に従うと定められています.この規定は「今後もそれをみん なで共有していこう.誰かがそれをコピーし再配布することを禁じるようなこ とはしない」という精神に基づいたものです. ftape はかなり安定しています.既にかなり前からこの状態に達していまし た.今回の主な変更点は,QIC-3010, QIC-3020 (Travan) テープフォーマット 及び若干の新しいテープドライブをサポートするようになった点です.ftape は大切なバックアップの作成にも十分使用できるだけの信頼性を備えています (しかしいつの日にか痛い目を見ないように,バックアップをチェックする習 慣をつけて下さい). ftape は,QIC-117, QIC-80, QIC-40, QIC-3010, QIC-3020 の各フォーマット のテープを使用するドライブをサポートしています. ftape は QIC-02, IDE (ATAPI), SCSI テープドライブをサポートしていませ ん.SCSI ドライブには /dev/[n]st[0-7] を介してアクセスきます.SCSI テープドライブはカーネルの SCSI ドライバーがサポートしています.SCSI テープドライブに関する情報は,SCSI-HOWTO から入手してください.1.3.46 以降のカーネルは ATAPI テープドライフをサポートしています.「サポート しているドライブ,サポートしていないドライブ」の項をも参照してくださ い. 4. ftape の入手法とインストール 4.1. ftape の入手法 ftape は世界各地の ftp サイトから入手できます.以下に主要2サイトを掲 げます. o ftp://sunsite.unc.edu/pub/Linux/kernel/tapes/ o ftp://www.pip.dknet.dk/pub/pip93/ sunsite は ftape を探す場合の正式サイトです.これに対し pip は著者自身 のプライベートサイトです.最新かつ最強の ftape をお探しの場合は,pip こそ最適の場所と言えるでしょう(ここはベータテスター用の場所であること をお忘れなく) 将来的には,このセクションにインストール法の解説を記載する予定です.し かしそれまでは,ftape 配布に付属している文書をお読みください. 4.2. ftape のインストールに必要なもの ftape を動かすためには以下の3つのソースが必要です. o ftape v2.06b o modules v1.2.8 あるいは v.1.3.57 o Linux kernel v1.2.系の内特定のバージョン あるいは v1.3.x 1.2.8 以前のカーネルに付属している modules-1.2.8 は使えないことに注意 してください.モジュールを更新する際には,カーネルの更新も必要となりま す. 1.3.57 以前のカーネルおよび 1.2.x に付属している modules-1.3.57 なら問 題なく使用できます(モジュールパッケージの開発者である Bjorn Ekwall も これの使用を推奨しています). 4.2.1. モジュールユーティリティ 新しいカーネル (1.1.85以降) にはローダブルモジュールという機能がありま す(Bjorn Ekwall, Jacques Gelinas 氏が開発したものです).これは(もし可 能であればの話ですが)古いカーネル用にコンパイルしたモジュールを新しい カーネルで使えるようにする機能です.ローダブルモジュールをサポートした カーネルをコンパイルするためには,modules-1.2.8.tar.gz, modules-1.3.57.tar.gz パッケージのいずれかが必要です.このパッケージは tsx-11.mit.edu, sunsite.unc.edu にあります.カーネルをコンパイルする前 に,このパッケージをコンパイルしインストールして下さい. 4.2.1.1. modules-1.3.57 の新機能にはどんなものがありますか ? 1.3.57 から,いわゆるカーネルデーモン (kerneld) 機能が標準カーネルに搭 載されるようになりました.カーネルデーモンというのは必要なモジュールを 適宜ロード・アンロードする機能です.この機能を使うためには,カーネル デーモンを機能を備えている modules-1.3.57 のパッケージが必要です. 4.2.1.2. modules-1.2.8 の新機能にはどんなものがありますか ? 1.2.8 のパッケージは,ftape をカーネルにロードするときに発生する有名な (infamous) insmod Oops バグをフィックスしています.このバグの原因 は,insmod が 4K バイトを越える静的データを含むモジュールを正しく取り 扱えない点にありました.しかし,このバグがなくなった点を除いて も,1.2.8 パッケージは長足の進歩を遂げています. 1.2.8 は,必要なモジュールを自動的にロードする機能であるカーネルデーモ ン機能を備えています.この機能を利用するためにはカーネル 1.2.x のパッ チが必要です. 1.3.57 以降のカーネルの場合は,この機能は標準装備となっ ています(上の記述をも参照してください) 4.2.1.3. モジュールユーティリティのインストール ファイルを適当な場所で展開してください.それから modules-1.3.57 (ある いは 1.2.8) ディレクトリーに移動し,'make all; make install' を実行し ます.注意:ファイル及びマニュアルページをインストールするためにはルー ト権限が必要です. 4.2.2. Linux カーネル Linux 1.2 の公開後かなりの月日が経過し,ほとんどの人は 1.2(あるい は1.3)への移行をすませたようです.まだ旧バージョンをお使いの方は,新 しいバージョンを利用するようになさるのがよろしいかと存じます.インス トール法その他の点で使い易くなった新バージョンのご使用をお薦めします. カーネルは下記の他,世界各地のサイトで入手できます. sunsite.unc.edu [152.2.22.81]: /pub/Linux/kernel/tapes/ tsx-11.mit.edu [18.172.1.2]: /pub/linux/sources/system/ ftp.funet.fi [128.214.248.6]: /pub/OS/Linux/PEOPLE/Linus/ ftp.cs.helsinki.fi [128.214.48.123]: /pub/Software/Linux/Kernel/ 上記サイトには沢山のサブディレクトリ鴫があります. カーネル v1.2, v1.3 があるのは(ご賢察通り)v1.2, v1.3 というディレクトリ鴫です. v1.2 が更新されるのは,重大なバグが見つかり,これに対する対処法が実用 テストを経て確立した場合だけです.従ってバージョンアップはかなり稀で す.これに対し v1.3 は開発中のカーネルといえます. トラブルの少ないカーネルをご希望の方は,v1.2 を選ぶほうがよいでしょ う.他方,実験的なものをお望みの場合(またお使いの CDROM 用ドライバー が v1.2 にはないような場合)には v1.3 が適しているでしょう. ただし,v1.3 のカーネルは安定性の点では未知数であるということをよく肝 に銘じておいてください.カーネルのパッチ,コンフィグ,コンパイルを繰り 返さなければならないかもしれません. 4.2.2.1. カーネルのコンパイル 早分かり カーネルソースは /usr/src/linux に展開するのが普通です(この方法に従う ようお薦めします). /usr/src に移動し,tar xzf linux-1.2.13.tar.gz (コンパイルするバージョ ンによって数字はもちろん変化します)を実行してください. linux 及びそ れ以下のサブディレクトリ鴫にカーネルソースが展開されます.以上をまとめ ると # cd /usr/src # tar xzf linux-1.2.13.tar.gz とすればいいわけです. ついで linux ディレクトリ鴫に移動し,カーネルの設定を行います.以下の コマンドを実行してください. # cd linux # make config 設定用スクリプトは,どのドライバーを組み込むのか?,どの機能を用いるの か(ネットワーク,ファイルシステムなど)?に関する質問を次々に発しま す.v1.3.34 以降のカーネルには ftape に関するオプションはありません. これは,ftape が insmod 実行時にDMAバッファを配置するようになったため です.つまりカーネルが ftape をサポートする必要はなくなったのです. pre-2.04のftape 配布を入手なさった場合には,ダイナミックバッファ機能を 利用するためのパッチを著者のホームページから取得してください. 注:ftape をサポートしたカーネルに ftape モジュールを取り込んでも危険 はありません.ただ dma にできる貴重なメモリーが 112Kb も少なくなってし まうだけのことです. v1.2 のカーネルを御使いの場合には,カーネルディレクトリ鴫周辺で若干の 追加作業が必要です.すなわち kernel/ksyms.c にパッチを当てる必要がある のです.パッチファイルは ftape-2.06b/linux-1.2/ksyms.patch です.パッ チを当てるためには以下のようにして下さい. # cd kernel # patch < ../../ftape-2.06/linux-1.2/ksyms.patch # cd .. (これは ftape のソースが /usr/src/ftape-2.06 にあると仮定した場合のも のです) カーネルの設定が終わったら,「依存ファイル」を作り,次いでカーネルをコ ンパイルするという作業が必要です.以下のコマンドを実行してください. # make dep # make zImage 万事がうまくいけば,コンパイル済みカーネルが arch/i386/boot/zImage に できているはずです.何らかのドライバーをモジュール化した場合には,' make modules'をも実行してください. さあ,これで新しいカーネル用の ftape をコンパイルする用意が整いました (この時点でリブートする必要はありません).まず,以下のようにしてディ レクトリーを移動してください. # cd /usr/src/ftape-2.06 Makefile をいじって, コンパイルオプションをいくつか加えることもできま す.最も重要な点:お使いの gcc が v2.4.5 の場合には,'FTAPE_OPT' に `-DGCC_2_4_5_BUG' を付け加えること.また Colorado FC-10,FC-20 コント ローラーを使用する場合には,その旨を設定しておく必要があります. 4.3. 4.3. ftapeドライバーの開発に参加するには ftape ドライバー開発に参加なさりたい方,開発の現況を知りたい方は,vger 上の TAPE メイルリストへの参加をご検討下さい.メイルリストへ参加する際 は ' subscribe linux-tape'というメイルを majordomo@vger.rutgers.edu ま でご送付下さい.参加申し込みを頂き次第,投稿法・メイルリスト脱退の方法 を記した挨拶状を送付いたします. 4.4. Linux でテープをフォーマットすることは可能ですか? できません.これを可能にするための作業も行っていません.これに挑戦しよ うという方は,著者にまでご一報ください.今のところは,MessyDOS を使う か,あるいはフォーマット済みのテープを買うかのいずれかの方法しかありま せん.市販のフォーマット済みテープの中には不良セクタの検査をしていない ものがあるので要注意です.不良ブロックを発見すると ftape ドライバー は,警告を発します.ftape がフォーマット済みテープに不良箇所を発見した 場合には,DOS 用のソフトでもう一度ためしてみてください.DOS 用プログラ ムでも ftape でも不良が見つかった場合には,フォーマットをやり直すのが 得策でしょう. 注:新しいフォーマット済みテープを ftape で利用するためには,以下のコ マンドでまずテープを消去する必要があります. mt -f /dev/nftape erase 4.5. DOS で使えるフォーマットプログラムにはどのようなものがあります か? 作動が確認されているソフトを以下に列挙します o Colorado Memory System's software (tape.exe) o Conner Backup Basics v1.1 及び Windows用全バージョン o Norton Backup o QICstream version 2 o Tallgrass FileSecure v1.52 o Escom Powerstream 3.0 (qs3.exe -- QICstream v3?) 以下のソフトにはバグがあることがわかっています. o Conner Backup Basics 1.0 o Colorado Windows tape program o CP Backup (テープを著しく浪費する点を除けば,利用可能です) 実際問題として,DOS 用プログラムの大部分は問題なく利用できます.Conner Backup Basics v1.0 には parameter off by one というバグがありましたが (QIC-80 の特性を正しく読み取れない場合がありました),v1.1 では修正され ています.ftape はこのバグを検出し,これを処理することができま す.Dennis T. Flaherty () 氏からは 「Conner C250MQ をお持ちの方は Conner (米国内なら1-800-4Conner )に電 話して,v1.1 を入手することができる.更に名目的なフロッピー代を払うだ けでアップグレードを求めることも可能である. Windows 用の Colorado テーププログラムのなかにはセグメントナンバーに関する off-by-one エラー を含むものがある.ftape はこのバグを検出し,これを処理することができ る」との報告を頂きました. Central Point Backup も使えます.ただしこのプログラムには,テープ上の 不良箇所を発見した場合に貴重なテープスペースを無駄にしてしまうという欠 点があります. 注:上記リストに掲載されていない DOS 用のフォーマットプログラムをお使 いになった場合には,著者() までご一報ください.リス トに追加させていただきます. 4.6. フロッピードライブと ftape の共存 フロッピードライブ・ftape は共に FDC および IRQ6 を必要としているの で,この二つを同時に使用することは不可能です.フロッピーディスクをマウ ントした状態でテープドライブにアクセスしようとした場合,ftape は「IRQ6 がgrabできない」というメッセージを発したのち終了してしまいます.これが 特に問題となるのは,緊急ディスケットと ftape を組み合わせて使う場合で しょう.解決法としては,ブート・ルートディスクをラムディスクにロード し,それからフロッピーディスクをアンマウントするという方法,FDC を二つ 装備する方法があります. 5. サポートしているハードウェア・していないハードウェア 5.1. サポートしているテープドライブ QIC-117 互換ドライブ,QIC-40, 80, 3010, 3020 標準ドライブならどれでも ftape を使用できます.QIC-WIDE, Travan ドライブもすべてサポートしてい ます (TR-1 は 8mm テープを使用する QIC-80 ドライブ,TR-2, TR-3 は それ ぞれ QIC-3010, 3020 同等品です). ftape での作動がこれまでに確認されているドライブを以下に示します. o Alloy Retriever 250 o Archive 5580i / XL9250i o Colorado DJ-10 / DJ-20 (aka: Jumbo 120 / Jumbo 250) o Colorado 1400 o HP Colorado T1000 o Conner C250MQ(T), TSM420R, TSM850R, TST800R, TST3200R o Escom / Archive (Hornet) 31250Q o Irwin 80SX / Insight 80Mb o Iomega 250 o Iomega Ditto Tape Insider 420, 1700, 3200 o Mountain FS8000 o Reveal TB1400 o Summit SE 150 / SE 250 o Tallgrass FS300 (AHA1542Bと使用するには若干の小細工が必要) o Memorex tape drive backup system o Wangtek 3040F, 3080F ftape が認識できるドライブリストの最新版は,ftape 配布に同梱している vendors.h ファイルにあります. どのドライブを選ぶべきかについては申し上げたくありませんが,Colorad DJ-20 は Conner C250MQ ドライブに比べるとかなりノイズが大きいというこ とはお知らせしておきたいと思います (Colorado DJ-20 は Conner のドライ ブに比べて 5-10 倍もうるさいという人もいます.これが正確かどうかは解り ませんが,私の持っている Colorado ドライブがかなりうるさいことは確かで す) Tallgrass FS300 を AHA1542B と一緒に使う場合には,bus-on/bus-off タイ ムを増やす必要があります.Antti Virjo () 氏からは 「linux/drivers/scsi/aha1542.c に記載されている CMD_BUSON_TIME を 4 に,CMD_BUSOFF_CMD を 12 にすればうまくいく」との報告を頂いています. 注:上記リスト以外で ftape が認識できるドライブをご存じの方は,HOWTO の管理者である () までご一報ください. 5.2. 専用コントローラー ftape がサポートしている高速コントローラーの一覧を以下に掲げます. o Colorado FC-10, FC-20 o Mountain MACH-2 o Iomega Tape Accelerator II o 2Mbps controllers (i82078-1 fdcを使用) v1.12 以降の ftape ドライバーは FC-10 コントローラーをサポートしていま す.詳しくは RELEASE-NOTES 及び ftape 配布同梱の Makefile をご覧くださ い.また FC-20 コントローラーも v2.03 以降の ftape ドライバーで使える ようになりました. (RELEASE-NOTESで確認してください) ftape-1.14d 以降, MACH-2 コントローラーも使えるようになっています. IOmega Tape Accelerator II を利用するためには,-DMACH2 を用いて, I/O base, IRQ,DMA を正しく設定してください.少なくとも ftpe-2.02 ではこの コントローラーが使用できています (Scott Bailey ) 氏による実証テスト済). 5.2.1. Iomega Ditto Dash 及びその他の 2Mbps コントローラー Iomega Ditto Dash 及びその他の 2Mbps コントローラーはいずれも Intel 82078-1 チップを使用することによって 2Mbps のスピードを実現していま す.82078-1 チップに対するサポートは目下開発中です.1月あるいは2月中 には完成するのではないかと期待しています.目下の開発状況はすでに 1Mbps は達成したというところです.2Mbps も近い内にクリアできるでしょう. 5.3. サポートしていないテープドライブ o パラレルポートと接続するタイプのドライブ (例: Colorado Trakker) o Irwin AX250L / Accutrak 250 (これらは QIC-80 ドライブではありませ ん) o IBM Internal Tape Backup Unit (Irwin AX250L ドライブ同等品) o COREtape light パラレルポートと接続するタイプのドライブはどれもサポートされていませ ん.これはインターフェースの特性が異なるためです.パラレルポート接続タ イプのドライブは QIC-117 規格とはかけなはれたインターフェースを使用し ているのです. Irwin AX250L (及び IBM Internal Tape Backup Unit) も ftape では使えま せん.このドライブは QIC-117 規格は満たしているものの,QIC-80 規格に準 拠していないというのが使えない理由です(これらのドライブは Irwin 社独 自規格である ``servoe (Rhomat)''フォーマットを利用しています).著者は このフォーマットについてなにも知りません.申し訳ないことながら,どうす れば情報を取得できるかも承知しておりません. COREtape light は ftape の初期化コマンドを受け付けません.この問題には うんざりさせられています。これが解決できない限り、このドライブは使えな いことになってしまうでしょう。 5.4. ftape で外付式テープドライブを使う ブランケットに DB37 メスコネクターのあるフロッピーコントローラーをお持 ちなら(更に,何らかの方法でドライブに電力を供給できれば),ftape で外 付式テープドライブを使うことは可能です.これだけでは,あまりはっきりし ませんね.次のように言い換えてみましょう.すなわち,FDC の中には(極め て旧式のもの)ブランケット上に DB37 コネクターを備えているものがありま す.これは外付フロッピードライブ用です. FDC 上の DB37 コネクターと外付ドライブを繋ぐケーブルさえ自作すれば (FDC を一瞥したところ、ストレートの1-1ケーブルを作れば良さそうな感じ がします。しかし、作業の手数は、場合によって千差万別なことでしょ う,ftape でテープドライブをコントロールすることができるのです. こんなことが可能なのは,プログラムの側から見れば外付ドライブと内蔵ドラ イブには差がないからなのです.ftape にとってみれば,両方とも同じものな のです. o Pins 20-37: GROUND o 1: +12 Volt (POWER) o 2: +12 Volt return (GROUND) o 3: +5 Volt return (GROUND) o 4: +5 Volt (POWER) o 5: 2 o 6: 8 o 7: 10 o 8: 12 o 9: 14 o 10: 16 o 11: 18 o 12: 20 o 13: 22 o 14: 24 o 15: 26 o 16: 28 o 17: 30 o 18: 32 o 19: 34 電源コネクターは 3.5 インチフロッピードライブ用のミニタイプのものを使 用します.著者がボードを調べた限りでは,PSU(Power Supply Unit) からの 電源コネクターの一つをボードのコネクターに差し込めば OK のようです.単 線ケーブルを使う場合には,「50 ワイヤ」すなわち電源線用合線ワイヤーの 使用をお薦めします.(もちろん,アース線も必要です) 5.5. PCI マザーボードと ftape 残念ながら,PCI マザーボードの中には ftape と相性が悪いものもあるよう です.「PCI マザーボードを使ったシステムで ftape が使えなかったが,通 常の 386SX・ISA バス機なら問題なく使用できた」という報告を寄せてくだ さった方々もいらっしゃいます.もし,PCI マザーボードで問題があった場合 には,ftape 配布に同梱している README.PCI をご一読ください. 6. バックアップとデータの復旧 この章では,tar と mt の簡単な使い方を紹介します. 6.1. アーカイブを tape に書き込む方法 利用できるユーティリティには,tar, dd, cpio, afio があります.テープお よび ftape ドライバーの潜在能力をフルに活用するためには mt が必要で す.初心者にお薦めできるのは tar です.これは多数のディレクトリーの アーカイブを作成したり,アーカイブから特定のファイルを抜き出したりする 機能を備えたプログラムです. cpio を使えば tar よりも小さくかつ柔軟性 に富むアーカイブを作成できるそうです.しかし著者自身は cpio を使用した 経験はありません.afio はファイルを一つづつ圧縮してから,圧縮済みファ イルを一つに取りまとめるタイプのプログラムです.この方法を採用すること によって,エラー発生点「以降」のファイルにもアクセスすることが可能と なっています.これに対し gzip を用いて圧縮した tar ファイルの場合だ と,エラー発生点以降のデータは失われてしまうのです!(これは「バック アップは圧縮しない」という考え方に対する有力な論拠になると著者は考えて います) tar を用いてカーネルソースのバックアップを作成するためのコマンドは以下 の通りです.(ソースは /usr/src/linux にあるものとする) cd /usr/src tar cf /dev/ftape linux この例の場合,ファイルの圧縮は行っていません.しかし,そのおかげでテー プはずっとスムースに走行するようになっています.圧縮したい時には(tar 1.11.2が必要です),-z オプションを付け加えて, ' tar czf /dev/ftape linux'としてください. tar, dd, mt の詳しい使い方については,それぞれに同梱されているマニュア ルページ・texinfo ファイルを参照してください. tar は最初の引数をオプションと判断します.従って '-' は必要ありませ ん.すなわち 'tar xzf /dev/ftape' と'tar -xzf /dev/ftape' は同じものな のです. 6.2. アーカイブの復旧 上の節で作成したカーネルソースのアーカイブを復旧してみることにしましょ う.復旧は簡単です.以下のコマンドを実行するだけです. tar xf /dev/ftape 圧縮していた場合には,次のようにしてください. tar xzf /dev/ftape 圧縮していた場合,gzip は「trailing garbage after the very end of the archive 」というエラーメッセージを表示します(これはパイプが壊れたこと に伴うメッセージです).このエラーメッセージは無視しても差し支えありま せん. これ以外のユーティリティーについては,それぞれのマニュアルページを参照 してください. 6.3. アーカイブのテスト tar には二つのアーカイブを比較するためのオプション -d が設けられていま す.カーネルソースのバックアップをテストするためには,次のようにしてく ださい. tar df /dev/ftape tar のマニュアルページをお持ちでなくても,(まだ)あきらめることはあり ません. tar はオプションリストを内蔵しています. ' tar --help 2 > &1 | more' をためしてみてください. 6.4. 複数の tar ファイルを1本のテープに収める方法 複数の tar ファイルを1本のテープに収めるためには mt というユーティリ ティーが必要です.Slackware, Debian といった主要配布には mt が含まれて いるので,恐らくすでにこれをお持ちのことだと思います. tar はテープアーカイブを一つだけ作成します (tar の名前の由来は Tape ARchiev にあります).従って,複数のファイルのことやテープ上のどこに ファイルが位置するかについて tar は何も関知しません.tar はデバイスの 読み書きをするだけの機能しか備えていないのです.これに対し,mt はテー プの前進・後進を完全にコントロールする機能を備えています.しかしなが ら,テープからの情報の読み書きに関する機能はありません.御賢察の通 り,tar と mt を組み合わせて利用するのがコツなのです. nrft[0-3](nftape)デバイスを使用している場合には, mt を用いてテープの 正確な箇所を指定することができます.(' mt -f /dev/nftapte fsf 2' とす れば,ファイルマーク=tar file を二つ越えた場所でテープは停止します) こののち,tar を使って必要なデータの読み書きを行います. 6.5. アーカイブにファイルを付け加える方法 アーカイブを拡張する方法,つまりデータが書き込んであるテープにあとから 何かをかき加える方法はありますか? tar の説明書には 'tar -Ar'を使うようにとありますが,これはうまく機能し ません.これは現行バージョンの ftape が抱える限界の一つであり,アーカ イブにファイルを付け加える方法は今のところ存在しません. 6.6. テープのマウント・アンマウント テープにはファイルシステムがないので,テープのマウント・アンマウントと いうものはありません.バックアップを作成するためには,テープを挿入し tar コマンド(あるいはテープにアクセスできる他のコマンド)を実行するだ けでいいのです. 7. ftape 用緊急ブートフロッピー この節の著者は Claus Tondering 氏です. テープドライブと数本のバックアップ済みテープを持っている人ならだれしも 「もし何もかもがまずいことになってしまってハードディスクの内容をすべて 失ってしまった時には,どうやってテープからファイルを復旧すればいいのだ ろう?」と自問することでしょう. 必要なのは Linux をブートアップしテープからハードディスクを復旧するに 足るだけのファイルが入った緊急フロッピーディスクです. まず最初に,The Linux Bootdisk HOWTO (日本語訳) (Graham Chapman 氏著)を熟読しましょう.緊急ディスクを作る際に 知っておかなければならないことは,すべてこの HOWTO に記載されていま す.以下の数段落には,Graham Chapman 氏の方法に従って作業をする場合に 役に立つ追加情報を掲げました. o /etc/init, /etd/inittab, /etc/getty, /etc/rc.d/* の各ファイルをフ ロッピーディスクに収める必要はありません./etc/init が見つからない 場合,Linux は使用中端末の /bin/sh を起動しようとします.システムの 復旧にはこれで充分です.上述のファイルを消去しておけば,あとから必 要になるディスクスペースの捻出に役立つでしょう. o 軽い /bin/sh を見つけてきましょう.これは大抵の Linux 配布に同梱さ れている起動フロッピー上にあるはずです.この sh を使えば,更にディ スクスペースに余裕がでます.62KB 程度しかない超軽量の ash の使用を お薦めします.これは bash と高い互換性を有しています. o 緊急フロッピー上の /etc/fstab は次のような内容にしてください. /dev/fd0 / minix defaults none /proc proc defaults /dev/hda /mnt ext2 defaults フロッピーからブートしたら,以下のコマンドを実行します. mount -av o ストリーマーテープにアクセスする際には,フロッピードライブをマウン トしていないことを確認してください.さもないと以下のエラーメッセー ジを頂戴することになります. Unable to grab IRQ6 for ftape driver o これは,フロッピーをラムディスクにロードしなければならないというこ とを意味しています. しかしフロッピーをアンマウントしなければならない結果,テープから ファイルを復旧するのに必要なプログラムを緊急フロッピーと別のフロッ ピーに置くことができないという副作用が発生してしまいます.この問題 には以下の2段階の作業で対処できます. 1. tar (あるいは cpio, afio 等バックアップ作成に使用したプログラム) をフロッピーディスクのルートディレクトリ鴫に置きます.(上記の方 法によってひねり出した余分の空きスペースを必要としているのは, ルートディレクトリだけです) 2. テープからの復旧作業を開始する前に,tar (あるいは cpio, afio 他) をハードディスクにコピーし,ハードディスクからプログラムを起動す る. o バックアッププログラムのほかにも,mt をフロッピーのルートディレクト リ鴫に置いてください. o ftape デバイス (通常 /dev/nrft0) がブートフロッピー上にあることを確 認してください. o さあ,やってみましょう!「復旧作業が行えるかどうかをためしてみるた めに,ハードディスクの内容を破壊してみる」といったことがお薦めでき ないのは言うまでもありません.しかし,緊急ディスケットからの起動が 可能かどうか,バックアップテープの内容一覧が作成できるかどうかを確 認しておくことは最低限必要でしょう. 8. よくある質問 以下の問答集は,著者のもとにしばしばよせられる質問のうちFAQに適したも のを集めたものです.ここに追加した方がいいと思われる質疑応答がございま したら,どうか著者までお知らせ下さい.(ただし,「答え」の方も同信して くださいね!) 8.1. ftape の速度はどんなものなのでしょうか? ftape を使用した場合のバックアップ・復旧速度はかなりのものです. 著者は Colorado DJ-20/Adaptec 1542CF コントローラーを使用しています が, sustained データ (非圧縮,IDE ディスク上のファイルをテープへ転 送.70M バイト tar アーカイブ作成時) の転送速度で毎分 4.25M バイトとい う数字を達成しています. ftape の速度を決定する最大の要素は FDC の転送 速度です.AHA1542CF は post-1991 82077 と称する FDC を使用しており, テープドライブ転送速度 1Mbit/sec を実現しています.500Kbit/sec しかサ ポートしていない FDC を使っている場合には,転送速度は上述した数字の約 半分程度にまで低下することでしょう. 8.2. トレースレベルの変更法を教えてください? 方法は二つあります.トレースレベルの初期値を変更し (ftape-rw.c にある tracing という変数を変更する) コンパイルをやりなおすというのが一つの方 法です.もう一つの方法は,以下のコマンドを実行するというやり方です. mt -f /dev/ftape fsr mt のコマンドである fsr を利用するのはいささかハッカー的手法です.この コマンドは恐らくいつのまにかなくなってしまうか,変更されてしまうものと 思われます. 8.3. DOS で使っているテープとの交換は可能ですか? できません.DOS 用ソフトは DOS ファイルシステムのレイアウトに適した形 に QIC-80 の特性を設定します.従って,DOS フォーマットを読み書きできる ようなプログラムを作成するのには (恐らく) 若干の困難がつきまといます. 使いやすいユーザーインターフェースを作ろうとしたりすれば,困難は一層大 きくなるにちがいありません. 8.4. tar で `....' をするにはどうすればいいのですか? これこそtarに関する質問の極めつけと言えましょう.マニュアルページとイ ンフォページをお読みください.もしどちらもお持ちでない場合には, tar --help 2>&1 |more をやってみましょう. お使いの tar が v1.11.1 以前のバージョンの場合には,v1.11.2 へのバー ジョンアップを検討してください.このバージョンは GNU zip を直接呼び出 す機能を備えています (つまり,-z オプションが使えるのです).また強力な ヘルプ機能も内蔵しています. 8.5. ftape の DMA トランスファーから ECC エラーが発生します 誠に遺憾ながら「SVGA カード及びイーサネットカードの一部には,自分自身 のアドレスを正確にデコードできないものがある」と申し上げなければなりま せん.これが問題となるのは,ftape のバッファが 0x1a0000 と 0x1c0000 の 間にある場合です.DMA の書き込みサイクルが clobbered し,それ以外の書 き込みバイトが不正な値 (0xff) となってしまいます.この問題が報告されて いるのは,SVGA, ethernet カードです. ATI の 16 ビット VGA カードの一 種がこの問題を引きこすことがすでに知られています. 最も安直な解決法は,元凶となっているカードを8ビットスロットに差し替え ることです(カードのトランスファーを8ビットに変更するだけでは不十分な 場合が多いようです).ftape のバッファ域を VGA の範囲から移動するとい うのは部分的な解決にしかなりません.Linux が使用する全 DMA バッファが この問題を引き起こす可能性があるからです.次の一点をはっきりさせておき ましょう「これは ftape とは一切関係のないトラブルです」 8.6. insmod が「the kernel version is wrong」というエラー メッセージ を発行します. insmod というプログラムは,現行カーネルのバージョンと ftape をコンパイ ルしたときのカーネルバージョンを次の二つの方法でチェックする機能を備え ています.ftape のモジュールに記録されているカーネルバージョンと現行 カーネルのバージョンを直接比較するというのが一つの方法です.カーネルと ftape のいずれもがバージョンシンボルを使ってコンパイルされている場合に は,「使用されているシンボルを比較する」という今ひとつの方法が用いられ ます. v2.7.0 以降の GCC をお使いの場合には,モジュールユーティリティを gcc v2.7.x で再コンパイルする必要があります. 新しいバージョンの insmod なら,バージョンが正しくない場合にもモジュー ルを強制的にカーネルに挿入することができます. 8.7. その「versioned symbols stuff」(バージョンシンボル)というのはな んですか? make config を実行する際の質問の一つである CONFIG_MODVERSIONS を yes にしておくと,カーネルが外に送り出すシンボル (つまり,ローダブルモ ジュールが「見る」ことのできるシンボル) はすべて,call/return パラメー ターのタイプに関らず checksum を含む分だけ大きくなります.こうしておく と insmod によって,カーネル内の変数・関数の定義が ftape のコンパイル 時以降変化したかどうかを確認することが可能になります. こうしておけば,安全性は高まります.古いモジュールを使っても,カーネル がクラッシュすることはなくなるからです. 8.8. insmod が「kernel 1.2.0 and 1.2.0 differ」というメッセ鴫ジを発行 します カーネルに ksyms.c というパッチを当てていますか?まだなら,上記の 「カーネルのコンパイル 早分かり」の節を参照してください. 8.9. ftape が ``This tape has no 'Linux raw format'''というメッセージ を発行します. このエラーが出るのは,フォーマットしたてのテープを消去していないからで す. ftape は独自の方法でへッダセグメントを解釈するので,テープ上に 'magic header' が必要なのです (つまり,ファイルマーク).この問題は, ' mt -f /dev/nftape erase' を実行すれば解決します. 8.10. tar/mt/cpio/dd binaries/sources/manpages はどこにありますか? 以下のツール類はいずれも GNU プロジェクトが開発したものです.従って, ソース及びマニュアルページは,世界各地の ftp サイトで入手できます (ftp.funet.fi, tsx-11.mit.edu, sunsite.unc.eduを含む).また,GNUの公式 ホームサイトである prep.ai.mit.edu [18.71.0.38]:/pub/gnu. からも取得 できます. 1996年1月10日現在の最新版は以下の通りです. cpio: 2.4.1 (cpio-2.4.1.tar.gz) dd: 3.12 (fileutils-3.12.tar.gz) mt: 2.4.1 (cpio-2.4.1.tar.gz) tar: 1.11.8 (tar-1.11.8.tar.gz) gzip: 1.2.4 (gzip-1.2.4.tar.gz) 上記ツールはいずれも,Linux v1.0.4/ libc v4.5.19/ gcc v2.5.8 という環 境でコンパイルするためのものです. mt 用パッチは ftape 配布に同梱して あります.このパッチは mt のステータスコマンドから ftape ドライブに関 する有用な情報を得られるようにするためのものです. 8.11. QIC 規格に関する情報はどこで入手できますか? ftape の開発に加わろうという方,テープフォーマットプログラムなどのユー ティリティを作ってみようという方には,該当する QIC 規格に関する情報が 必要です. QIC-80, -117, -3010, and 3020. QIC-117 の各規格は,いずれ もテープドライブへ命令を転送する方法(タイミング等を含む)を規定してい ます.しかし,こうした情報はおそらく必要ないでしょう.これに対し QIC-80/3010/3020 の各規格は テープレイアウト・ECC コード・標準ファイル システムといった「上位レベル」の部分を規定したものです.QIC 規格の入手 先を以下に掲げます. Quarter Inch Cartridge Drive Standards, Inc. 311 East Carrillo Street Santa Barbara, California 93101 Phone: (805) 963-3853 Fax: (805) 962-1541 注:電話帳には「Freeman Associates, Inc」の名前で掲載されています. 8.12. tar を使う場合,ブロックサイズはどう設定すればいいのでしょう? 圧縮する場合,また一般的に考えても,出力を細かい部分に分割して tar を 利用するのには利点があります.ftape はデータを 29Kbyte のブロックに分 割するので, -b58 と指定するのが最適の解となります. 「どうして 29Kbyte なんだ」とおたずねですか? QIC-80 規格は,すべての データをエラー訂正コード (ECC) で保護するよう定めています.QIC-80 規格 が採用しているこの独自のコードは「Read-Solomon (R-S) code」の名前で知 られています.R-S コードは,29 バイト分の情報を受け取り,更に 3 バイト のパリティ部分を生成します. ECC コードの効率を高めるために,パリティ バイトは 1K バイトのセクターを 29 個受け取ってからのちに初めて生成され ます.つまり,ftape は 29K バイトのデータと 3K バイトのパリティ情報を 受け取り,総計 32K バイトを一気にテープに書き込むのです.ftape が常時 32K バイト大のブロックを読み書きし,エラーの検出・訂正を行うようになっ ているのには,こうした理由があるのです. もっと詳しいことをお知りになりたい方は,ecc.c, ecc.h の両ファイルをお 読みください.ここにはコードの説明と共に,R-S コードの参考書に関する情 報が記載されています. 8.13. ftape は DOS 上の QIC-3029 テープより多くの不良セクターを検出す るのですが? 両者の違いを知るためには,ftape は常に DOS より多い 2784 セクターを検 出しているという事情を了解しておく必要があります. ftape が報告してくる数字は厳密なものです(もちろんですよね).正常に初 期化された QIC-3020 テープには 2784 の固定位置セクタがあります.各セク タの位置は,不良セクタマップに記入してあります.定格表には次のように書 かれています. 「EOT/BOT 4 セグメント中にあるトラック 5,7,9,11,13,15,17,19,21,23,25,27 はエラー発生率が高くなっています. 従ってこの部分は,フォーマット時に不良セクタとしてマップし,"同じセグ メントから内の全セクタが不良である" 旨を付記した上,不良セクタマップに 登録しています」 12トラックx2x4セグメントx29セクタ=2784セクタ という計算 です. ftape はテープ上に存在する利用不能セクタの実数を報告するように設計され ています.これに対し DOS は,より楽観的な数字を報告してくるので,テー プの質が優れているかのような印象を受けるのです.(将来的には ftape の 仕様を変更し,正確なフォーマットを検出し,別々の数字を表示するようにす るかもしれません.しかし,こうした作業には低い先順位しか与えられていま せん.) QIC-3010 の場合も QIC-3020 と全く同様です. 9. ftape ドライバーのデバッグ 9.1. ... を実行したときに kernel/ftape がクラッシュするのはバグです か? いいえ.それは仕様というものです. ;-) まじめな話,信頼できるソフトというのはクラッシュしないものです.特に カーネルはクラッシュしないものでなければなりません.もし ftape を運用 中にカーネルがクラッシュし,かつ ftape の側に問題があることを証明でき る場合には,「それは修正する必要なあるバグである」と考えてください.こ の場合には,詳しい状況を ftape 管理者 () 及びテープ リストまでお知らせ下さい. 9.2. はいはい.それはバグ...いやいや仕様ですね.どうやって報告を送 ればいいですか? まず,問題を再現できることを確認してください.再現性のないような偽物の エラーはタチの悪い獲物のようなものです。捕まえようがないのですから。 以下に,簡単なチェックリストを掲げます. o カーネルのバージョン.当てたパッチ o ftape のバージョン o tape drive のモデル名・メーカー名 o 拡張バスのタイプ (EISA, ISA, PCI, VL-bus) o 問題が発生した状況 o システムに発生した障害 カーネル及び ftape.o ファイルは消去しないでください.ご使用中のシステ ムにパッチを当てたり,別のテストを行うようにお願いするかもしれません. トレーシングレベルを7に上げて(これは,最大レベルの1つ下です),問題 となったコマンドをもう一度実行してみてください.カーネルログあるいは /proc/kmsg にある(エラーメッセージをどこに書き込むように設定している かによって異なります)トレーシングデータを検討してみましょう. ftape が出力したメッセージをじっくり眺めてみてください. 最初はとっつきにくい 印象がありますが,ログファイルには貴重な情報が一杯詰まっています.メッ セージの前には関数名が記入されている場合がほとんどなので,問題の所在は 容易に突き止められるはずです.ソースを熟読しましょう.この作業を行わず して「狼が来た.助けてくれ」と叫んではいけません. ご使用中のカーネルのバージョン(あるいはftapeのバージョン)が最新カー ネルではない場合には,バージョンアップを試みてください.そして,問題が 解決するかどうかを調査してみてください.「問題報告」を送付なさる際に は,ftape のバージョン・カーネルのバージョン・拡張バスの種類 (ISA, VL- bus, PCI, EISA)・バス速度・フロッピーコントローラー=テープドライブの 種類を明記するようお願いします.どのようなことをしたら,システムにどの ようなことが発生したかを正確に記載してください.「ftape は PCI マザー ボードをもとにしたシステムでは使えないが,ISA/386 機では問題なく使用で きた」と報告してきた方もいらっしゃいました.(上記’PCI マザーボードと ftape’の項をも参照してください) 身銭を切ってインターネットにアクセスしている可哀想な人(著者もその一人 です)のことも配慮してくださるようにお願いいたします.ftape運用結果の (巨大な)ログを特段の理由もなく送り付けるのは避けてください.そんなこ とをしなくても,問題を記述しログを関係先に送るようにすることは可能なは ずです. バグレポートの送付先は です.バグに関する メールは にお送りくださっても結構です.