  CD-Writing HOWTO
  Winfried Truemper <winni@xpilot.org>
  v2.9.3, 23 July 2000
  JF Project
  1 November 2000

  この文書は Linux での CD-ROM の焼きかたについて説明したものです。
  ______________________________________________________________________

  目次

  1. はじめに
     1.1 著作権、ライセンス、利用条項
     1.2 筆者が対応できること
     1.3 お勧めの資料
     1.4 用語集 ... レーザー出力最大 ... 発射！
        1.4.1 Adaptor 対 Adapter
     1.5 サポートしている CD ライタ
     1.6 サポートされている「機能」
     1.7 メーリングリスト

  2. CD-ROM を焼くための Linux の設定
     2.1 やってみよう
        2.1.1 SCSI CD ライタに関する特別な注意
        2.1.2 パラレル・ポート接続の CD ライタに関する特別な注意
        2.1.3 ないカーネル・モジュールをコンパイルする (任意)
     2.2 CD-R を焼くためのユーザソフトウェアの入手
        2.2.1 コマンドライン用ユーティリティ
        2.2.2 GUI (無くてもかまいません)

  3. CD-R を焼く
     3.1 CD-ROM (データのみ)を焼く
        3.1.1 後で CD-ROM となるイメージの作成
        3.1.2 CD イメージのテスト
        3.1.3 CD イメージを CD に焼く
     3.2 オーディオ CD の書き込み
        3.2.1 オーディオ CD の書き込み (TAO)
        3.2.2 DAO
     3.3 混合モードの CD-ROM

  4. 親愛なる Winfried へ...
     4.1 焼き付けとはどれくらい厳しい処理なんでしょうか?
     4.2 ファイルの断片化で性能に悪影響が出ますか?
     4.3 UMSDOS ファイルシステム上に CD イメージを置けますか?
     4.4 ISO 9660 の制限を回避する方法は何かありますか?
     4.5 オーディオ CD からトラックを読み出す方法は?
     4.6 起動後に SCSI デバイスを検出する方法は?
     4.7 データ CD をまるごとコピーすることはできますか?
     4.8 Linux で Joliet 形式の CD-ROM は読めますか? (古いお答え)
     4.9 CD ライタを使って CD-ROM の読み取りやマウントをする方法は?
     4.10 CD-R にもっとたくさんのデータを詰め込むには?
     4.11 起動可能な CD-ROM を作る方法は?
     4.12 ハードディスクみたいに書き込みができる CD-ROM を作るには?
     4.13 複数個の CD ライタを同時に使うことはできますか?
     4.14 Solaris, *BSD, AIX, HP-UX 等についてはどうでしょう? ぼくの使っている UNIX 系 OS はどうですか?
     4.15 ローカルの設定をずっと保存しておく場所は?
     4.16 どうすれば CD の情報を取り出すことができますか?
     4.17 再書き込みに関して
     4.18 マルチセッション CD の作り方は?
     4.19 ライタに付いてきた SCSI アダプタを使うべきでしょうか?
     4.20 ネットワーク経由で焼くには?
     4.21 各曲の最後に「カリ」とか「プチ」と音が鳴る
     4.22 いちいち root にならずに CD を焼けるようにするには?
     4.23 ``Yellow Book'' や ``Orange Book'' 標準はどこで手に入りますか?
     4.24 Video-CD を Linux で焼くための情報を探しているんですが...
     4.25 IDE と SCSI、どっちのほうが設定が簡単ですか?
     4.26 cdrecord や cdrdao で CD を容量オーバーして焼くことはできますか?
     4.27 パイプからの入力が止まったとき、cdrecord はどうするのですか?
     4.28 ide-scsi エミュレーションには、ignore=hdX と同様のオプションは ありますか?
     4.29 CD-RW というものは、ダメになるまで何回使い回しができるものですか?
     4.30 プラットフォームに依存しない CD-ROM を作るなら、 どのフォーマットを選ぶべき?
     4.31 オーディオトラックにマルチセッションは使えますか?
     4.32 どんなハードウェアが必要ですか? 古い Pentium マシンで充分?

  5. トラブルシューティング
     5.1 Linux 上で動作しません
     5.2 No read access for 'dev=0,6,0' というエラーが出る
     5.3 DOS とその仲間の OS で動作しません
     5.4 書き込みの際に SCSI エラーが起こる
     5.5 メディア・エラー
     5.6 新しく焼いた CD を演奏できない CD プレイヤーがある
     5.7 ide-scsi モジュールを読み込んだあと、スキャナが動かなくなります

  6. 謝辞
  7. 日本語訳について

  ______________________________________________________________________

  1.  はじめに

  Linux を使って CD-ROM を焼いている人はたくさんいます。信頼性が高く、し
  かも簡単だからです。 CD を焼いている途中でブルースクリーンになったりし
  ませんし、ハードとソフトの正しい組合せを追い求めて頭が痛くなることもあ
  りません。一度ちゃんと設定すれば、後は正しく動いてくれます。この CD-
  Writing-HOWTO では、設定のやりかた、メディア(媒体)にデータを載せる方
  法、そして、親切な読者が教えてくれた面白いアプリケーションを紹介しま
  す。

  1.1.  著作権、ライセンス、利用条項

  Copyright Winfried Truemper 1996-2000. All rights reserved.
  Redistribution and use, with or without modification, are permitted
  provided that the name of the author may not be used to endorse or
  promote products derived from this software without specific prior
  written permission. In this sense, translations are welcome and need
  not to be authorized by me.

  The author disclaims all warranties with regard to this document,
  including all implied warranties of merchantability and fitness for a
  certain purpose; in no event shall the author be liable for any
  special, indirect or consequential damages or any damages whatsoever
  resulting from loss of use, data or profits, whether in an action of
  contract, negligence or other tortious action, arising out of or in
  connection with the use of this document.

  要するに: 自分自身の責任でこの文書を読んだり使ったりしてください。返金
  保証はありません。

  ずっと前から、この文書のライセンスはとても弱いものにしています。 GNU
  GPL または類似の制限の下にはありません。その理由を知りたければ、ドイツ
  のコンピュータ雑誌 c't にあった、この記事を読んでみてください:
  <http://www.heise.de/tp/deutsch/inhalt/te/8375/1.html> (現在はドイツ語
  のみ).

  1.2.  筆者が対応できること

  私はこの文書の編集者であり、他のかたから寄せられる報告内容をまとめるの
  が主な作業です。私はソフトウェア開発者ではありませんし、ハードウェアの
  エキスパートでもありません。ハードやソフトに特化した問題については、誰
  か他の人に聞いてみてください。私にとって常に意味のある報告とは、この
  HOWTO にまだ載っていない問題の解決方法です。

  筆者は CD-Writing HOWTO に関するメールを毎年数百通受け取ります。ですか
  ら返事は辛抱強く待ってください。筆者は必ずしも数時間以内に返事を書いた
  りできるわけじゃありませんから。しかし筆者の CD-R キュー - やることリ
  スト - に入っているものについては、即座に読んで返事を出しています。質
  問する前に、見ているのがこの文書の最新版かどうか確かめてください。最新
  版はいつも <http://www.guug.de/~winni/linux/> から手に入ります。

  1.3.  お勧めの資料

  新しいカーネルのインストール方法について学ぶなら、お使いの Linux ディ
  ストリビューション向けの参考書が必要かもしれません。私が自分で使ってい
  ないディストリビューションに関しては、私はなんら知りません。

  CD-R FAQ <http://www.fadden.com/cdrfaq/> は、記録可能な CD-ROM (CD-R)
  や CD ライタ、必要なソフトウェアに関する一般的な FAQ です。

  ほとんどの CD ライタは CD-ROM の読み取りもできるので、 Linux CD-ROM
  HOWTO, Linux SCSI HOWTO, Linux Kernel HOWTO も読んでおくといいでしょ
  う。

  1.4.  用語集 ... レーザー出力最大 ... 発射！

  CD-ROM は Compact Disc Read Only Memory (読み取り専用のコンパクトディ
  スク) の略で、カラフルに光る円盤上の微小な穴 (ピット) を光レーザーで読
  み取る仕組みの記録メディアです。ビットデータを記録するのがその穴で、極
  めて小さいため、たくさん (数十億個) の穴をディスクに置くことができま
  す。だから CD は大容量記録メディアなのです。

  CD-R は CD-ROM recordable (記録可能な CD-ROM) の略であり、表面に微小な
  穴がない CD のことです。したがって、中身はもともと空っぽです。CD-R
  の、穴を焼き付けるほうの面の内部には特殊な化学フィルムが入っています。
  この焼き付けは、普通は微小な穴を調べるためだけのレーザーに、少し多めに
  パワーを与えることで行います。この動作は CD-R では一度しか行えません。
  後で書き込むために領域を残しておくことができます。これがいわゆるマルチ
  セッション CD (multi-session CD)なのです。

  CD-ROM rewritable (再書き込み可能な CD-ROM, 略称は CD-RW) は、CD-R メ
  ディアの制限を回避するために作られたものです。 CD-RW ライタなら、メ
  ディアに穴を焼き付けることも、逆にレーザーでメディアをで融かして元の状
  態に戻すことも、両方できます。これができるのは、実際にはレーザーはメ
  ディアを焼いて穴を開けていないから、メディアが煙になって消えたりはして
  いないからです。

  この技術の分かりやすい例えとしては、アイスホッケーのゲームがあります:
  氷の上を滑ることによりプレイヤー (レーザー) は氷に傷を残します。氷 (メ
  ディア) 上のパターンは、1 ラウンドの間に氷の上で起きたことの記録です。
  ゲームのピリオド間には Zamboni と呼ばれる清掃車が氷の上を走り、氷のご
  く表面に近い層を融かすことによって傷を埋めていきます。 (Zamboni はアイ
  スホッケー場で使われている清掃車のブランド名です。) このようにして氷の
  上のパターンは消され、新しいラウンドが始められるようになります。気化、
  液化、融解、凍結を指す科学用語は「相変化」なので、 CD-RW ライタは「相
  変化デバイス」と呼ばれます。

  この HOWTO 文書は CD-R と CD-RW への書き込み作業を扱います。戦闘ブリッ
  ジへようこそ、艦長。

  1.4.1.  Adaptor 対 Adapter

  (訳注: 「アダプタ」の、o と e の綴りの揺れのこと)

  カーネルのソースにおいて、多く出現するのは adapter という綴りのほうで
  す。 (adapter: 4283 件, adaptor: 154 件) さらに重要なこととして、カー
  ネルモジュールのオプション・パラメータや別名 (alias) で使う綴りのほう
  も、当然ながら上記の影響を受けて ``scsi_hostadapter'' といったようにな
  ります。正式な綴りはともかく、設定例や文書を通して綴りを統一するため、
  私はこの慣習に従うことにします。
  1.5.  サポートしている CD ライタ

  今のところ、USB 接続の CD ライタは全くサポートされていません。そのへん
  を除けば、最近の IDE/ATAPI 接続のライタと SCSI 接続のライタは Linux 上
  で動作すると思って差し支えありません。最近のドライブのほとんどは MMC
  準拠ですのでサポートされています。ある CD ライタの SCSI 版が動作するな
  らば、その IDE/ATAPI 版もほぼ確実に動作しますし、その逆も成り立ちま
  す。とはいうものの、自分が使っているライタの正確なモデル名を何らかの互
  換リストで見て安心したがっている人も一部にいます。ですから、私も以下の
  リストをこの HOWTO から削っていません。以下に挙げるのは、cdrecord で動
  作することが報告されたドライブをざっとまとめたものです:

  Acer:           CDRW 4432A, CDRW 6206A, CD-R/RW 6X4X32, 8432A
  BTC:            BCE 621E (IDE)
  Compro:         CW-7502, CW-7502B
  Creative:       MK 4211, RW 4224E,
  Delta:          OME-W 141
  Dysan:          CRW-1622
  Elite:          Elite b444.41
  Goldstar:       CED-8041B
  Grundig:        CDR 100 IPW
  Guillemot:      Maxi CD-R 4X/8X
  HP:             SureStore 4020i, SureStore 6020i,
                  C4324, C4325
                  CD-writer+ 7100, 7200i, 7500e, 8100i, 8110i, 8200i Plus,
                             8250i, 9100i, 9110i, 9200e, 9210, 9300i, 9310i
  Hi-Val:         CDD 2242, CDD-3610,
  Iomega:         ZIPCD 4x650
  JVC:            XR-W 2001, XR-W 2010, XR-W 2040, XR-W 2042, XR-RW 2224,
                  YR 2626
  Kiss:           CDRW (no model given)
  Kodak:          PCD 200, PCD 225, PCD 260, PCD 600
  Matsushita:     matsushita is the japanese name for panasonic, please see there
  Memorex:        CRW-620, CDR-622, CRW-1622, CRW-2224, CDRW-4420
  Microboards:    PlayWrite 2000, PlayWrite 4000RW, PlayWrite 4001RW
  MicroNet:       MasterCD Plus 4x4, MasterCD Plus 4x6
  Mitsubishi:     CDRW-226
  Mitsumi:        CR-2401-TS, CR-2600 TE,  CR-2801 TE,
                  CR-4801 TE, CR-4802 TE,  CR-4804 TE
  Nomai:          680.RW
  Olympus:        CDS 615E, CDS 620E
  Optima:         DisKovery 650 CD-R
  OTI:            CDRW 965, CDRW 975 (Socrates 1.0)
  Panasonic:      CW-7285, CW-7502, CW-7503, CW-7582
  Philips:        CDD-521/10, CDD-522,
                  CDD-2000, CDD-2600, CDD-3600, CDD-3610, CDD 4201
                  PCA 267cr, PCA 460 RW, PCRW 404,
                  Omniwriter 26, Omniwriter 26A,
                  CDRW800
  Pinnacle:       RCD-100, RCD-1000, RCD-5020, RCD-5040
  Pioneer:        DW-S114X
  Plasmon:        CDR 480, CDR 4220, RF-4100, RF-4102, CDR 4400
  Plextor:        CDR PX-24 CS, PX-412 C, PX-R412 C
                  PX-R 810Ti, PX-R 820T, PX-W 4220Ti, PX-W 8220T, PX-W 8432T
                  Plexwriter RW 4/2/20
  Procom:         PCDR 4
  REC:            820s
  Ricoh:          RO-1420C+, MP 1420C, MP 6200S, MP 6201S, MP 7040A, MP-7060A
  Samsung:        SW-204
  Sanyo:          CRD-R24S
  Smart and
  Friendly:       CD-RW226, CD-R1002, CD-R1002/PRO, CD-R1004,
                  CD-R 2004, CD-R 2006 PLUS, CD-R 2006 PRO, CD-RW 2224,
                  CD-R 4000, CD-R 4006, CD-R 4012, CD-RW 4424A
                  CD-R 8020, CD-R 8220
  Sony:           CDRX 100E, CDRX 120E, CDRX 140S-RP,
                  CDU 920S, CDU 924, CDU 926S, CDU 928E, CDU 948S
  Taiyo Yuden:    EW-50
  TEAC:           CD-R50S, CD-R55S, CDR-55S, CDR-55K,
                  CDR-56S-400, CD-R56S-600, R56S-614
  Traxdata:       CRW 2260,
                  CDR 4120, CDR 4120 Pro, CDRW 4260, CDRW 4424, CDR 4800
  Turtle Beach:   2040R
  Waitec:         wt 2036, wt 2444ei
  WPI (Wearnes):  CDRW-622, CDR-632P
  Yamaha:         CDR-100, CDR 102, CDR-200, CDR-200t, CDR-200tx
                  CDR-400, CDR-400c, CDR-400t, CDR-400tx, CDR-400Atx
                  CDW-2216E, CRW-2260, CRW-2260t,
                  CRW-4250tx, CRW-4260t, CRW-4260tx, CRW-4261, CRW-4416S,
                  CRW-6416S, CRW-8424E

  表: Linux が対応している CD ライタ

  各種 UNIX 系 OS で動作、あるいは動作しなかったことが報告されたモデルの
  詳細なリストは、 <http://www.guug.de:8080/cgi-bin/winni/lsc-orig.pl>
  からオンラインで入手できます。

  お使いのハードウェアがサポートされていなくても、Linux を使って CD のイ
  メージを作成することができます。DOS の CD 書き込みソフトウェアのほとん
  どは RockRidge 拡張 (CD-ROM 上の UNIX 風ファイルシステム) を扱えないの
  で Linux を使うといいでしょう。 Linux でイメージを作った後のステップと
  して、DOS や Macintosh のソフトウェアを使って CD-R にイメージを書き込
  むのです。

  1.6.  サポートされている「機能」

  ユーティリティには 2 種類あります。すなわちハードウェアドライバとデー
  タフォーマッタです。ハードウェアドライバは以下の機能をサポートします:

       サポートする機能    cdwrite-2.1     cdrecord-1.6    cdrdao
       ----------------------------------------------------------
       IDE/ATAPI           ○              ○              ○
       パラレルポート      ×              ○              ○
       CD-RW               ×              ○              ○
       オーディオ CD       ○              ○              ○
       データ CD-ROM       ○              ○              一部
       マルチセッション    一部            ○              ×
       TAO (Track at once) ○              ○              ○
       DAO (Disk at once)  ×              一部            ○
       パケット書込        ×              ×              ×

       表:

  cdwrite は既にメンテナンスされなくなっているソフトウェアで、上の表を埋
  めるためだけに入れています。その代わりに cdrecord を使ってください。と
  いうのも、こちらの方が多くのハードウェアに対応していますし、機能も盛り
  だくさんだからです。cdrdao の主な利点は、トラック間に 2 秒間の無音状態
  が入らない CD を作る機能です (disk-at-once (DAO) モードの書き込み)。

  「データフォーマッタ」に分類されるツールは、メディア上のデータを組織化
  してまとめます (「データをファイルシステム上に置きます」)。

       機能            mkisofs          mkhybrid        mkvcdfs
       ------------------------------------------------------------
       ISO 9660         ○              ○              ×
       RockRidge        ○              ○              ×
       El Torito        ○              ○              ×
       HFS              ×              ○              ×
       Joliet           ○              ○              ×
       マルチセッション ○              ○              ×
       CD-Extra         ○              ○              ×
       Video-CD         ×              ×              ○

  表:

  ISO 9660 ファイルシステムが ReiserFS や ext2 ファイルシステムと最も大
  きく違うのは、 ISO 9660 は一度書き込むとファイルの修正ができないという
  点です。 ISO 9660 ファイルシステムにはその他に以下のような制限がありま
  す:

  o  サブディレクトリを(トップレベルから数えて) 8 階層までしか作れない

  o  ファイル名の最大長が 32 文字

  o  容量が 650 MB である

  RockRidge は、ISO 9660 ファイルシステムで長いファイル名と深いディレク
  トリ階層を扱えるようにする拡張です。 RockRidge 拡張で焼かれた CD-ROM
  を Linux で読む時には、所有者、グループ、パーミッション、シンボリック
  リンクといったファイル属性は全て見えます (「UNIX のファイルシステムみ
  たいな感じだね!」)。この拡張は、 DOS や、各種 Windows ファミリの OS で
  CD-ROM を読み取る時には使えません。

  El Torito を使えば、起動可能な CD-ROM を作れます。ただし、お使いの PC
  の BIOS がこの機能をサポートしていないと、実際に CD からはブートしませ
  ん。大まかに言うと、CD-ROM の最初の 1.44 MB の部分に (サポートされてい
  れば 2.88 MB の部分も)、用意しておいたフロッピーディスクのイメージを入
  れます。 BIOS はこのイメージをフロッピーのように扱い、そこから起動しま
  す。 (その結果、この仮想的なフロッピーから起動している途中は、元々のド
  ライブ A: (/dev/fd0) にはアクセスできません。)

  HFS を使えば Macintosh 上で HFS (MacOS のネイティブなファイルシステム)
  同様に CD-ROM を読むことができます。

  Joliet は(代表的な機能として)、最近の Windows 系 OS (95, 98, NT)で長い
  ファイル名を使えるようにします。しかし筆者は、素の DOS や Windows 3.11
  で長いファイル名を使えるようにするツールを全く知りません。

  Video-CD は、DVD デバイスで直に再生できます。

  名前を出したソフトウェアについては、2.8 節でまとめます。

  1.7.  メーリングリスト

  (活発に手伝うという意志を持って)開発チームに参加しようと思うなら、本文
  に subscribe  と書いたメールを cdwrite-request@other.debian.org に送っ
  てください。

  2.  CD-ROM を焼くための Linux の設定

  この章は SCSI、IDE/ATAPI、そしてパラレルポート接続タイプの CD ライタに
  適用できます。USB 接続の CD ライタは 2000 年 5 月の時点ではサポートさ
  れていません。SCSI 以外のライタには互換ドライバが必要です。このドライ
  バは、これらのデバイスを本物の SCSI デバイスであるかのように見せかけま
  す。ある面では、このような統一化 (「全てのデバイスが SCSI である」) は
  簡単です。なぜなら、アプリケーションレベルでは CD ライタの種類に関わら
  ず他のユーザと知識を共有できるからです。その反面、ドライバ名の変更を反
  映させるため、 CD プレイヤーのようなアプリケーションや、マウントユー
  ティリティの再設定を行わなければなりません。例えば、今まではデバイス
  ファイル /dev/hdc 経由で ATAPI 接続の CD ライタにアクセスしていたとし
  ても、SCSI 互換ドライバを有効にした後は /dev/scd0 経由でアクセスしなけ
  ればならなくなります。

  一度ハードウェアとその他の Linux システムの設定がうまくできれば、
  cdrecord -scanbus コマンドの実行により SCSI バスに接続されているデバイ
  スの一覧が表示されます。この章の目的は、最終的に次のような出力が得られ
  るよう Linux システムを設定する手伝いをすることです:

       shell> cdrecord -scanbus
       Cdrecord release 1.7a1 Copyright (C) 1995-1998 Joeg Schilling
       scsibus0:
             0,0,0) 'Quantum ' 'XP34300         ' 'F76D' Disk
             0,1,0) 'SEAGATE ' 'ST11200N        ' '8334' Disk
             0,2,0) *
             0,3,0) 'TOSHIBA ' 'MK537FB/        ' '6258' Disk
             0,4,0) 'WANGTEK ' '5150ES SCSI 36  ' 'ESB6' Removable Tape
             0,5,0) 'EXABYTE ' 'EXB-8500-85QUE  ' '0428' Removable Tape
             0,6,0) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM
             0,7,0) *
       scsibus1:
             1,0,0) 'Quantum ' 'XP31070W        ' 'L912' Disk
             1,1,0) *
             1,2,0) *
             1,3,0) 'TEAC    ' 'CD-R55S         ' '1.0H' Removable CD-ROM
             1,4,0) 'MATSHITA' 'CD-R   CW-7502  ' '4.02' Removable CD-ROM
             1,5,0) *
             1,6,0) 'YAMAHA  ' 'CDR400t         ' '1.0d' Removable CD-ROM
             1,7,0) *

       リスト: SCSI バスでのデバイスの検出

  この例は Joerg Schilling さんから頂いたもので、全部で 4 つの CD ライタ
  が表示されています。-scanbus オプションは他のデバイス(例えば普通の CD-
  ROM やハードディスク)も表示するので注意してください。各デバイスにおけ
  る最後のカラムは、それがどんな SCSI デバイスかを説明したものです。この
  項目では、普通の CD-ROM ドライブと、 CD を焼く機能を持った CD-ROM ドラ
  イブとをはっきりとは区別できません。しかし、製品識別文字列 (真ん中の項
  目) を見れば、機能に関するヒントが R, -R, -RW といった形で得られること
  がよくあります。

  2.1.  やってみよう

  この章は、設定に関して手早く簡単な解説をしてみようというものです。あら
  ゆる設定をカバーしてあるわけではありませんが、どうか構わず、やってみて
  ください。まず最初に、``uname -r'' コマンドで表示されるバージョン番号
  をチェックしてください。2.0.X とか 2.2.Y みたいな感じになるはずです。
  ここで X は 36 以上、Y は 11 以上とします。もっと古いバージョンのやつ
  だとか、いわゆる開発版カーネルだったら、あなたにお任せです。新しいカー
  ネルをインストールするというのは古いものを直すのと同じぐらい大変ですか
  ら、バグいカーネルに対して必要なヒントの類は全部消しました。

  下に載せる一連のコマンドで設定開始です。デバイスファイルのエントリを、
  まだそれがないものに関して、/dev の下に作成します。

  test `whoami` = 'root' || echo "You must be root to execute the commands."
  cd /dev/
  umask -S u=rwx,g=rwx,o-rwx
  [ -f loop0 ] \
      || ./MAKEDEV loop \
      || for i in 0 1 2 3 4 5 6 7; do mknod loop$i b 7 $i; done
  [ -f sg0 -o -f sga ] \
      || ./MAKEDEV sg \
      || for i in 0 1 2 3 4 5 6 7; do mknod sg$i  c 21 $i; done

  Linux においては、ハードウェアへのアクセスは一般にデバイスファイルを通
  す形で実装されます。ですから、何よりも先に、これらのファイルが /dev
  ディレクトリにちゃんと存在することを確かめないといけません。とはいうも
  のの、なぜこのへんがデバイス・ファイルシステム (devfs) といった技術を
  通して自動化されていないのか、その理由をずばり私に教えてくれた人はいま
  せん。 devfs は何年も前から利用可能でしたし、より安全 (!)、デバイスの
  名称もはるかに明快になるし、デバイスのエントリは自動的に /dev 以下に現
  れるというのに。 devfs は完璧な解ではないと論じていらっしゃるご高名な
  方々もいらっしゃいますが、彼らはいい代案どころか、 devfs と比較になる
  ような何かを出しているわけですらないし、他に何かテスト済みのものが利用
  できるわけでもないのです。 devfs を使いはじめてみませんか。そうすれ
  ば、上に述べたコマンド群はこの文書から取っちゃえるのです。 (
  <http://www.atnf.CSIRO.AU/~rgooch/linux/kernel-patches.html>)

  次に確認すべきことは、その Linux カーネルに必要なドライバが付いている
  かどうかです。以下のコマンドは、いま動作中の Linux カーネルについて、
  ドライバの所在を確かめるために、いろんなファイルをチェックします。通常
  は、``cdrecord -scanbus'' コマンドがきっかけとなって、必要なドライバは
  自動的に読み込まれます。その後もドライバがカーネルにないようなら、その
  ことが報告され、 insmod を使って、モジュール化されたドライバ (モジュー
  ル) が手動で読み込まれます。

       test `whoami` = 'root' || echo "You must be root to execute the commands."
       cdrecord -scanbus > /dev/null
       if ! (pidof kerneld || test -f "/proc/sys/kernel/modprobe"); then
           echo "Neither kerneld nor kmod are running to automatically load modules".
       fi
       report_no_autoload() {
           echo "Ensure the module $1 is loaded automatically next time."
       }
       if test ! -f "/proc/scsi/scsi"; then
           report_no_autoload scsi_mod  &&  insmod scsi_mod
       fi
       if ! grep "^........ sg_" /proc/ksyms > /dev/null; then
           report_no_autoload sg  &&  insmod sg
       fi
       if ! grep "^........ sr_" /proc/ksyms > /dev/null; then
           report_no_autoload sr_mod  &&  insmod sr_mod
       fi
       if ! grep "^........ loop_" /proc/ksyms > /dev/null; then
           report_no_autoload loop  &&  insmod loop
       fi
       if ! grep iso9660 /proc/filesystems > /dev/null; then
           report_no_autoload iso9660  &&  insmod iso9660
       fi
       echo "The following is only needed for IDE/ATAPI CD-writers."
       if ! grep ide-scsi /proc/ide/drivers > /dev/null; then
           report_no_autoload ide-scsi  &&  insmod ide-scsi
       fi
       cdrecord -scanbus

  insmod が「モジュール・ファイルがない」と文句を言ってくる場合は、次の
  節を読んでください。テキストモード (コンソール) で使っている場合は、モ
  ジュールがロードされると、画面に何かメッセージが表示されるはずです。グ
  ラフィックスモード (X11, KDE, Gnome) なら、dmesg コマンドでメッセージ
  を再び呼び出せます。

  次に Linux システムを立上げたときにもモジュールが読み込まれるようにす
  る方法はいくつかあります。

       (1) 適切な insmod コマンドを起動シーケンスに組み込む
           (rc.local などの名前のシェル・スクリプト)
       (2a) kerneld か kmod を動かして、
       (2b) /etc/modules.conf にて設定する
           (より正確に言えば、上のデーモンから呼び出されるところの
            modprobe ユーティリティを設定する)

  モジュールがロードされるようにするには、 /etc/modules といった設定ファ
  イルのリストにそのモジュールを追加するか、 kerneld か kmod デーモンを
  走らせておきます。両方とも、カーネルが何かモジュールの必要性に気づいた
  ときに必要なモジュールを自動的にロードしてくれるデーモンです。

  SCSI のライタを持っている人はこの章の残りは飛ばして結構です。このあた
  りのハードウェアなら、大概の場合 cdrecord が検出してくれているはずで
  す。だめだったら、設定状況について私にメールを送ってください。そうすれ
  ば SCSI ライタについての章を改善できますので。

  では、IDE/ATAPI の CD ライタをお持ちのかたの番です。前の節で書いたよう
  に、互換ドライバ ide-scsi をロードしなければなりません。ただし、このド
  ライバは、他のドライバがすでに CD ライタに手を出していない場合に限り
  CD ライタにアクセスできます。言い換えれば、普通の (互換ドライバでない
  ほうの) IDE ドライバに、その CD ライタを認識しないよう教え込んでおかな
  ければいけません。そうしておけば、ide-scsi ドライバが CD ライタを「に
  ぎれる」わけです。

       hda = IDE bus/connector 0 master device
       hdb = IDE bus/connector 0 slave  device
       hdc = IDE bus/connector 1 master device
       hdd = IDE bus/connector 1 slave  device

  上の表は、デバイスファイルの名前と、そのデバイスの IDE バス上の位置と
  の関係を示しています。デバイスファイルの名前は、Linux カーネルのどのド
  ライバを通してお使いの CD ライタが使われるかを示しています。例えば
  hdb=ide-scsi など。こういった設定は、そのドライバがカーネルに静的にコ
  ンパイルされて入っている場合 (訳注: そのドライバをモジュールとして動的
  にロードするのではない場合) は、lilo.conf や chos.conf に書きます。お
  そらく、これがもっと一般的なケースでしょう。カーネルに複数のパラメータ
  を渡したい場合は、 (chos の設定例のように)、それらをスペースで区切って
  ください。次に示すリスト 2 つの設定例には、適切な append 行以外にもい
  ろいろ書いてあります。 append と cmdline の行は、カーネル・イメージご
  との設定であることに注意してください。 (言い換えれば、設定ファイルの先
  頭に直に足してはだめです)

       image=/boot/zImage-2.2.14
         label=Linux
         read-only
         append="hdb=ide-scsi"

       linux "Linux 2.1.14" {
               image=/boot/zImage-2.0.37
               cmdline= root=/dev/hda5 readonly hdb=ide-scsi
       }

  IDE/ATAPI CD-ROM のドライバがモジュールとしてロードされている場合な
  ら、上記の設定はあなたの環境に何ら影響を及ぼしませんが、次のリストにあ
  る options の行が入っていることを確認してください。リスト末尾の 3 行
  は、必要となったモジュールの読み込みをより自動化するための設定として一
  般にお奨めできるものです。

       options ide-cd ignore=hdb            # ide-cd モジュールに、
                                            # hdb は無視するよう指定

       alias scd0 sr_mod                    # scd0 にアクセスがあったら
                                            # sr_mod をロード

       #pre-install ide-scsi modprobe imm   # 一部の ZIP ドライブの場合のみ
                                            # アンコメントせよ

       pre-install sg     modprobe ide-scsi # sg の前に ide-scsi を読み込む
       pre-install sr_mod modprobe ide-scsi # sr_mod の前に ide-scsi を読み込む
       pre-install ide-scsi modprobe ide-cd # ide-scsi の前に ide-cd を読み込む

  もし、マシンについている CD-ROM ドライブがその CD ライタだけなら、 CD-
  ROM へのアクセスも、デバイスファイル /dev/scdn (n は 0 から 8) を通し
  て、そのライタを使って行わなければならないことに留意してくださ
  い。cdrom というシンボリックな名称で、その新しいデバイスファイルを指す
  ように変更するのもいいでしょう。以下のリストは、例えば scd0 に対してそ
  うするためのコマンドです。

       cd /dev && rm cdrom && ln -s scd0 cdrom

  CD ライタと CD-ROM ドライブが(物理的に)別のデバイスなのなら、cdrom の
  シンボリックリンクを変更してはいけません。

  2.1.1.  SCSI CD ライタに関する特別な注意

  お持ちのライタが SCSI ホストアダプタ・カードの BIOS で認識されることを
  確認してください。 SCSI ホストアダプタというものは、電源投入後に SCSI
  バスをスキャンして、自分が発見した、バスに接続されているデバイスをすべ
  て報告します。報告には、デバイスの SCSI ID と製品名が入っています。お
  使いの CD ライタがこの報告内容に含まれていない場合は、何をやっても意味
  はありません。

  SCSI デバイスをパラレル・ポートを介して接続しようと思っているなら、 (
  パラレル・ポートに接続する IDE ドライブの話とごっちゃにしないこと) 特
  別なアクティブ・ケーブルとカーネル・ドライバが必要です。詳しくは
  <http://www.torque.net/parport/parscsi.html> を読んでください。

  2.1.2.  パラレル・ポート接続の CD ライタに関する特別な注意

  これについてはさっぱりわかりません。ごめんなさい。
  <http://www.torque.net/parport/paride.html> を見るか、ローカルファイル
  /usr/src/linux/Documentation/paride.txt を見てください。

  2.1.3.  ないカーネル・モジュールをコンパイルする (任意)

  ここまでの設定に関する説明で、お持ちのハードがちゃんと認識されて設定で
  きているのなら、この章を読む必要はありません。

  Linux カーネルはさまざまな機能のためのドライバを装備しています。ドライ
  バはカーネルイメージに静的に組み込むか、動的ロードできるモジュールとし
  て組み込むことができます。Linux システムを動かすために本質的でないドラ
  イバは後者の方法がいいでしょう。なぜならカーネルが小さくなり、したがっ
  て高速になるからです。しかし、一部のドライバはシステムを立ち上げるため
  にどうしても必要であり、モジュールとして組み込むべきではありません。例
  えば、システムが IDE ハードディスク上にある場合には、 IDE ハードディス
  ク用のドライバはカーネル内になければならず、モジュールにはできません。

  CD ライタには異なる 3 種類のものがあります。すなわち SCSI, IDE/ATAPI
  のライタと、パラレルポート経由で動作する外付けライタです。それぞれの
  ハードウェアについてLinux カーネルをどのように設定すればよいかを表に示
  します。表の最初のカラムはカーネル設定メニューでのセクションです。ここ
  に設定があると思います。2 番目のカラムはカーネルの機能の説明です(これ
  もカーネル設定メニューからの引用です)。 3 番目のカラムは、できるモ
  ジュールの名前です。SCSI, IDE, PP というカラムは、対応するハードウェア
  にとって必要なオプションです (PP はパラレルポートのことです)。

       セクション 説明                    モジュール SCSI  IDE   PP
       ------------------------------------------------------------
       BLOCK  Enhanced IDE/MFM/RLL...                     Y
       BLOCK  IDE/ATAPI CDROM             ide-cd          M
       BLOCK  SCSI emulation support      ide-scsi        M
       BLOCK  Loopback device             loop       M    M     M

       PARIDE Parallel port IDE device    paride               Y/M
       PARIDE Parallel port ATAPI CD-ROMs                       M
       PARIDE Parallel port generic ATAPI                       M
       PARIDE (select a low-level driver)                       Y

       SCSI   SCSI support                scsi_mod  Y/M  Y/M
       SCSI   SCSI CD-ROM support         sr_mod    Y/M  Y/M
       SCSI     Enable vendor-specific               Y    Y
       SCSI   SCSI generic support        sg        Y/M  Y/M
       SCSI   (select a low-level driver)            Y

       FS     ISO 9660 CDROM filesystem   iso9660   Y/M  Y/M   Y/M
       FS     Microsoft Joliet cdrom...   joliet     Y    Y     Y

       表: 各種ライタ用のドライバ選択

  Y は 'yes' を表し、カーネルに組み込むべきであることを示します。 M は
  'module (モジュール)' を表し、その機能はモジュールとしてコンパイルすべ
  き、あるいはコンパイルしなければならないことを示します。Y/M ならばどち
  らかを選ぶことができます(問題が起こる可能性が小さい方を選びましょう)。
  空の部分は変更する必要がないことを表します。このような設定は変えないほ
  うが、作ったカーネルが動作する可能性が高いでしょう (前に動いた実績があ
  れば…)。特に、SCSI デバイスと ATAPI デバイスが混在している環境では、
  ほとんどのものをモジュールとして作成する方がよいでしょう。

  ループバックデバイスはコンパイルしなくてもかまいません。このデバイスを
  使うと、イメージをメディアに書き込む前にテストすることができます。 CD-
  ROM を読み取りたければ、ISO 9660 ファイルシステムをサポートする必要が
  あります。このドライバは自動的に RockRidge 拡張を含みます。Microsoft
  Joliet 拡張は、明示的に ISO 9660 ファイルシステムに追加しなければなり
  ません。いずれの場合にも、ハードウェアに対応した低レベルドライバが必要
  です。低レベルドライバとは、直接ハードウェアと通信するドライバのことで
  す。SCSI やパラレルポートの場合には、たくさんの低レベルドライバがあり
  ます。

  できた Linux カーネルをインストールする方法については、この HOWTO の範
  囲から外れます。お使いの Linux ディストリビューションの説明書にあたっ
  てください。

  RedHat Linux のユーザなら、``Ramdisk support'' と ``Initial ramdisk''
  機能がコンパイルされて含まれるようにしないといけないことを押えておいて
  ください。さらに、その新しいモジュールで新しい ramdisk を生成しないと
  いけません。こんなふうにコマンドを実行します: ``mkinitrd --preload
  ide-cd initrd-2.2.14.img 2.2.14''

  自分自身のマシンをお使いであれば、ディストリビューションに付属している
  「Linux カーネルソース」というパッケージをインストールするだけです。そ
  の後で以下のコマンドを実行します:

       cd /usr/src/linux
       make menuconfig  # 説明とメニューに従います
       make dep
       make zImage      # または "make bzImage"
       # 先に進む前にフロッピーディスクを挿入します
       dd if=arch/i386/boot/zImage of=/dev/fd0
       make modules
       make modules_install

       表: 起動可能なフロッピーディスクの作成

  これによって起動可能なフロッピーディスクができます。この作業全体が本当
  にわからないのであれば、システムをぐちゃぐちゃにしてしまう前に Kernel
  HOWTO といった他の文書を読むか、友達の助けを求めるべきでしょう。カーネ
  ルがシステムの中心部分であることを忘れてはいけません。

  カーネルが許すならば、IDE/ATAPI CD-ROM 用のドライバをモジュールとして
  コンパイルします。それができなければこれを無効(N)にして、SCSI CD-ROM
  用のドライバを使います。バージョン 2.2 系列のカーネルでは、同じ物理デ
  バイスで IDE と SCSI のドライバを同時に使うことはできなくなりました (
  まだ 2.0.36 を使っているなら後の説明を読んでください)。

  2.2.  CD-R を焼くためのユーザソフトウェアの入手

  CD-ROM を作成するためのツールに関する詳しい調査の結果が
  <http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdb.html>
  にあります。

  2.2.1.  コマンドライン用ユーティリティ

  CD-R のイメージ (データ CD-ROM の場合のみ) を生成するためには、以下の
  パッケージのいずれかが必要です:

       <ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/> (mkisofs)

       <ftp://ftp.ge.ucl.ac.uk/pub/mkhfs> (mkhybrid)

  イメージを CD-R に焼くためには、以下のパッケージのいずれかが必要です:

       <ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/> (cdrecord)

       <http://www.ping.de/sites/daneb/cdrdao.html> (cdrdao)

       <http://www.munich-vision.de/vcd/> (mkvcdfs)

  古いmkisofs のオンラインマニュアルにはバージョン 1.5 の cdwrite が必要
  だと書かれていますが、これを信じてはいけません。黙って cdrecord を使っ
  てください。それで大丈夫です。新しいバージョンの cdrecord には改良版の
  mkisofs が付属していることと、他では見つからない追加ツールがいくつか
  misc ディレクトリ(readcd, isosize)にあることに注意してください。

  2.2.2.  GUI (無くてもかまいません)

  Linux においては、フロントエンドは本当にフロントエンドです。つまり、フ
  ロントエンドだけあってもだめで、コマンドライン用のユーティリティをイン
  ストールしなければなりません。でも、フロントエンドは使う時の見栄えをよ
  くしてくれます。

  X-CD-Roast は Linux で CD を簡単に作成するためのプログラムパッケージで
  す。これは cdrecord や mkisofs のようなコマンドライン用のツールと組み
  合わせて用いるもので、使いやすい GUI を提供します。

       <http://www.fh-muenchen.de/home/ze/rz/services/pro-
       jects/xcdroast/e_overview.html>

  BurnIT は cdrecord の Java 版フロントエンドであり、 cdda2wav-0.95 を加
  えれば UNIX 環境で CD を焼くための完全な環境が作れます。これは

       <http://sunsite.auc.dk/BurnIT/>

  から入手できます。

  CD-Tux は mkisofs と cdrecord のための、キャラクタベースのフロントエン
  ドです。「CD に対してできる操作ならなんでも可能な使いやすい環境を、あ
  の素晴らし(く..もないか) NCURSES ライブラリを使って、フルカラーでつく
  り出しています。実行バイナリは 75K に満たないサイズです。

       <http://www.datadictator.co.za/cdtux/>

  3.  CD-R を焼く

  「もしおまえを煙と化すなら、焼き上がる間にフィードルでも奏で
  て時を過ごそう」 (ローマ皇帝ネロが A.D. 64 年に彼のクラシッ
  ク CDを焼いた時の言葉です。彼は完璧に考え違いをして、ローマ
  を焼き払っちゃたんですけどね)

  Linux 上での CD-ROM 作成は 2 つの手順で行います:

  o  必要なデータ (ファイルや音楽、あるいはその両方) を特殊なフォーマッ
     トのファイルにパッケージングする

  o  cdrecord ユーティリティを使って、このデータをファイルから CD-R に書
     き込む

  この節では、データ CD とオーディオ CD を焼く手順を詳細に説明します。

  3.1.  CD-ROM (データのみ)を焼く

  CD に焼くためのデータの収集には普通、思っているより時間がかかります。
  一度 CD を書き込んで、固着させてしまったら、足りないファイルを追加する
  ことはできないことに注意してください。これは、現在は全体まるごとの再書
  き込みしかできない CD-RW の場合でもそうです。ファイルを 1 個追加するた
  めにマルチ・セッション機能を使うなどというのは話になりません。新しい
  table of contents (TOC) をまるまる使うため、多くのスペースを食ってしま
  うからです。 UDF はまだ Linux では使えません。

  また、CD の空き容量が ISO 9660 ファイルシステムの情報のためある程度 (
  普通は数 MB) 使われてしまうことを覚えておいてください。 620 MB のデー
  タなら確実に 650MB の CD-R に収まるでしょう。

  3.1.1.  後で CD-ROM となるイメージの作成

  どんな記録メディア(例: フロッピーディスク、ハードディスク、CD)でも、利
  用可能にするにはファイルシステムを作らなければなりません (DOS でいうと
  ころのフォーマットです)。ファイルシステムの役割は、メディアに保存され
  るファイルを組織化し、まとめることです。

  ハードディスクのパーティション上にファイルシステムを作る普通のユーティ
  リティは、空のファイルシステムをパーティション上に作成します。このファ
  イルシステムには、ユーザの必要に応じてファイルが入っていきます。これに
  対して、書き込み可能な CD は一度しか書き込めません。したがって、空の
  ファイルシステムを書き込んでしまうと、フォーマットこそされますが、永遠
  に空っぽのままになってしまいます。同じことは書き換え可能なメディアにつ
  いても言えます。というのも、任意のセクタを変更することはまだできず、全
  体の内容を消さなければならないからです。

  したがって、必要となるのはファイルを CD に書き込むためのファイルシステ
  ムを作るツールです。このツールは mkisofs と呼ばれます。このツールの使
  用例を以下に示します:

       mkisofs  -r   -o cd_image   private_collection/
                     `---------'   `-----------------'
                          |               |
                      書き込み先   入力に使うディレクトリ

  オプション `-r' は CD 上の全てのファイルのパーミッションを誰でも読める
  ように設定し、RockRidge 拡張を有効にします。自分が何をしているのかを完
  璧に把握している人ならともかく、普通はこのオプションを使うとよいでしょ
  う (ヒント: `-r' がないと、マウントポイントは private_collection の
  パーミッションを拾ってしまいます!)。

  mkisofs は全てのファイル名を DOS が使う 8.3 形式に対応させようとしま
  す。これは互換性をできるだけ高めるためです。名前が重なった場合 (別の
  ファイルが同じ 8.3 形式の名前になった場合) には、ファイル名に数字が使
  われ、決まったファイル名に関する情報が標準エラー出力 (通常は画面) に出
  力されます。でもあわてないでください。 Linux 上では、このようなへんて
  こな 8.3 形式のファイル名を見ることはありません。というのも、Linux は
  元のファイル情報 (パーミッション、ファイル名など) を持っている Rock
  Ridge 拡張を使うからです。

  さらに Windows との親和性が高い CD-ROM を作りたい場合は、 -J オプショ
  ン (マイクロソフトの Joliet 拡張) か、mkhybrid を使ってください。
  Macintosh で使われている HFS CD-ROM の場合は、 mkisofs の姉にあたる
  mkhybrid のマニュアル・ページを読んで、いろんなオプションについて詳し
  く調べたほうがいいでしょう。

  もしかすると、mkisofs の出力が直接 CD ライタデバイスに送られないのはど
  うしてかと思うかもしれません。これには 3 つの理由があります:

  o  mkisofs は CD ライタの駆動について何も知らない

  o  イメージを焼く前にはテストをする方がよい

  o  遅いマシンだと信頼性が低い (4 章を参照)

  CD-R を一気に焼く方法があります。これを以下で説明します。

  追加のパーティションを作成し、ファイルではなくそのパーティションへイ
  メージを書き込もうと思うかもしれません。筆者はこういったやり方には反対
  です。というのも、コマンドをタイプミスして間違ったパーティションに書き
  込みを行ってしまうと、 Linux システムが全て壊れてしまうからです (注意!
  私はやってしまいました…)。また、これはディスク容量の無駄使いです。な
  ぜなら、CD イメージは一時的なデータであり、CD への書き込みを行った後は
  削除できるからです。しかし、 raw パーティションを使えば、650MB のサイ
  ズのファイルを消す時間を節約することができます。

  3.1.2.  CD イメージのテスト

  Linux は、(CD イメージ)ファイルをあたかもディスクのパーティションであ
  るかのようにマウントできます。この機能は、CD イメージのディレクトリ構
  成やファイルのパーミッションが希望通りかどうかを確認する時に便利です。
  現在はメディアも非常に安くなりましたが、それでも書き込みにはとても時間
  がかかるので、少なくとも簡単なテストを行って、時間を節約するとよいで
  しょう。

  これまでの作業で作った cd_image を /cdrom ディレクトリにマウントするに
  は、以下のコマンドを使います:

       mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom

  ここで /cdrom 以下のファイルを詳しく調べます。これは焼きあがった CD-
  ROM にあるものと全く同じです。CD イメージをアンマウントするには、
  umount /cdrom を使います。(警告: 2.0.31 以前の Linux カーネルでは、
  /cdrom の最後のファイルを完全には読めません。ですから 2.0.36 といった
  もっと新しいカーネルを使ってください。 cdrecord では -pad オプションは
  オーディオ CD にしか使えず、mkisofs で -pad オプションを使うにはパッチ
  を当てる必要があります。このパッチを当てる作業は、バグのない Linux
  カーネルに更新するより大変です。:-)

  注意:

       古いバージョンの mount にはループバックデバイスを扱えないも
       のがあります。このような古いバージョンの mount を使っている
       なら、Linux システム自体を新しくしましょう。最新の mount
       ユーティリティの入手に関する情報をこの HOWTO に入れようと提
       案してくれた方は今までに何人もいますが、筆者は必ず断っていま
       す。お使いの Linux ディストリビューションに古すぎる mount が
       付属しているのなら、それはバグとして報告すべきです。

       作りの悪い Linux ディストリビューションのバグを回避するため
       に必要な情報を全て載せてしまったら、この HOWTO はとても長く
       読みにくくなってしまいます。

  3.1.3.  CD イメージを CD に焼く

  データを焼く場合に最もよく使われるのは TAO モードなので、この章では
  TAO モードでのデータ CD の焼き込みだけを扱っています。 TAO と DAO の違
  いについてもっと詳しく知りたければ、オーディオ CD-R に関する節を読んで
  ください。 cdrdao で DAO モードを使った場合は、ダミーのオーディオ・ト
  ラックを TOC ファイルの最後に付けるのを忘れずに。 (README 参照)

  やることはもうあまり残っていません。まだやってなければ、そろそろ次のコ
  マンドを実行してみましょうか:

       cdrecord -scanbus

  このコマンドは CD ライタがどの SCSI デバイスに接続されているかを表示し
  ます。こういった情報の推定は cdrecord で非常にうまくできるので、他の方
  法はこの HOWTO から消しました。

  CD を焼くという最後のコマンドを実行する前に、CD ライタには定常的にデー
  タを流すことが必要だということを注意してください。したがって、CD イ
  メージを CD に書き込む処理の妨害をしてはいけません。さもないと、焼き損
  ねの CD ができてしまいます。巨大なファイルを削除すれば簡単にデータの流
  れを止めることができます。例: 古い CD イメージ、つまり 650MB の大きさ
  のファイルを削除すると、カーネルはハードディスク上の 650,000 ブロック
  分の情報を更新しなければなりません (このファイルシステムでは 1 ブロッ
  クが 1KB であるものとします)。これにはある程度の時間がかかり、ディスク
  の動作が遅くなってデータの流れが数秒間止まることもありえます。しかし今
  時のマシンでは普通、メールを読んだり、WWW をブラウズしたり、カーネルを
  再構築したくらいでは書き込みに影響しません。

  邪魔が入った時にレーザーの位置を直し、 CD 上の邪魔が入る前の位置から焼
  き続けることができる CD ライタなど存在しない点に注意してください。した
  がって、強い振動や機械的な衝撃があると、書き込み中の CD は壊れてしまう
  でしょう。

  心の準備ができれば、さぁ魔法使いの黒いローブをまとい、 CD ライタの
  SCSI ID と SCSI のリビジョンの数字を掛け合わせてその数だけロウソクを灯
  し、ASR-FAQ (newsgroup alt.sysadmin.recovery) にある 2 つの文句を唱え
  た上で、最後のコマンドを入力します:

  (訳注: 日本のユーザであれば、鯛と神酒を供え、四方に盛り塩をし、滝に打
  たれて瞑想しておくのもいいでしょう)
       shell> SCSI_BUS=0   # リスト 1 の "scsibus0:" の部分を見た
       shell> SCSI_ID=6    # リスト 1 の "TOSHIBA XM-3401" の部分を見た
       shell> SCSI_LUN=0
       shell> cdrecord -v speed=2 dev=$SCSI_BUS,$SCSI_ID,$SCSI_LUN \
                          -data  cd_image

       # 上のコマンドと同じ意味ですが、こちらの方が短い
       shell> cdrecord -v speed=2 dev=0,6,0  -data  cd_image

  読みやすさを高めるために、CD ライタの SCSI バス上の位置は、自然な名前
  の 3 つの環境変数 (SCSI_BUS, SCSI_ID, SCSI_LUN) に格納されます。

  cdrecord を使って CD-RW を上書きする時には、古い内容を消すために
  ``blank=...'' というオプションを指定しなければなりません。CD-RW の中身
  を消すための色々な方法については、オンラインマニュアルを見てください。

  筆者以外のは人はみんな 400MHz のマシンを持っているのではないかと時々思
  うのですが、多くの人は mkisofs の出力を直接 cdrecord に送り込んでいま
  す:

       shell> IMG_SIZE=`mkisofs -R -q -print-size private_collection/  2>&1 \
       | sed -e "s/.* = //"`
       shell> echo $IMG_SIZE
       shell> [ "0$IMG_SIZE" -ne 0 ] && mkisofs -r  private_collection/  \
       |cdrecord  speed=2  dev=0,6,0
                   tsize=${IMG_SIZE}s  -data  -
       #         s を忘れないこと --^         ^-- 標準入力からデータを読む

  最初のコマンドはイメージの大きさを調べるためにカラ実行 (dry-run) しま
  す (これを行うには、cdrecord のパッケージに入っている mkisofs が必要で
  す)。お使いの CD ライタは書き込むイメージの大きさを知る必要がないかも
  しれませんが、そういう場合は、カラ実行してみる必要はありません。実際に
  実行する時に使う引数を全部指定しなければいけません (-J とか -hfs)。出
  力されたサイズは cdrecord に tsize パラメータとして渡されます (この値
  は環境変数 IMG_SIZE に格納されます)。2 番目のコマンドは mkisofs と
  cdrecord をパイプ経由で組み合わせて並べたものです。

  3.2.  オーディオ CD の書き込み

  オーディオ CD の書き込みは、既に説明したデータ CD の書き込みの手順とよ
  く似ています。書き込む方法には DAO と TAO の二種類があります。 TAO
  (track at once) は音楽用途にはあまり向いていません。 TAO でオーディオ
  CD を焼くと、トラック (曲) ごとに「プチッ」という音が聞こえてしまうか
  らです。ともあれ、TAO のほうがちょっとだけ扱いやすいし、 DAO はまだす
  べてのドライブで扱えないので、 TAO のほうを最初に解説します。

  データ CD-R に書き込むときとの主な違いは、イメージのフォーマットです。
  オーディオ CD プレイヤーはファイルシステムを扱えませんから、 ISO-9660
  (や、何でもいいですからお好みのファイルシステム) ではうまくありませ
  ん。その代りに、オーディオ・データは「44100 サンプル/秒(44.1 kHz)で
  PCM コーディングされた 16 ビットステレオのサンプル音声」で書き込む必要
  があります。

  サウンドファイルを必要なフォーマットに変換するユーティリティのひとつに
  sox があります。sox の使い方は簡単です:

       shell> sox  killing-my-software.wav  killing-my-software.cdr

  このコマンドは killing-my-software という歌を WAV 形式から CDR 音声形
  式に変換します。sox が認識するファイル形式とファイル名の拡張子について
  はオンラインマニュアルを見てください。手作業での変換結果を出力するには
  大量のディスク容量が必要なので、 cdrecord には WAV, AU フォーマットを
  読み込む機能が組み込まれました。したがって、音声ファイルの拡張子が
  .wav または .au (かつサンプルレートが 「ステレオ、16 ビット、44.1
  kHz」)ならば、手作業で CD-R フォーマットに変換しなくても、オーディオ・
  トラックとして使うことができます。ただ、cdrecord の制約として、音声
  データの大きさが 2352 バイトの整数倍、かつ 705,600 バイト以上の大きさ
  である必要があります。 WAV ファイルの全てが必ずしもこうなっているわけ
  ではありません。そういうファイルの場合は、sox を使って 2362 バイトの整
  数倍の大きさにまで、オーディオ・データに余白を入れて引き延ばす必要があ
  ります。

  3.2.1.  オーディオ CD の書き込み (TAO)

  TAO モードの場合、オーディオ CD は各曲独立したイメージから成るオーディ
  オ・トラックで構成されます。 CD に 10 曲入れたいなら、イメージを 10 個
  作るわけです。

  cdrecord は、-audio オプションが指定されるとオーディオトラックを CD イ
  メージとして書き込みます。他のオプションについてはデータ CD を書き込む
  時と同じです (非常に特殊な要求がある場合は除きます)。以下の 3 つの例は
  全て同じ処理を行いますが、トラックの読み込みは異なる形式のサウンドファ
  イルから行われます:

       shell> cdrecord -v speed=2 dev=0,6,0  -audio  track1.cdr track2.cdr...
       shell> cdrecord -v speed=2 dev=0,6,0  -audio  track1.wav track2.wav...
       shell> cdrecord -v speed=2 dev=0,6,0  -audio  track1.au  track2.au...

  こうすれば、各曲の間に 2 秒ずつ間をあけたオーディオ CD を作れます。
  cdrecord が直接読めない重要なファイルフォーマットの一つが MPEG Layer 3
  です。このフォーマットを CD-R フォーマットに変換するには、 ``mpg123
  --cdr - track1.mp3 > track1.cdr'' としてください。 --cdr オプション
  で、エンコードしたいフォーマットを指定します(上記参照)。古いバージョン
  の mpg123 だと、標準出力に出すには、ただの - でなく -s オプションを付
  けます。逆方向の変換 (WAV を MPEG にする) には、 WAV ファイルを LAME
  で処理してください。

  多数の MP3 ファイルからまとめて CD-R を作るには、以下のコマンド列を使
  います:

       for I in *.mp3
       do
           mpg123 --cdr - "$I" | cdrecord -audio -pad -nofix -
       done
       cdrecord -fix

  マシンの速度によっては、書き込み速度を ``speed=1'' (cdrecord のオプ
  ション) に落とす方がよいかもしれません。``speed=4'' を使うと、マシンは
  MP3 ファイルを 4 倍速で演奏できなければなりません。mpg123 は CPU 時間
  を大量に消費します! どうすべきか分からなければ、-dummy コマンド (レー
  ザーのスイッチを切ったままにする) を指定して cdrecord をカラ実行してく
  ださい。

  3.2.2.  DAO

  オーディオトラック間の無音部分をなくしたければ、disk-at-once (DAO) 書
  き込みを使わなければなりません。これは既に説明した(トラックを一つずつ
  焼く) track-at-once (TAO) 録音の反対です。DAO のサポートは現在 cdrdao
  が最も進んでいます。詳しくは cdrdao のホームページを見てください。

  DAO モードで CD マスターを作るなら、単一のイメージ (音声ファイル) に
  し、設定ファイルでコントロール・トラック情報を与えてください。

       CD_DA
       TRACK AUDIO
       FILE "live.wav" 0 5:0:0
       INDEX 3:0:0
       TRACK AUDIO
       FILE "live.wav" 5:0:0 5:0:0
       TRACK AUDIO
       FILE "live.wav" 10:0:0 5:0:0
       INDEX 2:0:0

  3.3.  混合モードの CD-ROM

  この話題については書くことはあまりありません。-data オプションや
  -audio オプションを使って、(後に続く)イメージの種類を指定するだけで
  す。例を以下に示します:

       cdrecord  -v dev=0,6,0  -data  cd_image  -audio  track*.cdr

  4.  親愛なる Winfried へ...

  この章はいわゆる「良く聞かれる質問とその答え(FAQ)」です。 CD-R に関わ
  る話なら、いや単に面白いだけの話であっても、奥さんや子供や飼い犬がどう
  したこうしたということでも構いませんから、送ってください。

  4.1.  焼き付けとはどれくらい厳しい処理なんでしょうか?

  実際に試してください。cdrecord の -dummy オプションを使ってカラ焼きを
  します。同時に他の考え付く処理を全て実行し、 CD を焼く処理が生き残るか
  どうかを見てみましょう。

  mkisofs から直接 cdrecord にデータを送る場合には、locate データベース
  の更新などのディスクに負荷をかける処理によって最大フローレートが小さく
  なってしまい、CD を焼き損ねることがあります。古いマシンでは、CD-R を焼
  いている最中に cron, at, anacron がこういったプロセスを起動しないよう
  に確認しておくべきでしょう。

  4.2.  ファイルの断片化で性能に悪影響が出ますか?

  ファイルの断片化は通常は小さいので、気付かない程度の影響しかありませ
  ん。しかし、断片化のせいで異常な状態になることもままあります。この場
  合、ハードディスクのスループットは 100 kB/秒以下になります。ですから、
  そんなことをしてはいけません :-) もちろん、何年も使っているとハード
  ディスク上のファイルは断片化してきます。ファイルシステムがいっぱいに
  なっていると断片化も早くなります。常に 10% から 20% の空き容量を残して
  いれば、CD-R についてはうまく動作するはずです。

  不安であれば、起動時に出力されるメッセージを見ましょう。断片化のパーセ
  ンテージがファイルシステムのチェックの時に出力されます。以下の危険なコ
  マンドを使ってこの値をチェックすることができます:

       shell> e2fsck -n  /dev/sda5        # '-n' が重要!
       [途中は省略 -- エラーが出ても無視してください]
       /dev/sda5: 73/12288 files (12.3% non-contiguous)

  この例ではファイルの断片化がかなり多くなっているように見えますが、この
  ファイルシステム上には、非常に小さいファイルがたったの 73 個あるだけで
  す。したがって、断片化の率は特に気にするほどではありません。

  ext2 ファイルシステムのデフラグ(断片化をなくす)のための e2defrag とい
  う実験的なツールがあります。現在のバージョンは、仮に個人的な環境で使う
  だけとしても、信頼性が十分ではありません。本当にファイルシステムのデフ
  ラグを行いたいのなら、ファイルシステムのバックアップを取り(できれば 2
  つ)、このデータの書き戻しの練習を行った上で、新しいファイルシステムを
  作成し (これにより古いファイルシステムは消えます)、データを書き戻して
  ください。これが現時点で最も安全な方法です。

  4.3.  UMSDOS ファイルシステム上に CD イメージを置けますか?

  できます。信頼性が低く、CD-ROM の書き込みのための速度も不十分なファイ
  ルシステムはNFS(network filesystem)だけです。筆者自身は CD-ROM 作成専
  用の PC(486/66)でUMSDOS を使い、 Linux と DOS/Windows でディスクの共有
  をしています。

  4.4.  ISO 9660 の制限を回避する方法は何かありますか?

  できます。好きなファイルシステムを CD 上に作ることができます。ただし、
  Linux 以外のオペレーティングシステムではこの CD は扱えないでしょう。手
  順を以下に示します:

  o  サイズが 650MB の空のファイルを作成します。

       dd if=/dev/zero of="empty_file" bs=1024k count=650

  o  このファイル上に ext2 ファイルシステムを作成します。

  shell> /sbin/mke2fs  -b 2048  empty_file
  empty_file is not a block special device.
  Proceed anyway? (y,n) y

  o  ループバックデバイスを使って、この空のファイルをマウントします (十
     分に新しい mount コマンドが必要です。前述の説明を見てください)。

       mount -t ext2 -o loop=/dev/loop1 empty_file /mnt

  o  ファイルを /mnt にコピーし、その後でアンマウントします

  o  (もう空ではない)empty_file を ISO 9660 イメージと同じように扱って
     cdrecord を実行します。

  このような CD に対して /etc/fstab のエントリを作りたければ、システム起
  動時のデバイスのファイルのチェックを無効にしてください。以下に例を示し
  ます:

       /dev/cdrom  /cdrom  ext2  defaults,ro  0 0

  最初の 0 は「dump の対象にしない」(バックアップ対象にしない)という意味
  です。 2 番目の 0 (こちらが重要) は「起動時にエラーのチェックをしな
  い」という意味です (この CD のエラーを調べると fsck は失敗します)。

  4.5.  オーディオ CD からトラックを読み出す方法は?

  これを行うためのソフトウェアがいくつかあります。最新のものは
  ``cdparanoia'' であり、以下の場所からダウンロードできます:

       <http://www.xiph.org/paranoia/>

  これ以外にも、``cdda2wav'' と ``sox'' を組み合わせて使うこともできま
  す。これらのソフトウェアは sunsite とそのミラーサイトから入手できます:

       <ftp://sun-
       site.unc.edu/pub/Linux/apps/sound/cdrom/cdda2wav0.71.src.tar.gz>

       <ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/sox-11gamma-
       cb3.tar.gz>

  cdda2wav を使うと、オーディオ CD から特定の区間 (あるいはトラック全体)
  を取り出して、これを .wav ファイルに変換することができます。 sox
  は、cdrecord を使って CD-R を焼けるように wav ファイルを (オーディオ
  CD の) cdda フォーマットに戻します。最近のバージョンの cdrecord を使っ
  ているならば sox は必要ありません。というのも、これは .au, .wav ファイ
  ルに対応しているからです。
  4.6.  起動後に SCSI デバイスを検出する方法は?

  drivers/scsi/scsi.c ファイルに以下の情報が載っています:

       /*
        * 使用法: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
        * ここで  "0 1 2 3" は実際の "ホスト チャネル ID LUN" に置き換えます。
        * この機能はベータ版であると思ってください。
        *     注意: これは周辺機器の活線抜挿のための機能ではありません。SCSI
        *     自体がそのように設計されていないため、ハードウェアを壊してしま
        *     うことがあります!
        * しかし、既に接続されているデバイスの電源を入れるのは問題ないと思い
        * ます。このデバイスが転送中のデータを壊さないことの保証は多分できま
        * せん。
        */

  これを使うべきなのは SCSI デバイスがチェーンの最後にある場合だけである
  点に注意してください。新しい SCSI デバイスを既にあるチェーンに入れる
  と、デバイスの名前付け(/dev ディレクトリ)が狂ってしまい、ハードディス
  クの内容が全部壊れてしまうかもしれません。

  カーネルのバージョンによっては、SCSI バスの再スキャンを嫌うものもあり
  ます。上にある操作を行うと、システムが固まってしまいます。はい、警告は
  しましたからね!

  4.7.  データ CD をまるごとコピーすることはできますか?

  できます。ただし、オリジナルの読み取り中に (ホコリや傷のために) エラー
  が起きると、壊れたコピーができる点には注意してください。以下に説明する
  どちらの方法もオーディオ CD だと失敗するので注意!  オーディオ CD では
  cdrdao か cdda2wav を使わなければなりません。

  例 1: CD ライタおよび、それとは別の CD-ROM を持っているものとします。
  以下のコマンドを実行することにより、/dev/scd0 に接続した CD-ROM ドライ
  ブからデータを読み取って、これを直接 CD ライタに書き込むことができま
  す:

       cdrecord -v dev=0,6,0 speed=2 -isosize /dev/scd0

  例 2: 別に使える CD-ROM ドライブが無いものとします。この場合にはまず、
  CD ライタを使って CD-ROM を読み出します:

       dd if=/dev/scd0 of=cdimage

  このコマンドは CD-ROM の内容を /dev/scd0 から読み取り、これをファイル
  ``cdimage'' に書き込みます。このファイルの内容は mkisofs が作るものに
  相当するので、この文書の前の方で述べたように処理を進めることができます
  (ファイル cdimage を cdrecord の入力とします)。進行状況表示やその他の
  凝った表示が見たければ、Joeerg Schillings さん作の sdd を使ってくださ
  い。

  エラーに出会った場合には、最新版の cdrecord をインストールしてくださ
  い。これには ``readcd'' というツールが入っています (misc/ ディレクトリ
  にあります)。このツールでは dd と同じ結果が得られますが、エラーの場合
  には CD-ROM のセクタを複数回読み込みます。

  4.8.  Linux で Joliet 形式の CD-ROM は読めますか? (古いお答え)

  読めます。新しいカーネル(2.0.36 と 2.2 系列)には、 Joliet 形式のサポー
  トが組み込まれています。 /etc/fstab には iso9660 と joliet の両方のオ
  プションを指定しなければならない点に注意してください (joliet は実際に
  は拡張です)。詳しくは <http://www-
  plateau.cs.berkeley.edu/people/chaffee/joliet.html> を見てください。

  4.9.  CD ライタを使って CD-ROM の読み取りやマウントをする方法は?

  普通の CD-ROM ドライブと同じようにします。変わったことは全くありませ
  ん。ただし、ATAPI CD-ROM を使っていても、読み取りのために CD-ROM をマ
  ウントするには scd デバイス (SCSI CD-ROM) を使わなければならない点に注
  意 (ATAPI デバイスが SCSI のように動作する設定にしたことを思い出してく
  ださい)。 /etc/fstab の設定例を以下に示します:

       /dev/scd0  /cdrom  iso9660  ro,user,noauto  0  0

  4.10.  CD-R にもっとたくさんのデータを詰め込むには?

  gzip や pkzip のような圧縮プログラムでなく、 bzip2 を使いましょう。こ
  れを使えば、大きい(>100kB)ファイルで 30% 程度のディスク容量を節約でき
  るでしょう。bzip2 は以下の場所からダウンロードできます:

       <http://www.muraroa.demon.co.uk/>

  普通のオーディオ CD を焼く代わりに、wav 形式のオーディオファイルを mp3
  形式のオーディオファイルに変換し、普通のファイル同様に ISO 9660 ファイ
  ルシステムに置く方法もあります。mp3 の圧縮率は通常 1:10 程度です。もち
  ろん、普通の CD プレイヤーではこのファイルを読むことはできません…これ
  が欠点です。でも、今度のパーティーではハードディスクから音楽をかけるこ
  とにしたっていいでしょう?  18G バイト程度ディスクがあれば、3000〜4000
  曲はかけられますよ :-)

  ソフトウェア MP3 エンコーダは以下のところから手に入ります:

       <http://www.sulaco.org/mp3/>

  MP3 プレイヤーは以下の場所から入手できます:

       <http://www.mpg123.org/>

  スピーチを録音するには、shorten や ``GSM lossy speech compression'' を
  使ってサイズを小さくするといいでしょう:

       <ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/>

       <http://kbs.cs.tu-berlin.de/~jutta/toast.html>

  4.11.  起動可能な CD-ROM を作る方法は?

  作成を行うには 1.44MB の起動可能なフロッピーディスクが必要です。以下の
  コマンドを実行して、このフロッピーディスクの正確なイメージを作りましょ
  う:

       dd if=/dev/fd0 of=boot.img bs=18k

  このフロッピーイメージを、CD に焼くファイルを置いているディレクトリ (
  あるいはそのサブディレクトリ。好きなようにしてかまいません) に置きま
  す。 mkisofs に対して `-b' オプションでこのファイルを指定し、また `-c'
  オプションを指定します。詳しくは mkisofs のパッケージに入っている
  README.eltorito を読んでください。

  独自に作成した起動可能 CD の面白い使い道としては、ウィルスに対して安全
  な DOS/Windows システムがあります。(ネットワークが利用でき、 samba を
  使ってユーザのデータを置けるファイルサーバがあれば) ハードディスクを買
  うためのお金も節約できます。ドイツのコンピュータ雑誌 c't の 1999 年 11
  月 号の 206 ページ ( <http://www.heise.de/>) には、これに関する記事が
  掲載されています。

  起動可能な RedHat CD-ROM に関する詳しい情報は
  <http://members.bellatlantic.net/~smithrod/rhjol-technical.html> にあ
  ります。

  4.12.  ハードディスクみたいに書き込みができる CD-ROM を作るには?

  Linux では オーバーレイファイルシステム (overlay filesystem) が使えま
  す。これは CD-ROM の上にマウントし、全ての書き込み操作に割り込むという
  ものです。新しいファイルや修正されたファイルは別の場所に保存されます
  が、ユーザには CD-ROM 上のファイルが変更されたように見えます。詳しい情
  報については <http://home.att.net/~artnaseef/ovlfs/ovlfs.html> をご覧
  ください。

  これで要求が満たせなければ、Linux が UDF ファイルシステムをサポートす
  るのを待つか、その開発に参加しましょう (
  <http://trylinux.com/projects/udf/> を見てください)。 Linux カーネルの
  CD-ROM ドライバの制限のため、今のところは CD メディアからの読み出しだ
  けがサポートされています。

  4.13.  複数個の CD ライタを同時に使うことはできますか?

  できます。少なくとも、kernel 2.2.12 が走るシングル SCSI バスで 233 MHz
  の PC の上で 3 つのライタがフルスピード (6x) で動いたとの報告がありま
  す。最近のバージョンの Linux カーネル(2.2.12 以降)が必要です。

  4.14.  Solaris, *BSD, AIX, HP-UX 等についてはどうでしょう? ぼくの使っ
  ている UNIX 系 OS はどうですか?

  Linux に特化した説明は第 2 節だけです。3 節と 4 節の内容は Linux 以外
  のオペレーティングシステムでも使えます。詳しくは cdrecord のパッケージ
  に入っている README.NetBSD, README.aix, README.hpux, README.next,
  README.solaris, README.sunos, README.vms, README.xxxBSD ファイルを見て
  ください。

  たぶん yes です。お持ちのプラットフォームで cdrecord をコンパイルし、
  ``cdrecord -scanbus'' コマンドを実行してみます。 cdrecord ソースについ
  てくる README.* ファイルのうち、その UNIX 向けのものを読んでください。
  とはいうものの、全ての UNIX 系 OS で、新規に焼いた CD-R の RockRidge,
  Joliet, HFS 拡張を読めるというわけではありません。

  4.15.  ローカルの設定をずっと保存しておく場所は?

  方法は 2 つあります。すなわち cdrecord の組み込み設定ファイルを使う方
  法と、以下に示すようなシェルによるラッパーを使う方法です。このシェルス
  クリプトは設定ファイルを読み込みます。設定ファイルには cdrecord に対す
  るオプションとパラメータを一行ずつ書いておきます。オプション名はコマン
  ドラインで指定する時と同じですが、先頭のダッシュ(`-')がありません。コ
  メントを使うこともできます。例:

       # 詳しい表示を行う
       v
       # CD ライタの速度を設定する
       speed=2
       # SCSI 上のデバイスの位置を バス、ID, LUN の形式で指定する
       dev=0,6,0

  ラッパーに対する設定ファイルは /etc/cdrecord/ に置き、コマンドラインで
  指定しなければなりません。例: 設定ファイル /etc/cdrecord/mywriter.cfg
  を参照したければ、``cdrecord.sh mywriter.cfg -audio track1...'' という
  コマンドを実行します。mywrite.cfg より後の全ての指定は cdrecord に渡さ
  れます。

  #! /bin/bash

  CFGDIR="/etc/cdrecord"

  CFG="$1"
  shift
  ARGS_LEFT="$@"

  if [ ! -f "$CFGDIR/$CFG" ]
  then
      echo "Configuration file $CFGDIR/$CFG not found. Exiting."
      exit 1
  fi

  while read LINE
  do
      case $LINE in
          \#*|"") continue;;
      esac
      old_IFS="$IFS"
      IFS="$IFS="
      set -- $LINE
      IFS="$old_IFS"
      O_NAME="$1"
      O_VALUE=""
      while shift
      do
          case $1 in
              "") continue;;
          esac
          O_VALUE="$1"
      done

      if [ -z "$O_VALUE" ]
      then
          O_CDRECORD="$O_CDRECORD -$O_NAME "
          continue
      fi
      O_CDRECORD="$O_CDRECORD $O_NAME=$O_VALUE "

  done < "$CFGDIR/$CFG"

  set -x    #DEBUG
  exec cdrecord $O_CDRECORD $ARGS_LEFT
  echo "Execution of cdrecord failed."

  4.16.  どうすれば CD の情報を取り出すことができますか?

  CD の先頭から 32kB 以降のどこかの位置には、その CD に関する情報が入っ
  たブロックが置かれます。以下のシェルスクリプトを使うと、この情報を読み
  出すことができます:

  #! /bin/bash

  RD=/dev/cdrom
  for i in 32768,7   32776,32 32808,32 32958,128 33086,128 33214,128 \
           33342,128 33470,32 33581,16 33598,16  33615,16  33632,16
  do
      old_IFS="$IFS"
      IFS=","
      set -- $i
      IFS="$old_IFS"
      OFFSET=$1
      LENGTH=$2
      echo "*`dd if=$RD bs=1 skip=$OFFSET count=$LENGTH   2> /dev/null`#"
  done

  4.17.  再書き込みに関して

  CD-RW メディアの上書きを行う時には、cdrecord にパラメータ blank=fast
  を指定してください。それだけです。パラメータに関する細かい点について
  は、 cdrecord のオンラインマニュアルを見てください。

  4.18.  マルチセッション CD の作り方は?

  まず最初に、マルチセッション CD 用のイメージは RockRidge 拡張を使った
  ISO 9660 ファイルシステムでフォーマットしなければなりません。また、新
  しいセッションを付け加えたければ、cdrecord に -multi オプションを指定
  しなければなりません。したがって、少なくとも最初のセッションでは
  -multi を指定しなければなりません。

  CD-ROM XA モード 2 や session-at-once (SAO) をサポートしていない CD ラ
  イタもありますので、 cdrecord のコマンドラインには -data スイッチを付
  ける必要があります。

  2 番目以降のセッションのためのイメージを作るのは多少面倒です。mkisofs
  が CD-R の空き部分がどこかを知っていなければならないからです。この情報
  は、 cdrecord の -msinfo オプションを使って得ることができます (以下の
  例を見てください):

       shell> NEXT_TRACK=`cdrecord -msinfo dev=0,6,0`
       shell> echo $NEXT_TRACK
       shell> mkisofs -R -o cd_image2 -C $NEXT_TRACK -M /dev/scd5
                private_collection/ \

  詳しくは cdrecord のパッケージに入っている README.multi をご覧くださ
  い。

  4.19.  ライタに付いてきた SCSI アダプタを使うべきでしょうか?

  メールでいただいたご報告です: たいがいの CD ライタの説明書には、CD-ROM
  から CD ライタに焼くには、お互い別々の SCSI バスを使えと書いてありま
  す。私自身、こんな羽目に会いました:

  Adaptec 2940UW SCSI カードと 24x SCSI CD-ROM、4x4 SCSI CD ライタという
  構成で、その CD ライタには専用の ISA SCSI カードが付いていました。ひと
  つのデバイスしか扱えないものです。このカードは捨てて、手持ちの、もっと
  いい Adaptec カードに SCSI 機器全部を賄わせようと思いました。で、4 倍
  速でレコーディングしているとき非常にバッファ・アンダーランしがちなこと
  に気づいたのですが、ISA SCSI カードをつないでみたところ、たちどころに
  問題がなくなりました。他にも 2 名の方が (お二人とも Adaptec 2940 カー
  ド使用)、主に CD-ROM から CD レコーダに書き込みをしているときに全く同
  じ現象を体験したのを知っています。同じバス上にあるハードディスクから
  CD ライタに書くときには、絶対にこの問題は起きなかったのですが。

  4.20.  ネットワーク経由で焼くには?

  通常、FTP によるファイル転送は、10M ビットのイーサネット上でも、4 倍速
  (4x) の CD レコーダにデータを賄うのに充分な速度があります。 ftp クライ
  アントと cdrecord を fifo を使って組み合わせることができます。ま
  ず、cdimage という名前で fifo を作ります:

       mkfifo cdimage
       ftp other.host.org
       get cdimg cdimage

  そして、cdimage を普通のファイルのように扱います。例えばこんな感じのコ
  マンドです:

       cdrecord dev=0,1,0 speed=2 cdimage

  cdrecord がファイルからデータを読み込もうとすると、ftp クライアントは
  それに気づいて、ftp 先のホストからデータを転送しはじめます。

  4.21.  各曲の最後に「カリ」とか「プチ」と音が鳴る

  音割れを回避するには、disk-at-once モード (DAO) を使わないとなりませ
  ん。

  4.22.  いちいち root にならずに CD を焼けるようにするには?

  cdrecord の実行ファイルに setuid ビットを立てることもできますが、セ
  キュリティ上のリスクになり得ます。ともあれ、デバイスファイルのパーミッ
  ションを設定するだけでは、cdrecord は、 SCSI のジェネリックインタ
  フェースを通して特権コマンドを発行できるようにはならないのです。

       which cdrecord
       chown root.root /usr/bin/cdrecord
       chmod 4111 /usr/bin/cdrecord

  4.23.  ``Yellow Book'' や ``Orange Book'' 標準はどこで手に入りますか?

  印刷された仕様が Philips から入手できますが、高価です。

  4.24.  Video-CD を Linux で焼くための情報を探しているんですが...

  <http://www.mainconcept.de/> に MPEG ビデオや Video CD の製作ユーティ
  リティがあります。

  <http://www.johanni.de/munich-vision/vcd/>

  おカタい方々は、Berkeley 系のツールとか、ほかの YUV 処理系のほうを出し
  てくるでしょう。でも、使い方は込み入っているし、処理時間もずっとかかる
  し、ディスクも食うし、オーディオ・トラックは付きません。私としては、最
  初に挙げたような、概念的に高レベルのアプリケーションを使うことをおすす
  めしておきます。

  4.25.  IDE と SCSI、どっちのほうが設定が簡単ですか?

  Linux で CD を焼くということに関していえば、SCSI CD ライタのほうが多少
  設定が簡単です。エラー回復もこっちのほうが優れていると報告されていま
  す。ただ、IDE より高い値段に見合うかどうかとなると、一概には答えられま
  せん。

  4.26.  cdrecord や cdrdao で CD を容量オーバーして焼くことはできます
  か?

  容量オーバーで CD-R を焼くことには、何ら特別なことはありません。データ
  がその CD-ROM に収まるかどうかはあなたの運次第です。それだけのことで
  す。 Linux 上のソフトウェアに、650 メガバイトの制限はありません。

  4.27.  パイプからの入力が止まったとき、cdrecord はどうするのですか?

  書き込みを終了します。だから、お気に入りのバックアップツールと
  cdrecord をパイプで組み合わせるだけです。 ``bru -size=640m -f - |
  cdrecord dev=0,1,0 speed=2 -'' といったように。バックアップが複数枚の
  CD-R にまたがるような場合は、ユーティリティに特別な注意を払わないとい
  けません。

  4.28.  ide-scsi エミュレーションには、ignore=hdX と同様のオプションは
  ありますか?

  これ、できないんですよ。この機能を Linux カーネルのソースに追加してく
  れる方、誰でも大歓迎です。

  4.29.  CD-RW というものは、ダメになるまで何回使い回しができるものです
  か?

  そりゃあ、いい質問ですね。以上。

  4.30.  プラットフォームに依存しない CD-ROM を作るなら、 どのフォーマッ
  トを選ぶべき?

  あらゆるシステムで読める CD-ROM には、素の ISO 9660 フォーマットしか使
  えません。つまり、古い MS-DOS 所以のアホな 8+3 文字のファイルネームし
  か使えない、HFS (Macintosh) や Joliet (Microsoft), RockRidge (最近の各
  種 UNIX) といった拡張機能はだめってことです。あらゆるオペレーティング
  システムで読める、長いファイルネームのための拡張機能は、ありません。

  4.31.  オーディオトラックにマルチセッションは使えますか?

  オーディオ CD プレイヤーは最初のセッションに記録されたオーディオトラッ
  クしか扱えません。言い換えれば、続くセッションとしてオーディオトラック
  を追加することはできません。しかし、データトラックを二番目のセッション
  として書き込むと、オーディオ CD プレーヤーからそれを巧妙に隠すことがで
  きます。こうすれば、ミックスモード CD (オーディオとデータを混在) に無
  音のトラックを作らなくて済みます。

  4.32.  どんなハードウェアが必要ですか? 古い Pentium マシンで充分?

  どんなことをしたいのかによって回答は異なります。新しいコンピュータを買
  うための理由が欲しいというのなら、「コンピュータ製造業者国際組織(笑)」
  からの返答はこうなります: 「何をするにつけても 800 MHz のプロセッサが
  必要です。ただそれだと既にお持ちのマザーボードには適合しないでしょうか
  ら、新しいマザーボードもお求めになる必要があります。一番お手軽なやり方
  は、テレビのコマーシャルでご覧の通りの、全部入りおすすめセットを素直に
  普通にお求めいただくことです。そして、以下の章は無視していただけますで
  しょうか」

  まともな回答を読みたいなら、こちらです: 私は 66MHz の ``486'' マシンで
  何枚もの CD-ROM をちゃんと焼けました。マイクロソフトは、もはやこのクラ
  スのマシンを PC とは見なしておらず Windows CE をすすめてきますが
  (CeBIT とか見ればわかります)、 Linux なら Pentium の先輩でだってちゃん
  と動きますし、CD だって焼けます。実際にテストしてみれば、お持ちのハー
  ドが CD-ROM を焼くのに充分なパワーを持っているかどうか簡単にわかりま
  す。 cdrecord を実行するときに -dummy というコマンドライン・スイッチを
  付けるだけです。こうすると実際の書き込みレーザーは出ません。やってみ
  て、成り行きを見てみてください。

  5.  トラブルシューティング

  忘れないでください。焼き損ねた CD-ROM には、コースターとしての使い道が
  残っています :-)

  5.1.  Linux 上で動作しません

  最初に、CD ライタが製品に付属しているソフトウェア (つまり、他のオペ
  レーティングシステム) で動作することを確認してください。具体的には以下
  の項目を確認します:

  o  コントローラが CD ライタを SCSI デバイスとして認識しているか?

  o  ドライバソフトウェアが CD ライタを認識しているか?

  o  付属のソフトウェアで CD を作ることができるか?

  付属のソフトウェアを使って「それでも動かない」というのであれば、ハード
  ウェアのリソースの衝突かハードウェアの欠陥でしょう。これで動作して、か
  つ Linux の起動に loadlin を使っているのであれば、loadlin の問題です。
  loadlin はハードウェアの大部分が既に初期化された状態でウォームブートを
  行うので、Linux カーネルを混乱させることがあります。

  5.2.  No read access for 'dev=0,6,0' というエラーが出る

  Linux では、一部のバージョンの C ライブラリは不完全です(バグがある)。
  したがって、あるバージョンの C ライブラリとリンクしたアプリケーション
  はライブラリのバージョンが変わると動作しないことがあります。コンパイル
  済みのバイナリが起こすエラーの例を以下に示します:

       [root@Blue /dev]# cdrecord -eject dev=0,6,0
       cdrecord: No such file or directory. No read access for 'dev=0,6,0'.

  解決方法は、新しい C ライブラリをインストールすることですな。

  5.3.  DOS とその仲間の OS で動作しません

  Linux を試してください。DOS でやる SCSI ドライバのインストールと設定は
  最悪です。Linux が複雑すぎる? 冗談でしょ!

  5.4.  書き込みの際に SCSI エラーが起こる

  このエラーは主に以下のような原因で起こります:

  o  SCSI バスに切断/再接続の機能が無い

  o  ハードウェアの冷却が十分でない

  o  ハードウェアに欠陥がある(5.1 節の方法で見つけられるはずです)

  さまざまな環境で、SCSI デバイスは自分自身を SCSI バスと(電気的に)切
  断・再接続します。この機能が使えなければ(SCSI コントローラとカーネルの
  パラメータを確認してください)、CD ライタによっては CD-R の焼き付けと固
  着の際に問題が起きることがあります。

  特に NCR 53c7,8xx SCSI ドライバではこの機能がデフォルトで無効になって
  いるので、以下の項目を最初にチェックすると良いでしょう:

       NCR53c7,8xx SCSI support                  [N/y/m/?] y
          always negotiate synchronous transfers [N/y/?] (NEW) n
          allow FAST-SCSI [10MHz]                [N/y/?] (NEW) y
          allow DISCONNECT                       [N/y/?] (NEW) y

  5.5.  メディア・エラー

  もし cdrecord が ``Sense Key: ... Medium Error, Segment ...''  といっ
  た感じでメディア・エラーを報告してきたら、そのメディアは空ではありませ
  ん。CD-RW を使っている場合なら、 blank=fast を、より信頼できる
  blank=all に代えてみてください。 CD-R しか使っていない場合は、その CD-
  R が本当に未使用かどうかチェックする、ないしは他のメーカーの CD-R メ
  ディアを試してみてください。

  5.6.  新しく焼いた CD を演奏できない CD プレイヤーがある

  自分で焼いた CD の再生に関して問題があると報告してくれた人たちがいま
  す。とても古いオーディオ CD プレイヤーや車載 CD プレイヤーなら CD-R の
  演奏に問題が生じるものがありますが、極めて稀です。むしろ、よくありがち
  な問題は CD-RW に関するものです。CD-RW は、CD-R や工場生産された「銀色
  の」ディスクほどにはレーザー光を反射しないのが原因です。

  5.7.  ide-scsi モジュールを読み込んだあと、スキャナが動かなくなります

  SCSI ホストアダプタ・エミュレーションを組み込むと、 SCSI デバイスの名
  前が変わります。そのスキャナが /dev/sg0 だった場合、/dev/sg1 とか
  /dev/sg2 になります。さる高名なカーネル開発者は、この仕様を完璧にイカ
  れたダメ仕様とは考えず、過去において devfs などの解決法を拒否しまし
  た。それはさておき、まずすべきことは、 /dev/scanner というリンクを作っ
  て、それが実際の generic SCSI デバイスを指すようにすることです。以下に
  例を示します。

       cd /dev
       ls -l scanner     # 現在の設定を表示
       ln -sf sg2 scanner
       # スキャナをテスト
       ln -sf sg1 scanner
       # スキャナをテスト
       # とか なんとか...

  アプリケーション開発者は、この、危険で、エラーになりやすい名称付け規則
  のサポートについて熟慮する必要があります。少なくとも、cdrecord が使っ
  ている SCSI デバイス上の位置 (coordinates) のような、中間的な方法を検
  討してみてください。

  6.  謝辞

  この HOWTO 文書の内容に積極的に貢献してくれた読者の方々に深く感謝しま
  す。筆者自身は数年の間 CD ライタを使える環境になかったので、生の設定や
  経験のレポートは、筆者にとってとても貴重でした。

     Doug Alcorn <doug@lathi.net>
        新しいカーネルについての記述を改善する手助け

     Kalle Andersson <kalle@sslug.dk>
        MP3 から直接オーディオ CD を焼く方法

     Alan Brown <alan@manawatu.net.nz>

     Rick Cochran <rick@msc.cornell.edu>
        デフォルトでは無効になっている、ncr ドライバの接続切断、再接続機
        能に関するヒント

     Robert Doolittle <bob.doolittle@sun.com>
        cdwrite を HOWTO からなくすための良い根拠

     Markus Dickebohm <m.dickebohm@uni-koeln.de>

     Thomas Duffy <tduffy@sgi.com>
        文法と綴りの大幅な修正。

     Dave Forrest  <dforrest@virginia.edu>
        adapter の綴り修正。

     Jos van Geffen <jos@tnj.phys.tue.nl>
        4.9 節の問題についての指摘

     Bernhard Gubanka <beg@ipp-garching.mpg.de>
        ループバックデバイスを使うには最近のバージョンの mount コマンド
        が必要なことの指摘

     Stephen Harris <sweh@mpn.com>
        オーディオ CD の書き込みについてのヒント

     Janne Himanka <shem@oyt.oulu.fi>
        Joliet CD-ROM を読むためのカーネルパッチに関するポインタ

     Stephan Noy <stnoy@mi.uni-koeln.de>
        オーディオ CD の書き込みに関する情報と経験

     Don H. Olive <don@andromeda.campbellsvil.edu>
        mkhybrid の URL

     Jesper Pedersen <jews@imada.ou.dk>

     Pierre Pfister <pp@uplift.fr>
        CD をまるごとコピーする手順を作成する手伝い

     Daniel A. Quist <dquist@cs.nmt.edu>
        IDE CD-R と新しいバージョンのカーネルに関する情報

     Martti.Rahkila@hut.fi
        loadlin を使って起動する時に既に初期化された CD ライタが起こす問
        題の報告

     Dale Scheetz <dwarf@polaris.net>

     Joerg Schilling <schilling@fokus.gmd.de>
        cdrecord に関する多くの情報

     Martin Schulze <joey@Infodrom.North.DE>
        cdwrite メーリングリストに関する情報

     Gerald C Snyder <gcsnyd@loop.com>
        ext2 形式の CD-ROM (4.4 節を参照)の書き込みテスト

     Art Stone <stone@math.ubc.ca>
        ISO 9660 でないファイルシステムを CD に焼くというアイディア

     The Sheepy One <kero@escape.com>
        焼き損ねの CD-ROM を飲物用のコースターにするという提案

     Erwin Zoer <ezoer@wxs.nl>

  また、綴りの間違いを指摘してくれた以下の方々に感謝します: Bartosz
  Maruszewski <B.Maruszewski@zsmeie.torun.pl>, Alessandro Rubini
  <rubini@prosa.it>, Ian Stirling <ian@opus131.com>, Brian H. Toby

  Linux CD-Writing HOWTO は以上です。(ここで読み終えてもかまいません。)

  7.  日本語訳について

  日本語訳は Linux Japanese FAQ Project が行いました。翻訳に関するご意見
  は JF プロジェクト <JF@linux.or.jp> 宛に連絡してください。

  改訂履歴を以下に示します。

     v1.6j, 18 January 1997
        翻訳: Yoshinori Mamoto (ymamoto@ent.med.osaka-u.ac.jp)

     v2.8.2j, 7 September 1999
        更新: 藤原輝嘉 (fujiwara@linux.or.jp), 校正: 武井伸光
        (takei@cc.kochi-u.ac.jp)

     v2.8.8j, 11 October 1999
        更新: 藤原輝嘉 (fujiwara@linux.or.jp)

     v2.8.15j, 09 March 2000
        更新: 森本 淳 (morimoto@xantia.citroen.org), 校正: 山下義之
        (dica@eurus.dti.ne.jp), 武井伸光 (takei@kondara.org)

     v2.9.3j, 1 November 2000
        更新: 森本 淳 (morimoto@xantia.citroen.org) 校正: 武井伸光
        (takei@webmasters.gr.jp), 中野武雄 (nakano@apm.seikei.ac.jp)

