FreeBSD 4.4 でCDを焼く

CDを焼くにはcdrecordというソフトを使います。ただしこのソフトは SCSI接続のものしか使えません。ATAPI接続はburncdを使います。 (burncdはOSに最初から付いています。)

参考
FreeBSD ハンドブック 12.8.2. CDの作成
FreeBSD QandA 571
CD-Writing-HOWTO

cdrecordのインストール

pkg_add でインストール

# mount /cdrom
# cd /cdrom/packages/All
# pkg_info cdrtools-1.10.tgz
Information for cdrtools-1.10.tgz:

Description:
This package contains the following software:

-       cdda2wav (an digital CD audio extraction program)

-       cdrecord (a CD recording program)

-       mkisofs (an ISO-9660 filesystem image creator)

-       mkhybrid (an ISO-9660/HFS filesystem image creator)

-       several diagnostic programs for ISO-9660

        -       devdup dump a device or file in hex

        -       isodump dump a device or file based on ISO-9660

        -       isoinfo analyze or list an ISO-9660 image

        -       isovrfy verify an ISO-9660 image

-       readcd (a stripped down version of scgskeleton)
        may be used to read data CD's, to write to DVD-RAM
        and to copy Solaris boot CD's

WWW: http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html
# pkg_add cdrtools-1.10.tgz
# cd
# umount /cdrom
# rehash

portsインストールの場合
インターネットにつなげて

# locate cdrtools | grep /usr/ports
# cd /usr/ports/sysutils/cdrtools
# make install
# rehash

<注意>mkisofsはインストールされない。

なぜかFreeBSD 4.4付属のpackageとportではmkisofsはインストールされませんでした。

# cd /var/db/pkg
# pkg_info -L cdrtools-1.10
Information for cdrtools-1.10:

Files:
/usr/local/man/man1/cdda2wav.1.gz
/usr/local/man/man1/cdrecord.1.gz
/usr/local/man/man1/readcd.1.gz
/usr/local/bin/cdda2wav
/usr/local/bin/cdrecord
/usr/local/bin/list_audio_tracks
/usr/local/bin/readcd

このようにインストールされたファイルは確認できます。
portインストールの場合mkisofsの実行ファイルとマニュアルは作成されているので
手動でインストールするかmkisofsはportとpackageで用意されているので
別にインストールする必要があります。

CD-ROMから直接焼く。

# cdrecord -scanbus
Cdrecord 1.10 (i386-unknown-freebsd4.4) Copyright (C) 1995-2001 Jrg Schilling
Using libscg version 'schily-0.5'
scsibus0:
        0,0,0     0) *
        0,1,0     1) *
        0,2,0     2) *
        0,3,0     3) *
        0,4,0     4) *
        0,5,0     5) *
        0,6,0     6) 'MATSHITA' 'CD-R   CW-7502  ' '4.10' Removable CD-ROM
        0,7,0     7) *
# cdrecord -verbose speed=4 dev=6,0 -dummy -eject -isosize /dev/racd0c

-verbose: 詳細なメッセージが表示される。省略可。
speed=4:  4倍速で焼く 環境変数 CDR_SPEED=4 とすることもできる。
dev=6,0:  CD-Rのscsibus,target,lun ここではscsibusが0だけしかないので
          scsibusの0は省略できる。環境変数 CDR_DEVICE=6,0 とすることもできる。
-dummy:   CD-Rのレーザを切って焼く(試し焼き)本番でははずす。
-eject:   終了するとトレイがでる。省略可
-isosize: CD-ROMから焼く時は必須。

CDのイメージファイルをハードディスクにコピーして焼く。

CD-ROMがないときつまりCD-Rのみの場合または読みだしが困難なCD 上記の場合ウイーンウイーンとCDがうなる時は本焼きの時バッファアンダラン をおこすのでそのような場合はイメージファイルをハードディスクに作成して 焼いた方がよい。

# readcd dev=6,0 f=cd_image.raw

readcdはcdrecordに付属するツールでSCSIのものしか使えない。
dev=6,0 はcdrecord -scanbus で認識されているCD-Rの番号
ここでは先頭の0を省略している。
f=cd_image.rawは適当なファイル名.rawや.isoなどのように付けているようだ。

このほかddコマンドが使える。ATAPIはこれを使う。

# dd if=/dev/acd0c of=cd_image.raw bs=2048
上記のSCSIの場合は
# dd if=/dev/cd0c of=cd_image.raw bs=2048

イメージファイルの確認をする。

# vnconfig /dev/vn0c cd_image.raw
# mount -t cd9660 /dev/vn0c /mnt
/mntはマウントディレクトリ空のディレクトリならなんでもよい。
# ls /mnt などとしてファイルが見えるか確認する。
後始末をする。
# umount /mnt
# vnconfig -u /dev/vn0c

焼く
# cdrecord -verbose speed=4 dev=6,0 -dummy -eject cd_image.raw
本焼きでは-dummyをとる

ハードディスクのデータを焼く

mkisofsを使ってISO9660ファイルシステムを作ります。

# mkisofs -r -o imagefile.iso /path/to/tree/

/path/to/tree/以下のファイルがISO9660ファイルシステムのイメージファイルとして
imagefile.iso という名前で作成される。-r でRock Ridge拡張を可能にする。

# vnconfig /dev/vn0c imagefile.iso
# mount -t cd9660 /dev/vn0c /mnt
として/mnt以下を確認する。
# umount /mnt
# vnconfig -u /dev/vn0c
後始末をする。
# cdrecord -verbose speed=4 dev=6,0 -dummy -eject imagefile.iso

マルチセッションCDを焼く

上記の方法では追加書き込みができません。そこでマルチセッションで 焼くと追加書き込みができます。

一回目は -multi を付けて焼くだけです。
# cdrecord -verbose speed=4 dev=6,0 -multi -eject -data imagefile.iso

Sonyのレコーダは-dataを付けなければいけないそうです。

二回目以降はCD-Rを入れて
# cdrecord -msinfo dev=6,0
resid: 2
resid: 2
0,80545
表示に時間がかかる場合あり。

# mkisofs -r -o imagefile2.iso -C 0,80545 -M 6,0 /path/to/tree

/path/to/tree/以下のファイルがオプション-oで定義されるimagefile2.iso
というisoイメージファイルで作成される。このファイルの中身はvnconfig
などで見ることができなかった。

-rで Rock Ridge拡張を指定する。
-C 0,80545 はcdrecord -msinfo dev=6,0で得られる二組の数字。
-M 6,0 はdev=6,0の6,0(turget,run)

# cdrecord -verbose speed=4 dev=6,0 -multi -eject -data -dummy imagefile2.iso

-dataは省略できるが一部のレコーダ(Sony)では付けなければいけないそうです。
うまくいけば-dummyを外して焼く。

おわりに

このようにCD-Rを焼くには大変複雑な手順をとらなくてはいけません。 実際に何枚か焼いて見たのですがたまにアクセスできないファイルとか出来ます。 それではまた。