→FAQ 一覧に戻る
|
FAQ-76
質問
CD-R などに書き込む方法をおしえてください
回答
ARMA で CD-R 等に書き込みをおこなう方法には大きく分けて2通りのやり方があります。
|
|
これは Linux ではもっともオーソドックスな方法です。ISO-9660 と呼ばれる静的なファイルシステムを一端作成し、これをドライブに一度に転送して書き込みをおこないます。DVD-R メディアもほとんど同じ様に扱うことができます。この方法で CD-RW/DVD-RW メディアを扱う場合は単純に再初期化可能な CD-R として扱います。
|
|
|
|
これはメディア CD-R に UDF ファイルシステムを作成・マウントし、少量ずづ動的に書込んでいく方法です。今のところ CD-RW のみでしか扱うことができず、また Linux の UDF の書込みもβ扱いとなりますが非常に便利な方法です。
|
|
以降では「準備」「カーネルオプションの設定」「ドライバの設定」「パーミションの設定」「ISO-9660 編」「パケットライティング編」といった順で説明します。
準備
ARMA 2.1/2.0 をお使いの場合でパケットライティングを使う場合は、最初にカーネルを最新のバージョンにアップデートしてください。
| |
|
|
またすべての ARMA で、インストールタイプにデスクトップを含めていない場合、例えばサーバタイプとしてインストールをおこなったような場合には CD-R 編集関連のツールがインストールされません。この場合は以下のようにして先に必要なツールをインストールしておいてください。
|
# apt-get install mkisofs cdrecord gcombust
|
|
|
カーネルオプションの設定
IDE 接続の CD/DVD 書込みドライブを扱う場合には、Linux では典型的には、仮想的に SCSI ドライブとして扱います。この機能は ide-scsi などと呼ばれています。
ide-scsi はパケットライティングのみをおこなう場合には必須の設定ではありませんが、ここではいずれの場合も ide-scsi を使う場合を前提に説明します。また本節は IDE のドライブに対してのみの設定で SCSI/USB/IEEE1394 で接続されるドライブには必要ありません。その場合は次節の設定に読み進んで下さい。
| |

アップデートがうまくいかない場合は FAQ-82「ARMA Net からのアップデートを始めるために特別な準備は必要ですか?」 http:// www.omoikane.co.jp/ support/ faq/ view.php?id=82を参照してください。
|
|
ide-scsi を使用するには、具体的には 〜=ide-scsi といったカーネルオプションを設定を添付しますが「〜」にあたる部分は、対象となるドライブの IDE バス上の接続位置によって異なる文字列を当てはめます。これは以下の表を参照してください。
どの位置に接続されているか分からない場合は以下のようにコマンドで確認することもできます。
|
$ cat /proc/ide/hda/model
| Maxtor 52049H3
| $ cat /proc/ide/hdb/model
| cat: /proc/ide/hdb/model:
| そのようなファイルやディレクトリはありません
| $ cat /proc/ide/hdc/model
| _NEC DVD_RW ND-1300A
| $ cat /proc/ide/hdc/media
| cdrom
|
|
|
| |

cdrecord コマンドの dev= オプション引数に ATAPI: とつけることで ide-scsi の設定を省略することもできます。詳しくは cdrecord の英語 man を参照してください。

増設した IDE に接続されている場合はさらに hde、hdf、・・・と続きます。
|
|
対応するドライブ文字列が確定したら、これをブートローダで設定します。これは直接 /boot/grub/menu.lst をエディタで編集するか、管理ツール(ogl-admin)でカーネルオプションを編集することによっておこないます。一時的にはブートローダ(grub)のコマンドライン編集によって設定することもできます。
ドライバの設定
次にドライバモジュールの設定をおこないます。これは /etc/modules を直接エディタで編集するか、管理ツール(ogl-admin)のドライバ設定でドライバを選択することでおこないます。具体的には ide-scsi と pktcdvd の2つのドライバを必要に応じて設定します。典型的な例としては以下の2行が /etc/modules ファイルに含まれる状態にします。
ここでは以下のように考えてください。
|
|
パケットライティングをおこなわない場合は pktcdvd 行は必要ありません。
|
|
|
|
SCSI 接続の場合は ide-scsi 行は必要ありません。
|
|
|
|
USB 接続の場合は ide-scsi 行は必要ありませんが、自動認識がうまくいかない場合は usb-storage ドライバを適切に設定する必要がある場合もあります。
|
|
|
|
IEEE1394 接続の場合は ide-scsi 行は必要ありませんが、そのかわりに sbp2 ドライバを設定してください。
|
|
| |

マニュアル 3.5 「ブートローダ」の項も参照してください。
|
|
次に、パケットライティングをおこなう場合は以下のように起動時スクリプトを作成しておきます。
|
# echo '#!/bin/sh' >/etc/rc.boot/pktcdvd
| # echo 'exec pktsetup /dev/pktcdvd /dev/sr0'
| >>/etc/rc.boot/pktcdvd
| # chmod +w /etc/rc.boot/pktcdvd
|
|
|
以上でドライバの設定は終了です。ここまでの設定を反映させるために一端リブートをおこなってください。一時的に設定を確認する場合は modprobe/rmmod コマンドでおこなうこともできます。
リブート後には以下のようにして設定を確認することができます。
|
$ cat /proc/scsi/scsi
| Attached devices:
| Host: scsi0 Channel: 00 Id: 00 Lun: 00
| Vendor: _NEC Model: DVD_RW ND-1300A Rev: 1.05
| Type: CD-ROM ANSI SCSI revision: 02
|
|
|
もしここに対象としているドライブがあらわれていない場合はここまでの設定を確認してください。
パーミションの設定
| |

pktsetup コマンドは udftools パッケージに含まれています
|
|
ここでは一般ユーザーで対象ドライブを扱えるようにするための設定をおこないます。もし root のみで対象ドライブを扱えればよい場合は本節の設定は必要ありませんので、次節に進んでください。
ARMA では devfs を使用していますのでパーミションの設定は devfsd の設定でおこないます。具体的には /etc/devfs/perm に以下の行を書き加えます。
REGISTER ^sr[^/]*$ PERMISSIONS root.cdrom 0660
|
|
|
|
変更が終了したら以下のコマンドを実行します。
|
/etc/init.d/devfsd restart
|
|
|
この設定は以下のようなコマンドで確認することができます。
|
$ ls -lH /dev/sr0
| crw-rw---- 1 root cdrom 21, 0 1970-01-01 09:00 /dev/sr0
|
|
|
グループ cdrom に対して書込みが可能になっていれば Ok です。
| |

ここも長いので root でテストをおこなうことにして、本節を後回しにしてもよいでしょう
|
|
また sudo で cdrecord を使えるようにしておきます。root で以下のようにします。
|
# chmod +w /etc/sudoers
| # echo 'ALL ALL=NOPASSWD:/usr/bin/cdrecord' >>/etc/sudoers
| # chmod 0440 /etc/sudoers
|
|
|
gcombust を使う場合には、これを gcombust から呼び出すためのスクリプトを作成しておきます。これは以下のようにしてください。
|
# echo '#!/bin/sh' >/usr/local/bin/sudo-cdrecord
| # echo 'exec sudo /usr/bin/cdrecord $*'
| >>/usr/local/bin/sudo-cdrecord
| # chmod +x /usr/local/bin/sudo-cdrecord
|
|
|
(echo 行は適宜一行で記述してください)
ISO-9660 編
ISO-9660 を使う場合は CUI でおこなう場合は mkisofs と cdrecord コマンドを使い、GUI でおこなう場合は gcombust を使います。mkisofs は ISO-9660 ファイルシステムイメージを作成し、cdrecord はイメージファイルをドライブに渡して書き込みをおこないます。gcombust は内部的に mkisofs と cdrecord を使う GUI インターフェースです。
以降ではコマンドと gcombust の簡単な使い方を説明します。
|
|
mkisofs には多くのオプションがありますが、簡単には 1. CD に焼込みたいディレクトリツリーを作成し、2. mkisofs を実行する、という手順になります。
|
|
|
|
例えば ~/tree ディレクトリにすでに書込みたいディレクトリが作成してあり、これを ~/cd.img というイメージファイルに出力する場合は以下のようにします。
|
|
|
|
|
$ cd ~/tree
| $ mkisofs -R -T -J -o ../cd.img .
|
|
|
|
|
|
|
mkisofs のオプションを説明すると、-R は Rock Ridge 拡張、-Tは TRANS.TBL の作成、-J は Joliet 拡張、-o は出力先の指定、最後の . はツリー位置の指定となります。他にはラベルを指定する -A オプションなどがよく使われます。より細かい説明はオンラインマニュアル(man)を参照してください。
|
|
|
|
cdrecord は CD イメージファイルをドライブに転送するコマンドです。これも実行例を示します。
|
|
|
|
|
$ cdrecord -v dev=0,0,0 speed=24 driveropts=burnproof ~/cd.img
|
|
|
|
|
|
|
このオプションを順に説明します。-v は出力を詳細に(verbose)するオプションです。
|
|
|
|
dev=は SCSI バスのどこを対象ドライブとするかを指定します。ide-scsi を使用した場合は0,0,0が典型的ですが、SCSI 等では他の数字に変わることもあります。この数字は、ホストアダプタの ID、バス(チャンネル)の ID、SCSI の ID の順となっており、cat /proc/scsi/scsi で対象となる数字を確認して指定してください。
|
|
| |

cdrecord を実行すると特別な優先順位を設定しようとします。そのため一般ユーザーから使えるようにするためには、デバイスファイルのパーミション設定だけでは不十分で sudo あるいは suid が必要になります。
|
|
|
|
speed= では書込み速度を指定します。メディアとドライブの対応速度の小さい方を指定します。driveropts= ではドライブに固有のオプションを指定します。ここでは書込みが途切れたときでも継続を可能とする拡張機能の burnproof を指定してします。最後の ~/cd.img は mkisofs コマンドが作成したイメージファイルです。
|
|
|
|
また CD-RW メディアを使用する場合は、初回の書き込みは CD-R と同様で問題ありませんが、2回目以降の書き込みの場合にはブランク(blank)という操作が必要になります。cdrecord の blank の操作にはいくつかありますが一般的に使われるのは「fast」です。具体的には以下のようにオプションを付けます。
|
|
|
|
|
$ cdrecord -v dev=0,0,0 speed=24 driveropts=burnproof blank=fast ~/cd.img
|
|
|
|
|
|
|
もし「fast」でうまくいかない場合は「all」を試してみてください。
|
|
|
|
この他には、書込みの終了と同時にメディアを排出する -eject オプションなどがよく使われます。cdrecord についてより詳しくは man cdrecord を参照してください。
|
|
|
|
gcombust は GNOME メニューの「その他」から選択するかコマンドラインで実行します。初回の実行時には基本的な設定の確認のためのウィンドウが開きます。ここでは cdrecord の代わりに先に作成した sudo-cdrecord を指定します。
|
|
|
|
gcombust の簡単な使用法としては以下の通りになります。
|
|
| |

あえて12倍程度に遅い速度を指定して書込みの「確度」を上げることもできます。
|
|
|
|
1. 「データファイル」タブを選択し、書込み元のディレクトリ、ファイルをリストします。
|
|
|
|
2. 「書き込み」タブを選択し、「CDレコーダデバイス設定」を設定します。
|
|
|
|
3. 「書き込み」タブの再下段の「書き込み開始」をクリックします。
|
|
この他の注意点としては以下のようなものになります。
|
|
DVD-R/RW で書込みをおこなう場合には、cdrecord コマンドではなく dvdrecord コマンドを使います。dvdrecord は cdrecord とほとんど同じオプションを持つ DVD ドライブ専用のコマンドですが、-dao オプションが必要になる場合があります。
|
|
|
|
CD/DVD-RW メディアに書込みをおこなう場合には、2回目の書き込み以降の書込みでブランク操作が必要になります。cdrecord をコマンドで使用する場合には blank=fast 等のオプションを付けます。gcombust の場合は「書き込み」タブの CD-RW 欄を使ってブランクをおこないます。
|
|
dvdrecord パッケージは ARMA2.2 以降で追加パッケージとして用意されていますので apt を用いてインストールしてください。また ISO イメージの作成は CD-R/RW 同様におこないます。
以上のようにして、mkisofs/cdrecord/dvdrecord/gcombust で作成した CD/DVD メディアはマウントして内容を確認することができます。
パケットライティング編
パケットライティングはパケットライトドライバの設定、メディアの初期化、マウントといった手順で使います。システム側の設定としては「ドライバの設定」編でほとんど終了しているので使用法はシンプルです。
|
|
以下の行を /etc/fstab に書き加えます。
|
|
|
|
/dev/pktcdvd /mnt/rw udf noauto,user 0 0
|
|
|
|
|
|
| |

「データファイル」タブには Nautilus/Konqueror からの drag&drop も可能です。
|
|
|
|
|
$ cdrwtool -d /dev/sr0 -q
|
|
|
|
|
|
|
エンターキーをタイプします。この操作は通常10〜30分ほど時間がかかります。
|
|
以降では通常のファイルシステムとして扱うことができます。
参考
| |

cdrwtool は udftools パッケージに含まれています。
|
|
|
|
Peter Osterlund 氏の Web ページ
|
|
| |

「Osterlund」の O はウムラウト付きです
|
→FAQ 一覧に戻る
ここで解説しております内容は、弊社でテストを行い動作を確認しておりますが、必ずしもすべての環境における動作を保証するものではありません。
また、実際の設定、インストール作業はすべてお客様の責任においてなされるものとし、当 FAQ を元に行われた作業によりお客様が被ったいかなる損害につきましても、弊社は一切の責任を負わないものとさせていただきますので、ご了承ください。 |
|