Tips記事
» 2002年02月13日 00時00分 UPDATE

CD-R/RWメディアに書き込みをしたい〜コマンドライン編〜

[木田佳克,ITmedia]

 Linux上でCD-R/RWに書き込みを行うためには,ファイルフォーマットのイメージに変換するためのマスタリングソフト「mkisofs」と,書き込み(ライティング)を行うためのソフト「cdrecord」が必要だ。

 まず最初に各ソフトが利用できる環境にあるかを調べよう。Red Hat系ディストリビューションであれば,システムインストール時にRPMパッケージとしてインストールされていることが多い。次のように確認すればよい(ここではRed Hat Linux 7.2環境での例)。

$ rpm -qa|grep mkisofs
mkisofs-1.10-4
$ which mkisofs
/usr/bin/mkisofs

※ここでは,mkisofsのバージョン1.10-4がRPMパッケージでインストールされていて,/usr/bin/ディレクトリに実行バイナリがあることが分かる

 具体的な操作は次のようにすればよい。ここでは,UH2.imgというイメージファイルを作るために,書き込みたいファイル「Hikki-DVD-UH2.mpg」を指定している例だ。

$ mkisofs -r -J -o UH2.img ./Hikki-DVD-UH2.mpg
 1.54% done, estimate finish Thu Jan 31 17:06:02 2002
 3.07% done, estimate finish Thu Jan 31 17:06:35 2002

〜中略〜

98.14% done, estimate finish Thu Jan 31 17:07:40 2002
99.68% done, estimate finish Thu Jan 31 17:07:40 2002
Total translation table size: 0
Total rockridge attributes bytes: 258
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 5e84
326064 extents written (636 Mb)

$ ls -l
-rw-r--r--  1 ykida  ykida  667779072 1月 31 17:07 UH2.img

表■mkisofsの主なオプション
-a
ファイル名に「#」や「~」を含むファイルも含める
-A
CD-ROMのアプリケーションIDを定義する
-b
ブートイメージのパスとファイル名を指定する
-c
ブートカタログのパスとファイル名を指定する
-f
シンボリックリンク先も含める
-l
32文字までのファイル名を使用可能にする(ISO9660 Level2)
-J
Joliet拡張を使用可能にする(Windows上で扱う際に便利)
-L
ピリオドで始まるファイル名を含める
-P
パブリックIDを指定する
-p
プリペアラIDを指定する。主にメールアドレスなど
-r
RockRidge拡張を使用可能にする
-T
TRANS.TBLファイルを作成する
-V
CDのボリュームIDを指定する
-x
指定するパス内のファイルを対象外にする

 イメージファイルが作成できたら,次はライティングソフトで書き込む手順に移ろう。ただし,この時点でCD-R/RWドライブが認識されている必要がある。

・関連Tips
ボタン ATAPI接続のCD-R/RWドライブを使いたい

# rpm -qa|grep cdrecord
cdrecord-1.10-4
cdrecord-devel-1.10-4
[root@speed root]# which cdrecord
/usr/bin/cdrecord

※ここでは,cdrecordのバージョン1.10-4がRPMパッケージでインストールされていて,/usr/bin/ディレクトリに実行バイナリがあることが分かる

 CD-R/RWドライバが認識されているかどうかは,次のように「-scanbus」オプションでコマンド指定してみればよい。ここでは,「0,0,0」(BUS0,ID0,LUN0)で確認されていることが分かる。

# cdrecord -scanbus
Cdrecord 1.10 (i686-pc-linux-gnu) Copyright (C) 1995-2001 J・g Schilling
Linux sg driver version: 3.1.19
Using libscg version 'schily-0.5'
scsibus0:
    0,0,0  0) 'PLEXTOR ' 'CD-R PX-W2410A' '1.00' Removable CD-ROM
    0,1,0  1) *
    0,2,0  2) *
    0,3,0  3) *
    0,4,0  4) *
    0,5,0  5) *
    0,6,0  6) *
    0,7,0  7) *

 実際にcdrecordで書き込む場合には,次のように指定すればよい。

cdrecord dev=[SCSI ID,LUN番号] speed=[書き込み速度] [イメージファイル名]

・実行例
$ cdrecord -eject -dummy driveropts=burnproof dev=0,0 speed=24 ./UH2.img
Cdrecord 1.10 (i686-pc-linux-gnu) Copyright (C) 1995-2001 J・g Schilling
scsidev: '0,0'
scsibus: 0 target: 0 lun: 0
Linux sg driver version: 3.1.19
Using libscg version 'schily-0.5'
Device type  : Removable CD-ROM
Version     : 0
Response Format: 1
Vendor_info  : 'PLEXTOR '
Identifikation : 'CD-R PX-W2410A'
Revision    : '1.00'
Device seems to be: Generic mmc CD-RW.
Using generic SCSI-3/mmc CD-R driver (mmc_cdr).
Driver flags  : SWABAUDIO
Starting to write CD/DVD at speed 24 in dummy mode for single session.
Last chance to quit, starting dummy write in 0 seconds. Operation starts.
cdrecord: Turning BURN-Proof on
Track 01: Total bytes read/written: 667779072/667779072 (326064 sectors).

 ここではBURNPROOF対応のプレクスターATAPI接続CD-R/RWドライブ「PX-W2410TA」(R24倍書込/RW10倍書込/40倍読込)を例に挙げているため,「driveropts=burnproof」も加えている。ほかにも次のようなオプションが用意されている。なお,コマンド指定時にオプションで指定しなくても,標準設定ファイル「/etc/cdrecord.conf」で定義しておけば楽だろう。

表■cdrecordの主なオプション
-dummy
実際の書き込みは行わずテストを行う
-multi
マルチセッションで書き込む
-fix
セッションクローズをする。ただし通常書き込みでは自動処理されるためこのオプションを指定する必要はない
-nofix
書き込み後にセッションクローズをしない
-eject
書き込み終了後にメディアを自動イジェクトする
speed=
書き込み速度を指定する
blank=
CD-RWメディア内容を削除する
dev=
CDレコーダのデバイス番号を指定する
driver=
CDレコーダ種別を指定する。種別は,driver=helpで表示される
-audio
オーディオトラックとして書き込む
-mode2
CD-ROM mode2として書き込む
-xa1
CD-ROM XA mode1として書き込む
-xa2
CD-ROM XA mode2として書き込む
-cdi
CD-Iとして書き込む
-isosize
読み出しの際のイメージサイズを,ファイルサイズではなくISO9660準拠のイメージサイズに調整する

・ここで使用したドライブ
画面
ボタン 「PX-W2410TA」(プレクスター)

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ