|
|
|
|
|
INDEX |
|
1. CD-R 作成前の準備
2. CD-R に焼いてみる
3. CD-RW に焼いてみる
4. 参考文献
|
|
CD-R 作成前の準備 |
|
CD-R にデータを焼くのは今までやったことがないので試してみることにした。必要なソフトウェアは、
・mkisofs
・cdrecord
の2つがあれば大丈夫とのことなのでさっそくインストール。X上で焼くには、xcdroast も必要みたい。どうせXはインストールしてないので以下の2つだけいれておく。
# apt-get install cdrecord mkisofs
Do you want the cdrecord binaries to be installed SUID root? <no> |
バージョンを確認しておく。cdrecord は バージョン2からcdrtools という名前に変わったそう。
# cdrecord --version
Cdrecord-Clone 2.01.01a01 (i686-pc-linux-gnu) Copyright (C) 1995-2004
J・g Schilling
# mkisofs --version
mkisofs 2.01-unofficial-iconv (i686-pc-linux-gnu) |
接続されている CD-R を確認してみる(SCSI BUSをスキャンする)。エラーがたくさん出力されている。SCSI ドライヴのCD-R/RW
ドライヴは問題ないようだが、IDE 接続のドライヴの場合は、IDE をSCSI として認識させてあげなければならない(SCSI エミュレーション)。以下では、SCSI
ドライバー、/dev/pg* が開けないと言われている。
# cdrecord -scanbus
cdrecord: No such file or directory. Cannot open '/dev/pg*'. Cannot
open SCSI driver.
cdrecord: For possible targets try 'cdrecord -scanbus'.
cdrecord: For possible transport specifiers try 'cdrecord dev=help'.
cdrecord:
cdrecord: For more information, install the cdrtools-doc
cdrecord: package and read /usr/share/doc/cdrecord/README.ATAPI.setup
. |
ヘルプを表示してみる。IDE/ATAPI 接続だろうから、以下のようにコマンド打ってみた。お、正常に認識したっぽい。
# cdrecord dev=help
# cdrecord -scanbus dev=ATAPI
scsidev: 'ATAPI'
devname: 'ATAPI'
scsibus: -2 target: -2 lun: -2
Warning: Using ATA Packet interface.
Warning: The related Linux kernel interface code seems to be unmaintained.
Warning: There is absolutely NO DMA, operations thus are slow.
Using libscg version 'schily-0.8'.
scsibus0:
0,0,0 0) 'MATSHITA' 'UJDA730 DVD/CDRW' '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) * |
ドライヴを調べてみる。/dev/hdc が CD-R/RW ドライブのようだ。
# dmesg | grep ATAPI
hdc: UJDA730 DVD/CDRW, ATAPI CD/DVD-ROM drive
hdc: ATAPI 24X DVD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)
scsi0 : SCSI host adapter emulation for IDE ATAPI devices
もしくは、
# dmesg | grep '^hd.:' |
念のため、確認。ide-scsi は組み込まれているようだ。
# lsmod | grep ide-scsi
ide-scsi 8272 0
scsi_mod 86052 3 [sr_mod sg ide-scsi]
ide-core 91832 6 (autoclean) [ide-scsi ide-cd ide-detect piix ide-disk] |
※ 最近のディストリでは、ide-scsi が標準でカーネルに組み込まれているはずですが、組み込まれていない場合はカーネルの再構築が必要となります。以下のようにして確認する。
# locate ide-scsi.o
/lib/modules/2.4.27-2-386/kernel/drivers/scsi/ide-scsi.o |
/etc/modules に以下の行を追加しておく。RH系のように、/etc/modules.conf でないところに注意。なんで、debian
はいちいち設定ファイルの名前が違うんだ。「ignore=hdc」のhdc の部分はCD-R/RW のパーティションを指定する。通常は、hdc になっている。(これはしなくてもいいかも)
# vi /etc/modules.conf
ide-cd ignore=hdc
ide-scsi |
/boot/grub/menu.lst を編集しておく(grubの場合)。再起動してみて、引数なしで scanbus を実行して正常に表示されれば成功?ってことかな。lilo
の場合は、lilo.conf に append="hdc=ide-scsi"を追加する。dmesg コマンドで正常に認識されているかどうかも確認しておこう。
# vi /boot/grub/menu.lst
kernel /vmlinuz-2.4.27-2-386 root=/dev/hda7 ro vga=775
hdc=scsi
# cdrecord --scanbus
# dmesg | grep -i scsi
ide_setup: hdc=scsi
ide-cd: passing drive hdc to ide-scsi emulation.
SCSI subsystem driver Revision: 1.00
hdc: attached ide-scsi driver.
scsi0 : SCSI host adapter emulation for IDE ATAPI devices
Type: CD-ROM ANSI SCSI revision: 02
…
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0
…
sr0: scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda tray |
■ISO イメージを作成する
まず、ISOイメージを作成してから、それをCD-R に焼いてみる。
|
-o |
isoイメージを指定する |
|
-J |
Joliet 拡張サポートを有効にし、Windowsとの互換性をもたせる |
|
-r |
Rock Ridge拡張サポートを有効とし、UNIX/Linux との互換性をもたせる |
|
-v |
詳細表示(verbose) |
|
-V |
ボリュームラベル名を指定する。マイコンピュータに表示される名前。 |
|
# mkisofs -o /home/kororo/test.iso -J -r -v -V
package /var/cache/apt/archives/
INFO: UTF-8 character encoding detected by locale settings.
Assuming UTF-8 encoded filenames on source filesystem,
use -input-charset to override.
mkisofs 2.01-unofficial-iconv (i686-pc-linux-gnu)
Scanning /var/cache/apt/archives/
Scanning /var/cache/apt/archives/partial
Writing: Initial Padblock Start Block 0
Done with: Initial Padblock Block(s) 16
Writing: Primary Volume Descriptor Start Block 16
Done with: Primary Volume Descriptor Block(s) 1
Writing: Joliet Volume Descriptor Start Block 17
Done with: Joliet Volume Descriptor Block(s) 1
Writing: End Volume Descriptor Start Block 18
Done with: End Volume Descriptor Block(s) 1
Writing: Version block Start Block 19
Done with: Version block Block(s) 1
Writing: Path table Start Block 20
Done with: Path table Block(s) 4
Writing: Joliet path table Start Block 24
Done with: Joliet path table Block(s) 4
Writing: Directory tree Start Block 28
Done with: Directory tree Block(s) 3
Writing: Joliet directory tree Start Block 31
Done with: Joliet directory tree Block(s) 2
Writing: Directory tree cleanup Start Block 33
Done with: Directory tree cleanup Block(s) 0
Writing: Extension record Start Block 33
Done with: Extension record Block(s) 1
Writing: The File(s) Start Block 34
92.62% done, estimate finish Fri Sep 9 09:33:05 2005
Total translation table size: 0
Total rockridge attributes bytes: 1765
Total directory bytes: 2048
Path table size(bytes): 26
Done with: The File(s) Block(s) 5222
Writing: Ending Padblock Start Block 5256
Done with: Ending Padblock Block(s) 150
Max brk space used 21000
5406 extents written (10 MB)
|
次に、作成した、iso イメージをマウントしてみる。カーネルがloop back deviceをサポートしている場合は、-o loop のようにする。このマウント作業は、CD-Rが正常に焼けるかどうかのテスト確認にもなりますので、いくらCD-R
が安いとはいえ、資源の無駄遣いにならないためにも実際にライティングする前には行っておきましょう。
# mkdir /mnt/iso
# mount -t iso9660 -o loop test.iso /mnt/iso/
# cd /mnt/iso ; ls
total 10434
-r--r--r-- 1 root root 57104 2005-03-02 04:02 apmd_3.2.2-3_i386.deb
-r--r--r-- 1 root root 577738 2005-01-10 02:17 cdrecord_4%3a2.01+01a01-2_i386.deb
# umount /mnt/iso |
|
|
|
CD-R に焼いてみる |
|
|
いよいよ本番。ドキドキ。まず、CD-R/RWのSCSIアドレスを調べなければなりません。先頭に「0,0,0 」となっている3つの数字に着目します。この3つの数字は左から「SCSIバス」、「デバイスID」、「LUN
(論理ユニット番号)」を指している。この3つの数字は焼く際に必要となります。
# cdrecord -scanbus
Linux sg driver version: 3.1.25
Using libscg version 'schily-0.8'.
scsibus0:
0,0,0 0) 'MATSHITA' 'UJDA730 DVD/CDRW' '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) * |
以下のようにして焼く。dev=0,0,0 は上記で表示されたSCSI アドレスを指定する。なお、cdrecord は、CD-Rレコーダーの最大速度で焼こうとするので、speed
を明示的に指定する必要はありません。性能の低いマシンやドライヴを使用している場合などに指定すると良いかもしれない。
# cdrecord -v -eject speed=8 dev=0,0,0 -data
test.iso |
|
-v |
詳細表示(verbose) |
|
-e |
終了時にイジェクトする |
|
speed |
倍速の指定 |
|
-dummy |
テスト書き込み |
|
|
|
|
CD-RW に焼いてみる |
|
|
CD-RW 内のデータを消去するには、以下のようにします。blank=all をやると時間がかかります。blank=fast がクイックフォーマットみたいなもの。
# cdrecord -v dev=0,0,0 blank=fast
or
# cdrecord -v dev=0,0,0 blank=all |
焼いてみる。
# cdrecord -v -eject speed=8 dev=0,0,0 test.iso
|
CD-RW なのに、追加書き込みができないのかな。CD-Rのマルチセッション書込みの記事はたくんさんあるけど、CD-RW に追加書込みしている記事は見かけない。「リード→デリート→バーン」の繰り返しなのかな?一度焼いてしまった後、再度焼くためには消去しなければならなってちょっとめんどいな。もし、CD-RW
に追加書込みできる方法があれば誰か教えて。
|
|
|
参考文献 |
|
|
LinuxでCDを焼く
CD-Writing HOWTO
|