CDRECORD(1) Schily´s USER COMMANDS CDRECORD(1) 名前 cdrecord - マスタからオーディオ CD やデータ CD を記録する 書式 cdrecord [ general options ] dev=device [ track options ] track1...trackn 説明 cdrecord は Orange Book CD-Recorder でデータ CD やオーディオ CD を記 録 するために使う。 device は CD レコーダの scsibus/target/lun を指す。 SunOS での通信は汎 用 SCSI ドライバ scg を用いて行われる。他の OS では、このドライバをシミ ュ レ ー ト す るライブラリを使う。使用可能な書式は、 dev= scsibus,tar- get,lun または dev= target,lun である。後者の場合、CD-R はマシンのデ フ ォルトの SCSI バスに接続されていなければならない。 scsibus, target, lun は整数である。 OS や SCSI 転送の実装のなかには、これに加えてデバイス フ ァ イ ル 名を指定しなければならないものもある。この場合の正しい書式は、 dev= devicename:scsibus,target,lun または dev= devicename:target,lun で あ る。このようなシステムでは、指定されたデバイスノード名が 1 つの SCSI デバイスのみを参照している場合、 dev= devicename:scsibus,target,lun の 代 わりに、省略形の dev= devicename:@ または dev= devicename:@,lun を使 うことができる。 リモートの SCSI デバイスにアクセスするためには、リモートのデバイスで あ る ことを示すインジケータを SCSI デバイス名の前に付ける必要がある。リモ ートデバイスのインジケータは REMOTE:user@host: または REMOTE:host: とい う形式である。 指 定 可 能 な リ モ ー ト SCSI デバイス名は、 REMOTE:user@host: または REMOTE:user@host:1,0,0 という形式である。 1 つ目の形式では、リモート で SCSI デバイスのスキャンを行わせる。 2 つ目の形式では、 host の SCSI bus # 1,target 0 lun 0 に接続されている SCSI デバイスにアクセスする。 cdrecord を全ての UNIX 系プラットフォームで汎用的にするためには、 dev= devicename:scsibus,target,lun という書式が好ましい。これによりデバイス についての各 OS 特有の知識をユーザーに対して隠蔽することができる。ま た こ れにより、実際のデバイスファイル名や scsibus,target,lun を指定する方 法を、特定の OS 上でサポートする必要がなくなる。 scsibus 0 はマシンのデフォルトの SCSI バスである。マシンの SCSI 設定 に ついてのより詳細な情報は、ブート時のメッセージや /var/adm/messages を参 照すること。 scsibus,target,lun にどのような値を指定してよいか分らな い 場 合は、以下に記述されている cdrecord の -scanbus オプションを使ってみ ること。 ファイル /etc/default/cdrecord が存在する場合、 dev= のパラメータはこの ファイル中のドライブ名ラベルにもなる (「ファイル」セクションを参照)。 SVr4 互換のシステムでは、 cdrecord はリアルタイムクラスを使い、可能な限 りスケジューリング優先度を高くする (全てのカーネルプロセスより優先度 を 高 く す る)。 POSIX リアルタイムスケジューリングを備えたシステムでも、 cdrecord はリアルタイムスケジューリングを使う。ただし、カーネルプロセス より高い優先度は得られない。 Track At Once モードでは、各 track はそのトラックのデータが書かれた個別 のファイルに対応する。引き数が ‘-’ の場合は標準入力がトラックとして使わ れる。この場合は stdin (標準入力) から 1 つのトラックだけが読み込まれる 。 一般的なオプション 一般オプションはトラックファイル名やトラックオプションより前に指定し な ければならない。 -version バージョン情報を表示して、終了する。 -v 一般的な表示の詳細度を 1 つ上げる。例えば、書き込み処理の進捗状 況を表示するために使われる。 -V SCSI コマンド転送に関する表示の詳細度を 1 つ上げる。 CD レコーダ における書き込み処理での問題をデバックするのに役立つ。簡単なエラ ーメッセージしか表示されない場合は、このフラグを使って詳細な表示 を 行わせることができる。 -VV を指定すると、データバッファの内容 も表示される。 -V や -VV を使うと、処理が遅くなりバッファアン ダ ーランの原因になるかもしれない。 debug=#, -d (debug=# を使って) その他のデバッグレベルを # に設定する。または (-d を使って) デバッグレベルを 1 つ上げる。 -dd を指定した場合、 debug=2 と等しくなる。 libscg でドライバをオープンする際の問題や 、セクタサイズとセクタタイプの問題を発見するのに役立つ。 -debug を使うと、処理が遅くなりバッファアンダーランの原因になるかもしれ ない。 kdebug=#, kd=# scg ドライバに対して、SCSI コマンドを動作させているときのカー ネ ルデバッグレベルを変更させる。 -silent, -s SCSI コマンドが失敗したときの状況報告を表示させない。 -force エラーが起こった場合でも処理を続行させる。このオプションは、壊れ た CD-RW ディスクを空にできるように、いくつかのトリックを使っ て 実装している。 -dummy 記録プロセスの全ての段階を CD レコーダに行わせるが、処理中にレー ザーをオフにしておく。システムにおけるタイミングと負荷がかかった 場合の応答が不明な場合は、実際に CD に書き込む前に何回かテストし ておくことを薦める。 -dao Disk At Once モードに設定する。今のところ、non raw Session At Once モードをサポートしている MMC ドライブでしか動作しない。 -multi マルチセッション CD の作成を可能にする。メディアの最後のセッショ ンを作成するのでなければ、マルチセションディスクの全てのセッショ ンについて、このオプションを指定する必要がある。 CD レコーダが後 でセッションを追加できるように修正を行う。次のプログラム領域への リ ン ク を含んだ TOC が作成される。ここで作成されたメディアは、 (CDplus 以外の) 製品版 CD とは 100% 互換ではない。マルチセッショ ン CD の記録だけに使用すること。このオプションを指定した場合、デ フォルトのトラックタイプは CD-ROM XA mode 2 である。 Sony 製のド ライブはハードウェアが CD-ROM XA mode 2 に対応していない。このよ うなドライブでマルチセッションのディスクを作成するた め に は 、 -data オプションを指定しなければならない。 cdrecord はデータセク タをオーディオセクタに変換するコーダーを備えていないので、マルチ セッションディスクを DAO/SAO モードで記録したい場合は、 -data オ プションをつけて CD-ROM セクタをマルチセッションにしなければなら な い。全てのドライブがマルチセッション CD の DAO/SAO モードに対 応している訳ではない。 -msinfo mkisofs-1.10 以降に適した形式のマルチセッション情報を取得する。 このオプションは、少なくとも 1 つの閉じたセッションがあり、セ ッ シ ョンを追加できる (まだ閉じられていない) CD のみで動作する。こ の操作に適さないディスクからマルチセッション情報を取得しようとし た場合、エラーメッセージを出すドライブもある。 -toc CD の table of content (内容一覧) または PMA を取得して表示する 。このオプションを使うと、 cdrecord は CD-R ドライブと CD-ROM ド ライブで動作する。 -atip CD-R メ デ ィアや CD-RW メディアの ATIP (absolute Time in Pre- groove) 情報を取得して表示する。このオプ シ ョ ン を 使 う と 、 cdrecord は ATIP 情報を取得する。ドライブが ATIP 情報の読み取り に対応していない場合、記録されている情報の一部もしくは何も表示さ れ ない。 ATIP 情報の読み取りは、 MMC 互換のわずかなドライブでし かサポートされていない。 cdrecord が最初のセッションの lead-in start time を取得できる 場 合、メディアにかかれた製造者情報をデコードして表示しようとする。 -fix ディスクの固定 (fixated) のみを行う (つまり、CD-R の TOC が書 き 込 まれる)。何らかの理由により、ディスクには書かれたが固定が行わ れなかった場合に、このオプションを使うことができる。現在のところ 、このオプションは昔の TEAC 製ドライブ (CD-R50S と CD-R55S) では 動作しない。 -nofix トラックを書き込んだ後にディスクを固定しない。このオプションはオ ーディオディスクを段階的に作成するために使用できる。固定していな いディスクは、一般には CD を記録するドライブ以外では使えないが、 このようなディスクを再生できるオーディオ CD プレーヤもある。 -waiti SCSI ドライバをオープンする前に、標準入力からの入力が可能になる のを待つ。このオプションを使うと cdrecord がマルチセッションディ スクに追加セッションを書き込んでいる間でも、パイプからの入力を読 み取ることができるようになる。マルチセッションディスクに追加セッ シ ョンを書き込んでいる場合、 mkisofs は出力を書き出す前に前のセ ッションを読み込む必要がある。標準入力からの入力が可能になるのと 同時に、 cdrecord が SCSI ドライバをオープンする場合は、このオプ ションを使用できない。 -load メディアをロードして終了する。このオプションはトレーのロード機構 が あるドライブでしか動作しないが、 Kodak のディスクトランスポー タを使う場合にも便利である。 -eject 動作後にディスクを取り出す。 (Philips などの) いつかのデバイスで は、新しいディスクを作成する前にメディアを取り出す必要がある。こ れらのデバイスでは、 -dummy テストをした直後に実際のディスクを作 成できない。 speed=# 書き込みプロセスの速度ファクタを # にする。 # はオーディオ速度の 何倍の速さにするかを表す整数である。オーディオ速度は CD-ROM では 約 150 KB/s、 CD-Audio では約 172 KB/s である。 speed オプション を指定しない場合、 cdrecord は環境変数 CDR_SPEED から速度を取 得 す る。 speed=2 または speed=4 で問題がある場合、 speed=0 を試し てみること。 blank=type CD-RW を空 (blank) にして終了する。または、書き込む前に CD-RW を 空にする。空にする方法は以下のいずれかである。 help 空にする方法の一覧を表示する。 all ディスク全体を空にする。長い時間がかかる。 fast 最小限の手間でディスクを空にする。 PMA, TOC, pregap を消去する。 track トラックを空にする。 unreserve 予約済みトラックの予約を解除する。 trtail トラックの末尾を空にする。 unclose 最後のセッションを閉じない。 session 最後のセッションを空にする。 このオプションを -force フラグと一緒に使うと、 -force フラグなしでは 空 にできない CD-RW ディスクを空にすることができる。ドライブの中にはある種 の壊れた CD-RW ディスクの消去を続行することができないものもあるの で 、 blank=all を指定する必要があるかもしれない。 -force が指定された場合、 cdecord はできる限りのことを行うが、空にする操作が成功するか否かは、 最 終的にはドライブのファームウェアに依存する。 fs=# fifo (リングバッファ) サイズを # にする。このオプションは dd(1), sdd(1), star(1) のものと同じ方法で使うことができる。他の単位が指 定 されない限り、サイズはバイト数であるとする。数字の直後に ‘b’, ‘k’, ‘m’, ‘s’, ‘f’ を付けることができる。それぞれサイズ が 512, 1024, 1024*1024, 2048, 2352 倍であることを表す。 ‘x’ や ‘*’ で区 切ってサイズを指定した場合、2 つの数の掛け算が行われる。よって、 fs=10x63k は fifo のサイズを 630 kB に指定したことになる。 fs= 引き数で指定されたサイズには、管理に必要な共有メモリの分も含 まれている。このメモリの大きさは、少なくとも 1 ページで あ る 。 fs= オプションが指定されていない場合、 cdrecord は fifo のサイズ を環境変数 CDR_FIFOSIZE から取得する。デフォルトの fifo サイズは 、現在のところ 4 MB である。 fifo はリアルタイム書き込みプロセスのバッファを増やすために使わ れる。これによって、 mkisofs と cdrecord をパイプで直接つない で 動作させることができる。 fifo がアクティブで、かつ CD を作成する ために mkisofs から cdrecord へのパイプを使った場合 、 cdrecord が 書き込みをする前に mkisofs が落ちると、 cdrecord はディスクの 何も変更せずに終了する。推奨される fifo サイズは 4 〜 32 MB であ る 。経験則として、fifo サイズは少なくとも CD レコーダの内部バッ ファのサイズと同じなければならない。また、マシンで使用されている RAM の物理サイズの半分以下でなければならない。 fifo サイズが充分 大きい場合、 fifo empty count が 0 で、fifo min fill が 20% 以上 であるという fifo の統計情報が表示される。 fifo のためにあまり多 くのメモリ量を使わない方がよい。他に何もしていないマシンで、 CD を書き込むのに 8 MB 以上のメモリが必要になるのは、マシンパワーが 足りないか、ハードウェアに問題があるか、設定が間違っている場合で ある。 (Sparcstation-2 などの) sun4c アーキテクチャでは、 1 プロ セス当たりの MMU ページテーブルエントリは 16MB しかない。 sun4c では fifo に 14 MB 以上を使うと、 OS が MMU テーブルを絶えず再読 み込みするために非常に時間がかかる。 Sun の新しいマシンでは、 こ の ような MMU のハードウェア問題はない。 PC ハードウェアがこの問 題に影響されるかについての情報はない。 バッファアンダーランやそれと同様な問題があり、か つ fifo empty count が 0 であるという表示がされる場合は、ハードウェア上の問題 がある。この場合、fifo のサイズは充分である。 dev=target CD レコーダの SCSI target を設定する。上記を参照。一般的なデバイ ス 指定では dev=6,0 である。数値での target 指定の他に、ファイル 名も指定しなければならない場合、そのファイル名は実装依存である。 この場合の正確なファイル名は、対象とする OS の独自のマニュアルに 書かれているだろう。 CAM をサポートしてない FreeBSD システムでは 、 (/dev/rcd0.ctl などの) 制御デバイスを使う必要がある。この場合 の正確なデバイス指定は、 dev=/dev/rcd0.ctl:@ である。 Linux では、パラレルポートアダプタに接続されたデバイスは、 仮 想 SCSI bus に対応付けされる。別のパラレルポートアダプタは、この仮 想 SCSI bus の別の target に対応付けされる。 dev オプションが指定されていない場合、 cdrecord は 環 境 変 数 CDR_DEVICE からデバイスを取得しようとする。 dev= オプションの引き数に文字 ’,’, ’/’, ’@’, ’:’ がない場合、フ ァイル /etc/default/cdrecord に書かれたラベル名として扱われる ( 「ファイル」セクションを参照すること)。 timeout=# SCSI コマンドのデフォルトのタイムアウトを # 秒にする。 SCSI コマ ンドのデフォルトのタイムアウトは、 SCSI コマンドを送る際の最短タ イムアウトとして使われる。 SCSI コマンドがタイムアウトにより失敗 した場合、タイムアウトの値を失敗したコマンドのデフォルトのタイム アウトより長くすることができる。タイムアウトを長くしてコマンドが 正常に動作した場合は、成功したときのタイムアウト時間とそのコマン ド を、このプログラムの著者に知らせて下さい。 timeout オプション が指定されない場合、デフォルトのタイムアウト 40 秒が使われる。 driver=name このオプションを指定すると、デバイスに対してユーザーが指定したド ラ イ バ 名 を使える。使用可能なドライバのリストを取得するには、 driver=help を使うこと。このオプションは存在するのは、サポートさ れているドライブに似ているが、 cdrecord が直接検出できないドライ ブで cdrecord を使うことができるようにするためである。このオプシ ョンは細心の注意を払って使用すること。デバイスに合わないドライバ を使うと、ディスクを使えなくしてしまう可能性が高くなる。合わない ドライバを使った場合、最も良くても -speed または -dummy が動作し ない。 リストには cdr_simul と dvd_simul という 2 つの特別なドライバ エ ントリがある。これらのドライバエントリは、いろいろなスピードでの タイミングテストや、 -dummy オプションに対応していないドライバで のタイミングテストを行うために作られている。シミュレーションドラ イバは、バッファサイズが 1MB のドライブを実装している。また、 こ の バッファサイズは環境変数 CDR_SIMUL_BUFSIZE で変更できる。シミ ュレーションドライバはバッファアンダーランも正しくシミュレートす る。 -dummy オプションを指定すると、バッファアンダーランの場合で も終了しない。 driveropts=option list ドライバ特有のオプションを設定する。オプションはコンマで区切った リ ス トで指定する。使用可能なオプションのリストを取得するには、 driveropts=help を -checkdrive オプションと一緒に指定すること 。 現 在のところ、 burnproof オプションのみが実装されている。これは Sanyo BURN-Proof 技術を使っているドライブで、バッファアンダー ラ ン 検証書き込み (Buffer Underrun Proof writing) に対応するための ものである。 -checkdrive 現在のドライブに対応したドライバが存在するかをチェックして、終了 す る。ドライブが既知のものであれば、 cdrecord は終了コード 0 で 終了する。 -prcap SCSI-3/mmc 互換ドライブでモードページを 0x2A としたときに取得 で き るドライブの機能を表示する。 kB のマークがあるものは、1000 バ イトを kilo-byte とする。また KB のマークがあるものは、1024 バイ トを Kilo-byte とする。 -inq ドライブから情報の取得 (inqurity) を行い、取得された情報を表示し て、終了する。 -scanbus 全ての SCSI バス上のドライブをスキャンし、取得できた文字列を表示 する。このオプションは、システム上の CD レコーダの SCSI アドレス を知るために使われる。ラベルに使われる数字は bus * 100 + target で計算される。 -reset CD レコーダのある SCSI バスをリセットする。このオプションは全て の OS 上で動作するわけではない。 -ignsize メディアの既知のサイズを無視する。このオプションは特に注意して使 うべきである。このオプションはデバッグのためだけに存在するので、 他の目的に使用してはならない。通常の容量以上にディスクに書き込む 必要はない。 -useinfo audio オプションを上書きするのに *.inf ファイルを使う。このオプ ションを使うと、*.inf ファイルからプレギャップサイズ情報を読み込 む。 *.inf ファイルは 1 トラック毎のオーディオデータが書かれたフ ァイルと関連づけられる。 defpregap=# 第 1 トラック以外の全てのトラックのデフォルトのプレギャップサ イ ズ を設定する。このオプションは現在のところ、 track-at-once ディ スクを作成する際に各トラックの先頭に 2 秒の無音領域がない場合 に は、 TEAC ドライブでしか機能しない。 このオプションは将来なくなるかもしれない。 -packet packet writing mode に設定する。これは実験的なインターフェースで ある。 pktsize=# パケットサイズを # に設定し、修正パケットモードを使わせる。こ れ は実験的なインターフェースである。 -noclose 現在のトラックを閉じない。パケット書き込みモードでのみ役立つ。こ れは実験的なインターフェースである。 mcn=med_cat_nr CD の メディアカタログ番号 (Media Catalog Number) を med_cat_nr に設定する。 トラックオプション トラックオプションはトラックファイル名と合わせて指定する。 isrc=ISRC_number 次 の ト ラックの 国際標準録音資料コード (International Standard Recording Code) を ISRC_number にする。 index=list 次のトラックのインデックスリストを設定する。インデックスリストは 、 コンマで区切られた数値のリストで、インデックスは 1 から始める 。このリストの最初のエントリには 0 が書かれていなければならな い 。以降はこれより大きな数値が順番にリストされていなければならず、 それぞれの数値は 1 単位を 1/75 秒として、インデックスの開始を 表 す 。インデックスリストは以下のような形式である: 0,7500,15000 は インデックス 1 を開始トラックとし、インデックス 2 を開始トラック か ら 100 秒後、インデックス 3 を開始トラックから 200 秒後とする 。 -audio このフラグが指定されると、以降の全てのトラックが (Red Book と 同 じ) CD-DA オーディオフォーマットで書かれる。このトラック用のデー タファイルは、ステレオ 16-bit デジタルオーディオデータで、サプリ ングレートは 1 秒あたり 44100 回にすべきである。バイトオーダーは 、MSB left, LSB left, MSB right, LSB right, MSB left, ... と い うようにする。トラックは 2352 バイトの倍数にする。書き込みプロセ スにおいて、データが 2352 バイトの倍数で読み込まれるので、オーデ ィ オトラックのマスタイメージを raw ディスクにおくことはできない 。 ファイル名が .au または .wav で終る場合、ファイルは構造化オー デ ィオファイルデータファイルとして扱われる。この場合 cdrecord は、 ファイルを Sun オーディオファイルまたは Microsoft .WAV ファイ ル と仮定して、オーディオヘッダ情報以外をスキップしてオーディオデー タを抽出する。それ以外の場合は、オーディオデータストリームにヘッ ダが含まれていないときにしか cdrecord は正常に動作しない。多くの 構造化オーディオファイルは長さが (1/75 秒の) ブロックの倍数で な い の で 、 -pad オプションも指定しなければならないことが多い。 cdrecord は .WAV ファイルのオーディオデータが Intel (リトルエ ン ディアン) バイトオーダーで書かれていると認識して、 CD レコーダが ビッグエンディアンのデータを必要としているときには、データのバイ ト交換を行う。 cdrecord は、(1 秒あたり 44100 回の 16 ビットステ レオサンプリングを行い PCM コーディングする) Red Book の必要条件 を満たさないオーディオファイルの使用を拒否する。 他の構造化オーディオデータ形式を cdrecord の入力に使う場合は、デ ータの構造が上記の (ビッグエンディアンバイトオーダー) 構造であれ ば、通常は動作する。しかし、データ形式にヘッダが含まれている場合 は、トラックの開始時にクリック音が聞こえてしまうだろう。 -data と -audio がどちらも指定されていない場合、 cdrecord は、フ ァ イル名が .au または .wav で終るときは -audio をデフォルトとし 、それ以外のときは -data をデフォルトとする。 -swab このフラグが指定されている場合、オーディオデータはバイトスワップ ( リ ト ルエンディアン) オーダーであると仮定する。 Yamaha, Sony, new SCSI-3/mmc などの CD ライタでは、オーディオデータがリトル エ ンディアンオーダーでなければならない。他の CD ライタでは、オーデ ィオデータは SCSI プロトコルで使われるビッグエンディアン (ネット ワ ーク) バイトオーダーなければならない。 cdrecord は、CD レコー ダがビッグエンディアンのオーディオデータを必要とするのか、リトル エンディアンのオーディオデータを必要とするのかを認識して、データ ストリームのバイトオーダーをレコーダの必要にあったものに修正する 。 -swab フラグが必要になるのは、データストリームが Intel (リト ルエンディアン) バイトオーダーの場合のみである。 cdrecord の詳細な出力には、入力データをレコーダが必要とするバ イ トオーダーに合わせるのために入れ換える必要があるかが表示される。 cdrecord は -swab フラグが実際にトラックに指定されているかどうか は表示しない。 -data こ のフラグが指定されている場合、これ以降の全てのトラックは CD- ROM mode 1 (Yellow Book) フォーマットで書き込まれる。デ ー タ は 2048 バイトの倍数である。 The file with track data should con- tain an トラックデータのファイルは、 ISO-9660 また は RockRidge フ ァイルシステムイメージでなければならない (詳細は mkisofs を参 照すること)。トラックデータが ufs ファイルシステムイメージの場合 、フラグメントサイズを 2 KB バイトに設定するれば、セクタサイズが 2 KB の CD ドライブを読み込みに使うことができる。 他のフラグが指定されていない場合、-data がデフォルトである。 -data と -audio がどちらも指定されていない場合、 cdrecord は、フ ァ イル名が .au または .wav で終るときは -audio をデフォルトとし 、それ以外のときは -data をデフォルトとする。 -mode2 このフラグが指定されると、これ以降の全てのトラックは CD-ROM mode 2 フォーマットで書き込まれる。データは 2048 バイトの倍数である。 -xa1 このフラグが指定されると、これ以降の全てのトラックは CD-ROM XA mode 1 フォーマットで書き込まれる。データは 2048 バイトの倍数で ある。 -xa2 このフラグが指定されると、これ以降の全てのトラックは CD-ROM XA mode 2 フォーマットで書き込まれる。データは 2048 バイトの倍数で ある。 -cdi このフラグが指定されると、これ以降の全てのトラックは CDI フォ ー マットで書き込まれる。データは 2048 バイトの倍数である。 -isosize ISO-9660 フ ァイルシステムサイズを次のトラックのサイズとする。 raw ディスクパーティションまたはマスタ CD からトラックのイメージ を 読み込ませたい場合、このオプションが必要になる。 raw ディスク パーティションの場合は、 CD のサイズを ISO ファイルシステムの サ イ ズに制限するために -isosize オプションが必要となる。マスタ CD の場合は、 track at once モードのときに CD レコーダに 2 つのラン ア ウト (run out) ブロックを読み込ませないために、 -isosize オプ ションが必要になる。この 2 つのランアウトブロックは読み込むこ と が できず、 defective コピーを引き起こすバッファアンダーランの原 因になる。 cdrecord がトラックデータを stdin から読み込む場合 に は、このオプションを使ってはならない。今のところ -multi オプショ ンが指定されている場合には、ファイルシステムのサイズを決定するた めに、このオプションを使うことはできない。 -pad デ ータトラックの場合は、各データトラックの後ろにデータ 0 が 15 セクタ分追加される。この場合、 -pad オプションは padsize= オプシ ョ ン によって上書きされる。ただし、このオプションは padsize=15s の省略形のままである。 -pad がオーディオトラックを参照している場 合、 cdrecord はオーディオデータが 2352 バイトの倍数になるように データを埋め込む。詰め込まれるオーディオデータはバイナリの 0 で あり、全くの無音状態と等しい。 -pad は -nopad によって無効にされるまで有効であり続ける。 padsize=# 次のトラックに詰め込まれるデータ 0 の数を # に設定する。 -pad オ プションの動作とは反対に、新たなトラックでは padsize= の値 が 0 に リセットされる。使用可能な引き数は fs= オプションを参照するこ と。 CD ドライブがトラックの最終セクタを読み込めない場合、または ISO-9660 ファイルシステムの先読みバグがある Linux システム上で CD を読み込ませたい場合は、このオプションを使うこと。空のファ イ ル をトラックデータとして用いる場合、このオプションは全てを 0 で 埋めたディスクを作成するために使われる。 -nopad 以降のトラックに対して 0 の埋め込みを行わない - これがデフォルト である。 -shorttrack こ れ以降のトラックで、Red Book トラック長基準を破っても構わない ことにする。トラック長は最短でも 4 秒なければならない。このオ プ シ ョンは DAO モードで用いられた場合にのみ有効である。全てのドラ イブがこの機能に対応しているわけではない。ドライブは結果として得 られる CUE シートを受け付けなければならない。 -noshorttrack Red Book トラック長基準を再び守らせる。トラックは少なくとも 4 秒 でなければならない。 pregap=# 次のトラックのプレギャップサイズを設定する。このオプションは現在 のところ、TEAC 製ドライブで各トラックの前に 2 秒間の無音を入れず に track-at-once ディスクを作成するときにしか動作しない。 このオプションは将来なくなる。 -preemp このフラグを指定すると、オーディオトラックの全ての TOC エント リ は、オーディオデータが 50/15 μ秒のプレ・エンファシス (pre-empha- sis) でサンプリングされているとする。ただし、このデータがファ イ ルからディスクに移される際に変更されることはない。このオプション はデータトラックには何も影響しない。 -nopreemp このフラグが指定されていると、これ以降のオーディオトラックの TOC エントリは、オーディオデータのマスタがリニアデータとして作成され ているものとする - これがデフォルトである。 tsize=# 次のトラックのマスタイメージが raw ディスクに格納されている場 合 、ディスク上の有効なデータ量を指定するために、このオプションを使 うこと。次のトラックのイメージが通常のファイルとして格納されてい る場合、ファイルのサイズからそのトラックの長さを決定する。トラッ クに ISO 9660 ファイルシステムイメージがある場合は、ファイルシス テムイメージの長さを決定するために -isosize オプションを使うこと 。 TEAC プログラミングインターフェースを使ういくつかのドライブで は 、 Disk at Once モードでも Track at Once モードでもディスクの書 き込みを始める前に cdrecord が各トラックのサイズを知る必要がある 。今のところ cdrecord はサイズをチェックして、書き込みを始める前 に中止する。このような現象が起こった場合は、 mkisofs -print-size を実行して、得られた結果を cdrecord の tsize= オプションの引き数 として使うこと。 指定可能な引き数は fs= オプションを参照すること。 例 以下の例では、CD レコーダがマシンのプライマリ SCSI バスに接続されている と仮定している。 SCSI ターゲット ID は 2 に設定されている。 フ ァイル cdimage.raw にあるデータを使って単純な CD-ROM を 2 倍速で記録 する: cdrecord -v speed=2 dev=2,0 cdimage.raw Rock Ridge 拡張された ISO 9660 ファイルシステムのイメージを作成する: mkisofs -R -o cdimage.raw /home/joerg/master/tree Solaris で CD を書き込む前に上の結果のファイルを検査する: mount -r -F fbk -o type=hsfs /dev/fbk0:cdimage.raw /mnt Linux では: mount cdimage.raw -r -t iso9660 -o loop /mnt 以下のように続ける: ls -lR /mnt umount /mnt システム全体のスピードが充分で、ファイルシステムの構造がそれほど複雑 で な い場合、 cdrecord は ISO 9660 ファイルシステムのイメージを作成せずに 実行できる。単純にパイプラインで実行すればよい: mkisofs -R /master/tree | cdrecord -v fs=6m speed=2 dev=2,0 - このパイプラインを実行するために推奨される最小の fifo サイズは 4 MB で あ る。デフォルトの fifo サイズは 4 MB であるので、別の fifo サイズを指 定したい場合以外は fs= オプションを指定する必要はない。システムに負荷が か か っている場合は、 mkisofs もリアルタイムクラスで実行すべきである。 mkisofs の優先度を上げるためには、コマンド mkisofs -R /master/tree を Solaris では priocntl -e -c RT -p 59 mkisofs -R /master/tree に、 UNIX International 互換のリアルタイムスケジューリングのないシス テ ムでは nice --18 mkisofs -R /master/tree に変更する。 Solaris では cdrecord は優先度 59 で実行されるので、 mkisofs は優先度 58 以下で実行すべきである。他のシステムでは nice -18 以上で mkisofs で 実行すべきである。 Sparcstation-2 で Yamaha CDR-400 を使ってディスク上にファイルシステムイ メージを置かずに CD-ROM を作成するテストを行ってみたが、マシンに負荷 が かかっていない場合でも 4 倍速では動作しなかった。より高速なマシンでは、 負荷がかかった場合でも 4 倍速で動作できるだろう。 track01.cdaudio, track02.cdaudio, ... というファイルに各トラックのデー タがある場合に、単純な CD-DA (オーディオ) を等速で記録するには: cdrecord -v speed=1 dev=2,0 -audio track*.cdaudio 上 の例が 2 倍速でできるかをチェックするためには、 dummy 書き込みオプシ ョンを使うこと: cdrecord -v -dummy speed=2 dev=2,0 -audio track*.cdaudio 最初のトラックは ISO 9660 ファイルシステム cdimage.raw、 そ れ 以 外 は track01.cdaudio, track02.cdaudio, ... というオーディオトラック、という ようなミックスモード CD を記録するには: cdrecord -v -dummy dev=2,0 cdimage.raw -audio track*.cdaudio 書き込みを始める前にトラックのサイズを知らせる必要があるドライブを操 作 するには、最初に mkisofs -R -q -print-size /master/tree を実行し、次に mkisofs -R /master/tree | cdrecord speed=2 dev=2,0 tsize=XXXs - を実行する。ここで XXX は先に実行した mkisofs の出力で置き換える。 オーディオ CD を最も正確な方法で複製するには、最初に cdda2wav -v255 -D2,0 -B -Owav を実行し、次に cdrecord -v dev=2,0 -dao -useinfo *.wav を実行する。 環境変数 CDR_DEVICE SCSI 転送ライブラリの open コールに適したデバイス識別子と、ファ イル /etc/default/cdrecord にかかれたラベルを設定できる。 CDR_SPEED デフォルトの書き込みの速度を設定する (-speed オプションを参照)。 CDR_FIFOSIZE FIFO のデフォルトサイズを設定する (fs=# オプションを参照)。 ファイル /etc/default/cdrecord デフォルトの値は、/etc/default/cdrecord にある以下のオプションで 設定できる。例えば、 CDR_FIFOSIZE=8m や CDR_SPEED=2 のように設定 できる。 CDR_DEVICE SCSI 転送ライブラリの open コールに適したデバイス識別子と 、ファイル /etc/default/cdrecord にかかれたラベルを設定で きる。これによりシステム上の特定のドライブを識別できる。 CDR_SPEED デフォルトの書き込みの速度を設定する (-speed オプションを 参照)。 CDR_FIFOSIZE FIFO のデフォルトサイズを設定する (fs=# オプションを参照) 。 その他のラベル シ ス テム上の特定のドライブを識別する。識別子は文字 ’,’, ’/’, ’@’, ’:’ を含んではならない。 ラベルに続く行には、タブで区切られたアイテムのリストが 書 か れる。今のところ、ドライブの SCSI ID・ドライブのデフォ ルトの速度・デフォルトの FIFO サイズ、という3 つのアイ テ ムが認識される。 speed と fifosize の値を -1 に設定すると 、cdrecord はグローバルのデフォルト値を使う。典型的な例と しては以下のようものである: teac1= 0,5,0 4 8m yamaha= 1,6,0 -1 -1 こ れ は cdrecord に対して、 teac1 という名前のドライブが scsibus 0, target 5, lun 0 にあり、速度を 4 倍速、FIFO サ イ ズ を 8 MB にすることを指示する。 2 番目のドライブは scsibus 1, target 6, lun 0 にあり、デフォルトの速度とデフ ォルトの FIFO サイズを使う。 関連項目 cdda2wav(1), readcd(1), scg(7), fbk(7), mkisofs(8). 注意 Solaris において USCSI フォールバック SCSI 転送コードを使いたい場合は、 ボリューム管理を停止する必要がある。ボリューム管理が動作してい る と 、 cdrecord -scanbus すらも動作しない。 Track At Once モードで作られたディスクは、CD 製造業者によって大量生産さ れる製品のマスタには向いていない。このようなディスクを記録するには disk at once オプションを指定する必要がある。 Track At Once で作られたディス クは、通常はどの CD プレーヤでも読めるが、古いオーディオ CD プレーヤ の なかにはオーディオトラックの間に 2 秒間のクリック音を出してしまうものも ある。 トラックの最小サイズは 4 秒または 300 セクタである。これよりも小さい ト ラ ックを書き込んだ場合、 CD レコーダがダミーブロックを追加する。これが SCSI エラーメッセージに現れたとしてもエラーではない。 cdrecord は、SparcStation 20/502 上のアップグレ ー ド さ れ た Philips CDD-521 レコーダで等速と 2 倍速でテストして問題がなかった。もっと遅いコ ンピュータシステムでも動作するだろう。 Philips/HP/Plasmon/Grundig の 新 し いドライブでも、 Yamaha の CDR-100 と CDR-102 でも動作する。 Plasmon RF-4100 でも動作するが、マルチセッションについてはテストしていない。 ア ッ プグレードされていない Philips CDD-521 では動作しない。 Sony CDU-924 をテストしたが、ハードウェアが XA-mode2 に対応していない。よっ て Sony 製 ドライブでは適合したマルチセッションディスクを作成することはできない 。 Ricoh RO-1420C でも動作するが、 speed=2 で使うと問題が発生することが あるようなので、このような場合には speed=0 を試してみること。 Yamaha CDR-400 や SCSI-3/mmc に適合した全ての新しいドライブは、シングル セッションとマルチセッションに対応している。 不明なシステム上で cdrecord を使う場合は、 -dummy オプションをオンに し て 、ドライブでサポートされている全ての速度について何回かテストすべきで ある。 CD の書き込みはリアルタイムプロセスである。 NFS は必要とされるデ ータ転送率を絶えず提供するわけではない。 NFS でマウントされたファイルシ ステム上にある CD イメージを cdrecord で使いたい場合は、fifo サイズが充 分 大きいこと確認すること。 cdrecord を SS20/502 において中間的な負荷状 態で使用したことや、 Sparcstation-2 においてかなりの負荷状態で 4 倍速で 使 用したこともあるが、 CD を書き込むときはシステムの負荷を出来る限り軽 くしておくことを勧める。読み込み元のディスクが原因でバッファアンダー ラ ンが起こっていないことを確認したいなら、コマンド cdrecord -dummy dev=2,0 padsize=600m /dev/null を 実 行 し て 、全てをダミーデータから作ったディスクを作成すればよい。 cdrecord は、 /dev/scg? デバイスノードにアクセスして、プログラム自身を メモリ内にロックできるように、 root で実行する必要がある。 シ ス テム上でユーザーが root になるのを許可したくない場合は、 cdrecord を root に suid することで安全にインストールできる。これにより、root 権 限 を持たない全てのユーザーやユーザーのグループが cdrecord を使うことが できる。この場合 cdrecord は、実際のユーザーが特定のファイルを読める か を 調べる。全てのユーザーに cdrecord を使う権限を与えたいならば以下を実 行する: chown root /usr/local/bin/cdrecord chmod 4711 /usr/local/bin/cdrecord 特定のユーザーのグループに cdrecord を使う権限を与えたいならば以下を 実 行する: chown root /usr/local/bin/cdrecord chgrp cdburners /usr/local/bin/cdrecord chmod 4710 /usr/local/bin/cdrecord そして、システムの cdburners グループに追加する。 デ ィスクの読み込み・書き出し・フォーマットを全てのユーザーに許可したい 場合を除き、 root 以外のユーザーに /dev/scg? への書き込みを許可して は ならない。 CD レコーダや読み込み元のディスクが接続された SCSI バスに、切断や再接続 に対応していない昔のディスクを接続するべきではない。 CD には 99 トラック以上は入らない。 オーディオトラックとデータトラックが両方入ったディスクを作成する場合 は 、データをトラック 1 に入れるべきである。そうでなければ CDplus ディスク を作成するべきである。 CDplus は、最初のセッションがオーディオトラッ ク で 、以降のセッションがデータトラックになったマルチセッションディスクで ある。 多くの OS ではデータトラックが 1 つしか読み出せない。また読むためには特 別のソフトが必要である。 HP 製 CD レコーダの SCSI コマンドセットについての詳しい情報は以下で入手 できる。 http://www.hp.com/isgsupport/cdr/index.html もっと詳しい情報や、現在対応していないCD レコーダの SCSI コマンドマニュ アルがあったら、著者に連絡してください。 Philips CDD 521 にはファームウェアのバグがある。 (アップグレードされた ものにもある)。これらうちのいくつかは、デバイスの電気の周波数をある固定 の ものにしなければならず、そうしない場合にはマシンをリブートしなければ ならない。 壊れた Linux SCSI generic driver で cdrecord を使う場合、 cdrecord は scg ドライバの機能をエミュレートを試みるという対処療法を使う。不幸なこ とに、 Linux の sg ドライバには以下のような酷いバグがある: · SCSI コマンドが全く送られていないかを調べることができない。 · SCSI status バイトを取得できない。このため、 cdrecord は失敗した SCSI コマンドをある状況下では報告できない。 · 転送時の実際の DMA カウントを取得できない。 cdrecord は、DMA の 残余カウントがあるかをユーザーに知らせることができない。 · auto sense データのうち有効なバイト数を取得できない 。 cdrecord は、認識したデータをデバイスが全く転送していないかをユーザーに知 らせることができない。 · auto request sense では非常に少ないデータし か 取 得 で き な い (CCS/SCSI-2/SCSI-3 では 18 以上でなければならない)。 fifo 率の表示は、CD レコーダにデータブロックが書き込まれた直後に計算さ れる。このため、fifo がストリーミングモードであるにもかかわらず、 100% fifo fill になることはない。 返り値 以下のようなメッセージが表示されてから、 9 秒間の間に ^C で cdrecord を 中止できる。 Starting to write CD at speed %d in %s mode for %s session. SCSI コマンドの典型的なエラーメッセージは以下のようなものである: cdrecord: I/O error. test unit ready: scsi sendcmd: no error CDB: 00 20 00 00 00 00 status: 0x2 (CHECK CONDITION) Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 25 00 00 00 00 00 Sense Key: 0x5 Illegal Request, Segment 0 Sense Code: 0x25 Qual 0x00 (logical unit not supported) Fru 0x0 Sense flags: Blk 0 (not valid) cmd finished after 0.002s timeout 40s 1 行目はコマンドの転送についての情報である。最初のコロンのあとの文字 列 は 、カーネルの視点からみたシステムコールのエラーである。他の問題が起こ らないときに、一般的なのは I/O error である。次の文字列は失敗した SCSI コ マンドの簡単な説明である。残りの部分は SCSI バス越しにコマンドを転送 する際に問題が発生したことを示す。 fatal error はコマンドを転送できなか っ たことを示す (つまり、要求された SCSI アドレスにデバイスが存在しなか った)。 2 行目には失敗したコマンドの SCSI コマンドのディスクリプターブロック が 表示される。 3 行 目には、コマンドの転送が成功した場合に、コマンドによって返される SCSI status コードについての情報が表示される。これは SCSI デバイスか ら のエラー情報である。 4 行目はコマンドの auto request sense 情報の 16 進ダンプである。 5 行 目は (もし存在すれば) sense key のエラー文字列である。コマンドが copy の場合にのみ、セグメント番号が続く。エラーメッセージが現在のコマン ドに直接関係していない場合、 deferred error という文字列が表示される。 6 行目は sense code のエラー文字列である。存在する場合には sense quali- fier も表示される。デバイスのタイプが既知 の 場 合 、 sense data は scsierrs.c" に あるテーブルを用いてデコードされる。その文字列の後には field replaceable unit についてのエラー値が続く。 7 行目には、失敗したコマンドに関連したブロック番号とエラーフラグ文字 列 が表示される。ブロック番号は有効ではないかも知れない。 8 行目は、そのコマンドについて設定されたタイムアウトと、実際にコマンド が完了するまでにかかった時間が表示される。 以下のメッセージはエラーではない: Track 01: Total bytes read/written: 2048/2048 (1 sectors). cdrecord: I/O error. flush cache: scsi sendcmd: no error CDB: 35 00 00 00 00 00 00 00 00 00 status: 0x2 (CHECK CONDITION) Sense Bytes: F0 00 05 80 00 00 27 0A 00 00 00 00 B5 00 00 00 00 00 Sense Key: 0x5 Illegal Request, Segment 0 Sense Code: 0xB5 Qual 0x00 (dummy data blocks added) Fru 0x0 Sense flags: Blk -2147483609 (valid) cmd finished after 0.002s timeout 40s これは単に、最小サイズより小さいトラックを 300 セクタに拡張したことを知 らせているだけである。 バグ cdrecord には ls よりも多くのオプションがある。 現 在のところ、 cdrecord は入力データがディスクに合わない場合に警告しか 出さない。コマンドを中止しないと、予想できない結果になる。 オーディオトラックのインデックス番号を書き込むオプションが存在するべ き である。 パ ワー不足の時に書き込まれたディスクを修復して使えるようにするオプショ ンが存在するべきである。 謝辞 Bill Swartz (Bill_Swartz@twolf.com) TEAC ドライバのサポートに協力してくれた。 Aaron Newsome (aaron.d.newsome@wdc.com) 彼のドライブで Sony 製ドライブのサポートを開発させてくれ た。 Eric Youngdale (eric@andante.jic.com) mkisofs を提供してくれた。 Gadi Oxman (gadio@netvision.net.il) ATAPI 標準規格についてのいろいろな情報をもらった。 Finn Arne Gangstad (finnag@guardian.no) 最初の FIFO 実装をしてくれた。 Dave Platt (dplatt@feghoot.ml.org) 実 験的なパケット書き込みの作成、 CD-RW を空にする機能の 最初の実装、 .wav ファイルの最初のデコ ー ダ の 実 装 、 cdrecord に関する有益な議論をしてくれた。 Chris P. Ross (cross@eng.us.uu.net) BSDI SCSI 転送を最初に実装してくれた。 Grant R. Guenther (grant@torque.net) Linux におけるパラレルポート転送を最初に実装してくれた。 Kenneth D. Merry (ken@kdm.org) Michael Smith (msmith@freebsd.org) とともに、 FreeBSD の CAM ポートを提供してくれた。 メーリングリスト cdrecord の開発に積極的に参加したいなら、本文に subscribe と書いたメー ルを other-cdwrite-request@lists.debian.org へ送って、cdwriting メーリングリストに入ることができる。 other-cdwrite@lists.debian.org がメーリングリストのアドレスである。 著者 Joerg Schilling Seestr. 110 D-13353 Berlin Germany その他の情報は以下で入手できる。 http://www.fokus.gmd.de/usr/schilling/cdrecord.html サポートに関する質問は、 cdrecord-support@berlios.de または other-cdwrite@lists.debian.org にメールを送ってください。 明らかなバグを見付けた場合は、 cdrecord-developers@berlios.de または schilling@fokus.gmd.de にメールを送ってください。 メーリングリストを購読するには、 http://lists.berlios.de/mailman/listinfo/cdrecord-developers または http://lists.berlios.de/mailman/listinfo/cdrecord-support を参照すること。 Joerg Schilling Version 1.10 CDRECORD(1)
Copyright(C) linux-cmd.com All Rights Reserved. Author Takayuki Yukawa