|
次のページ
前のページ
目次へ
3. CD-R を焼く
「もしおまえを煙と化すなら、焼き上がる間にフィードルでも奏でて時を過ごそう」 (ローマ皇帝ネロが A.D. 64 年に彼のクラシック CDを焼いた時の言葉です。 彼は完璧に考え違いをして、ローマを焼き払っちゃたんですけどね) Linux 上での CD-ROM 作成は 2 つの手順で行います:
この節では、データ 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 に収まるでしょう。 後で CD-ROM となるイメージの作成どんな記録メディア(例: フロッピーディスク、ハードディスク、CD)でも、 利用可能にするにはファイルシステムを作らなければなりません (DOS でいうところのフォーマットです)。ファイルシステムの役割は、 メディアに保存されるファイルを組織化し、まとめることです。 ハードディスクのパーティション上にファイルシステムを作る普通の ユーティリティは、空のファイルシステムをパーティション上に作成します。 このファイルシステムには、ユーザの必要に応じてファイルが 入っていきます。これに対して、書き込み可能な CD は一度しか 書き込めません。したがって、空のファイルシステムを書き込んでしまうと、 フォーマットこそされますが、永遠に空っぽのままになってしまいます。 同じことは書き換え可能なメディアについても言えます。 というのも、任意のセクタを変更することはまだできず、 全体の内容を消さなければならないからです。 したがって、必要となるのはファイルを CD に書き込むための
ファイルシステムを作るツールです。このツールは
オプション `-r' は CD 上の全てのファイルのパーミッションを誰でも読める
ように設定し、RockRidge 拡張を有効にします。自分が何をしているのかを
完璧に把握している人ならともかく、普通はこのオプションを使うとよいでしょう
(ヒント: `-r' がないと、マウントポイントは
さらに Windows との親和性が高い CD-ROM を作りたい場合は、 -J オプション (マイクロソフトの Joliet 拡張) か、mkhybrid を使ってください。 Macintosh で使われている HFS CD-ROM の場合は、 mkisofs の姉にあたる mkhybrid のマニュアル・ページを読んで、 いろんなオプションについて詳しく調べたほうがいいでしょう。 もしかすると、
CD-R を一気に焼く方法があります。これを以下で説明します。 追加のパーティションを作成し、ファイルではなくそのパーティションへ イメージを書き込もうと思うかもしれません。筆者はこういったやり方には反対です。 というのも、コマンドをタイプミスして 間違ったパーティションに書き込みを行ってしまうと、 Linux システムが全て壊れてしまうからです (注意! 私はやってしまいました…)。 また、これはディスク容量の無駄使いです。なぜなら、CD イメージは一時的 なデータであり、CD への書き込みを行った後は削除できるからです。しかし、 raw パーティションを使えば、650MB のサイズのファイルを消す時間を 節約することができます。 CD イメージのテストLinux は、(CD イメージ)ファイルを あたかもディスクのパーティションであるかのように マウントできます。この機能は、CD イメージのディレクトリ構成やファイル のパーミッションが希望通りかどうかを確認する時に便利です。現在は メディアも非常に安くなりましたが、それでも書き込みにはとても時間がかかるので、 少なくとも簡単なテストを行って、時間を節約するとよいでしょう。 これまでの作業で作った
ここで 注意: 古いバージョンの CD イメージを CD に焼くデータを焼く場合に最もよく使われるのは TAO モードなので、 この章では TAO モードでのデータ CD の焼き込みだけを扱っています。 TAO と DAO の違いについてもっと詳しく知りたければ、 オーディオ CD-R に関する節を読んでください。 cdrdao で DAO モードを使った場合は、 ダミーのオーディオ・トラックを TOC ファイルの最後に付けるのを忘れずに。 (README 参照) やることはもうあまり残っていません。まだやってなければ、そろそろ 次のコマンドを実行してみましょうか:
このコマンドは 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 つの文句を唱えた上で、最後のコマンドを入力します: (訳注: 日本のユーザであれば、 鯛と神酒を供え、四方に盛り塩をし、滝に打たれて瞑想しておくのもいいでしょう)
読みやすさを高めるために、CD ライタの SCSI バス上の位置は、自然な名前の 3 つの 環境変数 (SCSI_BUS, SCSI_ID, SCSI_LUN) に格納されます。 cdrecord を使って CD-RW を上書きする時には、古い内容を消すために ``blank=...'' というオプションを指定しなければなりません。CD-RW の中身を 消すための色々な方法については、オンラインマニュアルを見てください。 筆者以外のは人はみんな 400MHz のマシンを持っているのではないかと 時々思うのですが、多くの人は mkisofs の出力を直接 cdrecord に 送り込んでいます:
最初のコマンドはイメージの大きさを調べるためにカラ実行 (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 の使い方は簡単です:
このコマンドは killing-my-software という歌を WAV 形式から CDR 音声形式に 変換します。sox が認識するファイル形式とファイル名の拡張子については オンラインマニュアルを見てください。 手作業での変換結果を出力するには大量のディスク容量が必要なので、 cdrecord には WAV, AU フォーマットを読み込む機能が組み込まれました。 したがって、音声ファイルの拡張子が .wav または .au (かつサンプルレートが 「ステレオ、16 ビット、44.1 kHz」)ならば、 手作業で CD-R フォーマットに変換しなくても、 オーディオ・トラックとして使うことができます。 ただ、cdrecord の制約として、 音声データの大きさが 2352 バイトの整数倍、かつ 705,600 バイト以上の 大きさである必要があります。 WAV ファイルの全てが必ずしもこうなっているわけではありません。 そういうファイルの場合は、sox を使って 2362 バイトの整数倍の大きさにまで、オーディオ・データに余白を入れて 引き延ばす必要があります。 オーディオ CD の書き込み (TAO)TAO モードの場合、 オーディオ CD は各曲独立したイメージから成るオーディオ・トラックで 構成されます。 CD に 10 曲入れたいなら、イメージを 10 個作るわけです。 cdrecord は、-audio オプションが指定されるとオーディオトラックを CD イメージとして書き込みます。他のオプションについてはデータ CD を書き込む時と同じです (非常に特殊な要求がある場合は除きます)。 以下の 3 つの例は全て同じ処理を行いますが、 トラックの読み込みは異なる形式のサウンドファイルから行われます:
こうすれば、各曲の間に 2 秒ずつ間をあけたオーディオ CD を作れます。 cdrecord が直接読めない重要なファイルフォーマットの一つが MPEG Layer 3 です。 このフォーマットを CD-R フォーマットに変換するには、 ``mpg123 --cdr - track1.mp3 > track1.cdr'' としてください。 --cdr オプションで、エンコードしたいフォーマットを指定します(上記参照)。 古いバージョンの mpg123 だと、標準出力に出すには、 ただの - でなく -s オプションを付けます。 逆方向の変換 (WAV を MPEG にする) には、 WAV ファイルを LAME で処理してください。 多数の MP3 ファイルからまとめて CD-R を作るには、 以下のコマンド列を使います:
マシンの速度によっては、書き込み速度を ``speed=1'' (cdrecord のオプション) に落とす方がよいかもしれません。``speed=4'' を使うと、マシンは MP3 ファイルを 4 倍速で演奏できなければなりません。mpg123 は CPU 時間 を大量に消費します! どうすべきか分からなければ、-dummy コマンド (レーザーのスイッチを切ったままにする) を指定して cdrecord をカラ実行してください。 DAOオーディオトラック間の無音部分をなくしたければ、disk-at-once (DAO) 書き込みを使わなければなりません。これは既に説明した(トラックを一つずつ焼く) track-at-once (TAO) 録音の反対です。DAO のサポートは現在 cdrdao が最も進んでいます。詳しくは cdrdao のホームページを見てください。 DAO モードで CD マスターを作るなら、 単一のイメージ (音声ファイル) にし、 設定ファイルでコントロール・トラック情報を与えてください。
3.3 混合モードの CD-ROMこの話題については書くことはあまりありません。-data オプションや -audio オプションを使って、(後に続く)イメージの種類を指定するだけです。 例を以下に示します:
次のページ 前のページ 目次へ |
[ |