Linuxでは,ほとんどの記録型DVD/CDを利用できます。ほとんどのメーカーのドライブも動作します。GUIから記録型DVD/CDへの書き込みができるソフト「k3b」も用意されています。

●ほとんどのドライブやメディアがLinuxで利用可能

●音楽データやDVD-Videoの書き込みにはフリーソフト「k3b」が便利

●growisofsコマンドを用いると形式を指定しながら詳細な書き込みが可能

 PCのデータや音楽データ,DVD-Videoなどを保存できるさまざまな記録型DVD/CDが登場してきています。Linuxではこれらメディアの大部分を利用できます(表1)。これらのメディアへの書き込みにはドライブが必要ですが,ほとんどのメーカーのドライブがLinux上で動作します。なぜなら,多くのドライブが「SCSI MMC-3」(SCSI Multimedia Command-3)という共通の手順で制御しており,Linuxに含まれるソフトウエアもその手順に準拠しているからです。

表1●主な記録型DVD/CDにおけるLinuxでの対応
表1●主な記録型DVD/CDにおけるLinuxでの対応

 記録型DVD/CDに書き込む方法は簡単です。Fedora Coreなどの最近のディストリビューションでは,記録型DVD/CDドライブを手軽に使う手段を提供しています。例えばFedora Core4では,標準のファイル・マネージャ「Nautilus」にDVD/CDライター機能が統合されており,記録可能メディアがドライブに挿入されると,デスクトップに写真1のようなアイコンが表示されます。これをダブル・クリックすると記録用ウインドウが表示され,記録したいファイルやディレクトリをドロップし,「ファイル」メニューから「ディスクへ書き込む」を選択するだけでメディアにデータを書き込めます。書き込みの際にはドライブの選択画面(写真2)が表示されますので,そこで出力先を選択します。

写真1●記録型DVD/CDに標準対応するFedora Core 4
写真1●記録型DVD/CDに標準対応するFedora Core 4
メディアをセットすると,写真のような「DVD-RW」などのアイコンがデスクトップに表示されます。

写真2●書き込み時にドライブを選択
写真2●書き込み時にドライブを選択
データの書き込みを指示すると,このようなドライブ選択画面が表示されます。適切なドライブを選択すると,イメージが作成されてデータが書き込まれます。

 また,音楽CDやDVD-Videoを作成する場合は,「k3b」というソフトウエアを利用するのが便利です。必要なプラグインやソフトウエアをインストールしておけば,さまざまな形式の音楽/映像データから,ウィザード形式でディスクを作成できます(写真3)。

写真3●DVD/CD作成用フロントエンド「k3b」
写真3●DVD/CD作成用フロントエンド「k3b」
さまざまな形式の音楽/映像データから,ウィザード形式で音楽CDやDVD-Videoなどを簡単に作成できます。

 実は,Fedora Core 4のNautilusやk3bは,dvd+rw-toolsパッケージに含まれる「growisofs」というコマンドを用いて,各種メディアへの書き込みを実施しています。CD-R/RWについては,growisofsコマンドがcdrecordコマンドを呼び出して書き込んでいます。

 k3bなどのGUIツールは便利なのですが,環境構築がやや面倒ですし,growisofsコマンドを直接利用しなければ書き込めない形式やメディアもあります。そこで以下では,growisofsコマンドの利用方法を詳しく紹介しましょう。

データ記録方法の3タイプ

 Linuxで記録型DVD/CDに各種データを書き込む場合,記録方法を理解しておく必要があります。記録方法は,(1)ディスク・イメージを前もって作成し,それをディスクやトラック単位で順に書き込む「ディスク・アット・ワンス」や「トラック・アット・ワンス」,(2)データを2Kバイトや64Kバイトという固定長サイズのパケットに分割し,順不同に書き込む「パケット・ライティング」,(3)データをさまざまなファイル・システムに合わせたブロック長に分割し,順不同に書き込む「ランダム・アクセス」の3つに大別できます。

 ディスク・アット・ワンスやトラック・アット・ワンスは,ディストリビューションのインストールCDや音楽CDなどを作成する際によく用いる方法です。あらかじめイメージ・ファイルを作成する手間はかかりますが,ほぼすべてのメディアで利用できる記録方法です。一般的に,フォーマットとしては,Windows用のJoliet拡張と,LinuxなどのUNIX系OS用のRockRidge拡張を有効にしたISO9660ファイル・システムを用います。そのため,作成したメディアはWindowsなどの他のOSでも支障なく読み込めます。日本語ファイル名についても互換性のある形で記録されますので,特に文字化けなどの心配はありません。このように,異なるOSやDVD/CDドライブ搭載機器から記録データを読み出す際の互換性が高いという利点を持ちます。

 パケット・ライティングとランダム・アクセスは,映像の録画など,データを次々に追記するような場合によく用いられる方法です。メディアによっては書き換え回数などに制限はありますが,ハード・ディスクと同様に,イメージを作成せずに,ファイル単位での記録が可能です*1

 なお,バージョン2.6のLinuxカーネルの付属文書では,ランダム・アクセス可能なDVD-RAMに対してもパケット・ライティング方式を利用することを推奨しています。文書ではパフォーマンスを理由にしていますが,それ以外にも,DVD-RAMドライブがハード・ディスクとして認識されない場合にも書き込みができるという利点があります。そこで以下では,ランダム・アクセスの解説は省き,ディスク(トラック)・アット・ワンスとパケット・ライティングによる記録手順を紹介します。

(1)イメージを作成して書き込む

 growisofsコマンドはさまざまなオプションを持ちますが,通常必要なオプションは少ししかありませんので簡単に利用できます。例えば,Joliet拡張とRockRidge拡張を有効にしたISO9660ファイル・システムを,未使用のメディアに記録するには,記録型DVD/CDの種類によらず,次のようにコマンドを実行します。コマンドの実行には,一般に管理者(root)権限が必要です*2。また,メディアがマウントされていない状態で作業しなければなりません(以下,1行のコマンドについても,誌面掲載時の1段幅に合わせて改行してあるので,ご注意ください)。

# growisofs -Z /dev/dvd -R -J file /data

 この場合,カレント・ディレクトリにある「file」というファイルと,/dataディレクトリ内のデータが,/dev/dvdというデバイスに書き込まれます。DVD-RAMに書き込む場合は,growisofsコマンドに「-poor-man」というオプションを付けます。

 ファイルやディレクトリは空白文字を区切りにして,いくつ指定しても構いません。また,記録型DVD/CDドライブのデバイス名は,/proc/sys/dev/cdrom/infoファイル中の「drive name」セクションで調べられます。同セクションに列挙されているデバイスのうち,図1のように「Can write CD-R」や「Can write DVD-R」の項目が「1」になっているデバイスが利用できます。ただ,Fedora Core 4では,/dev/sr0や/dev/sr1というデバイス・ファイルは標準では用意されていません。これらのデバイスを使う場合は,代わりに/dev/scd0や/dev/scd1を利用します。

図1●記録型DVD/CDドライブのデバイス名の調査方法
図1●記録型DVD/CDドライブのデバイス名の調査方法
/proc/sys/dev/cdrom/infoファイルを表示し,「Can write CD-R」や「Can write DVD-R」の項目が「1」になっているデバイスを探します。なお,「sr0」や「sr1」の場合は,実際に使うデバイスは「scd0」,「scd1」となります。

 また,データを追記する場合は,次のようにコマンドを実行します。

# growisofs -M /dev/dvd -R -J file /data

 ディスク・イメージを作成している場合の書き込み方法は,以下の通りです。ディスク・イメージを「image.iso」というファイルに格納している場合を例にしています。

# growisofs -Z /dev/dvd=image.iso

追記の部分はモードを変えておく

 DVD-RWで追記する可能性がある場合には,あらかじめメディアを標準の「Sequentialモード」から「Restricted Overwriteモード」に変更しておく必要があります。これには,記録型DVDの初期化に使うdvd+rw-formatコマンドを次のように実行します。このコマンドの実行にも通常は管理者権限が必要です。なお同コマンドを実行すると,既存のデータは消去されます。

# dvd+rw-format -force /dev/dvd

 Sequentialモードに戻す場合は次のように行います。この作業でもデータは消去されます。

# dvd+rw-format - blank=full /dev/dvd

 メディアの容量や種類などを調べる場合は,メディアがマウントされていない状態でdvd+rw-mediainfoコマンドを使います。

# dvd+rw-mediainfo /dev/dvd

 このコマンドを使ってDVD-RWを調査した結果は図2のようになります。「Mounted Media」の項目に記録モード(Restricted Overwriteモード)が表示されているのが分かります。

図2●DVD-RWメディアの情報を調べた例
図2●DVD-RWメディアの情報を調べた例
dvd+rw-mediainfoコマンドの出力例です。メディアの種類やモード,容量などの情報が分かります。

 音楽CDを作成する場合は,あらかじめ各トラックの音楽データをRIFF WAVE形式(WAVファイル)で用意しておきます。その上で,次のように音楽データをトラックの順番に指定してgrowisofsコマンドを実行します。

# growisofs -Z /dev/cdrom -audio 1.wav 2.wav 3.wav …

 DVD+RやDVD-Rには,片面の記録層が2層の「Double Layer」(DL)に対応したメディアがあります。記録層が増えたことで,最大容量が8.5Gバイトに拡大しています。p.56の別掲記事「片面2層のメディアへの書き込み」には,growisofsコマンドを用いた書き込み方法をまとめましたので,ご一読ください。

(2)パケット・ライティング

 記録型DVD/CDをHDDと似た使い勝手で利用するには,パケット・ライティング機能を使う必要があります。Linuxでは,CD-RW,DVD-RW,DVD+RWに対するパケット・ライティングが可能です。パケット・ライティング機能を有効にすると,データの書き込みにgrowisofsのような特別なコマンドは必要ありません。通常のcpコマンドなどでデータをコピーできます。

 また前述した通り,DVD-RAMはHDDと同様に利用できるメディアです。本来はパケット・ライティング機能を使わなくても,利用できます。しかし機器の認識状況次第では,DVD-RAMもパケット・ライティング機能を通じて利用しなければ,メディアへの書き込みができません。

 パケット・ライティング機能を使うには,対応するカーネル・モジュールが有効でなければなりません。具体的には「pktcdvd」というカーネル・モジュールが有効になっている必要があります。

$ /sbin/modprobe -l -a pktcdvd

とmodprobeコマンドを実行して,モジュール名が表示されれば有効になっています。有効になっていない場合は,カーネルの再構築が必要です。Fedora Core 4のカーネルなどでは標準で有効になっています。また,同モジュールを利用する場合は,/dev/pktcdvdディレクトリを事前に作成しておくことも必要です。

 CD-RWやDVD-RWの場合は,事前にメディアを初期化しておく必要があります。初期化はそれぞれ図3の手順で実施します。

図3●パケット・ライティング使用時のメディア初期化手順
図3●パケット・ライティング使用時のメディア初期化手順
CD-RWとそれ以外で使用するコマンドが違います。また,DVD+RWとDVD-RAMでは通常は初期化は不要です。

 今まで説明した準備が整っていれば,pktsetupコマンドで,まずは実際のデバイス名とパケット・ライト用のデバイス名を関連付けます。次のようにコマンドを実行すると,/dev/dvdという実デバイスと/dev/pktcdvd/0というパケット・ライト用デバイスが関連付けられます。

# pktsetup 0 /dev/dvd

 DVD-RAMとDVD+RWでは,ここでファイル・システムを作成します。任意のファイル・システムが選択できますが,Windowsなどとのデータ交換を考えると,選択肢となるのはUDFとFATです。LinuxとWindowsのそれぞれの状況を考慮すると,DVD-RAMにはFAT,DVD+RWにはUDFを使うことをお勧めします。なお,FATでメディアを初期化する際は,セクタ・サイズが標準の512バイトとは違う2048バイトという点に注意してください。ファイル・システム作成の手順を図4に示しました。

図4●DVD-RAMとDVD+RWでのファイル・システム作成
図4●DVD-RAMとDVD+RWでのファイル・システム作成
DVD-RAMではFAT,DVD+RWではUDFを使うとWindowsなどの他のOSとのデータ交換による問題が少なくなります。

 ここまで準備できたら,メディアをマウントするだけで利用できます。それぞれのメディアでのマウント手順を図5に挙げました。

図5●各メディアのマウント手順
図5●各メディアのマウント手順
書き換え回数に制限のあるメディアでは「noatime」オプションを付けて,データの書き換え頻度を減らします。

 DVD-RAM以外のメディアは書き換え回数に制限がありますので,できるだけ書き換えが発生しないように「noatime」というマウント・オプションを指定しています。また,iocharsetオプションに指定する文字コードは,Linuxで使っているものに合わせてください。Fedora Core 4のようにUTF-8を使う場合は「utf8」を,日本語EUCを使う場合は「UTF-8」を指定します。