CD-R の作成


cdrecord の導入

残念ながら NetBSD 標準のコマンドだけでは CD-R を作成できません。 ここでは NetBSD Packages Collection に収録されている cdrecord を使用します。

イメージの作成

cdrecord で CD-R を作成する場合、まず CD イメージを作成し、 その後で CD-R に書き込むことになります。 したがって書き込むデータと同じサイズの空き領域がディスク上に必要なことに 注意してください。

イメージの作成には mkisofs コマンドを使用します。 典型的な実行例は以下のとおりです。

$ mkisofs -o 生成するイメージファイル名 -r -J -V ボリューム名 ルートディレクトリ

-o は生成するイメージのファイル名を指定します。 慣習として拡張子 .iso または .img が使われることが多いようですが、 もちろん任意のファイル名を使用して構いません。

-r および -J は生成するイメージファイルのフォーマットを指定します。 CD-ROM は基本的には ISO 9660 で定められたフォーマットに従っていますが、 このフォーマットはファイル名が最大 XX 文字(要確認) までしか使えず、またアクセス権限などを保持することもできません。 このためいくつかの拡張規格が作成されています。 -r は UNIX 系 OS で広く使われている RockRidge フォーマットを指定します。 -J は Windows で使われている Joliet フォーマットを指定します。 両方を同時にサポートすることもできます。 (NetBSD で mount する際はどちらもサポートされていますが、 RockRidge の方が NetBSD のファイルシステムにより自然に対応できます)

-V はボリューム名を指定します。 人間が識別しやすくするためのもので、指定しなくても動作に影響はありません。

(ルートディレクトリについて記述を追加予定)

イメージの確認

作成されたイメージをすぐに CD-R に書き込んでも構いませんが、 その前に内容を確認しておくと、ミスの被害を最小限に抑えられます。

イメージの内容を確認するには、NetBSD の vnd の機能を使います。 これは、ディスク上にあるファイルを仮想的にひとつのディスクをみなす機能です。 カーネルに vnd 機能が組み込まれている必要があります。 多くのコンパイル済みカーネルには組み込まれています。 もし以下の「1. vnd を定義する」でエラーが出た場合は、 オプションを有効にしたカーネルを入手(もしくは自分でコンパイル) する必要があります。

なお、ここの操作は root ユーザーで実行する必要があります。

1. vnd を定義する

vnconfig コマンドを使って、イメージファイルを vnd に割り当てます。 典型的な実行例は以下のとおりです。

# vnconfig vnd0 イメージファイル名

これで、vnd0 を CD-ROM ドライブであるかのように扱えるようになります。

(vnd が有効でない場合のエラーについて追加予定)

2. mount する

通常の CD-ROM を mount する手順と同じです。

# mount_cd9660 /dev/vnd0a マウントポイント

マウントポイントとしては /mnt や /mnt/cdrom 等を使うことが多いようです。

3. 内容の確認

マウントポイント以下にアクセスし、内容を確認してください。 よくあるミスとして、必要なアクセス権限が与えられていないというものがあります。 root 以外の通常ユーザーでもアクセスしたいのに、 root にしかアクセス権限が与えられていないというものです。 CD-R に書き込んでしまうと変更できません。

4. 後片付け

内容を確認したら umount します。 また、定義した vnd は忘れずに解除してください。 vnd の解除には、vnconfig コマンドの -u オプションを使用します。

# umount マウントポイント
# vnconfig -u vnd0

CD-R への書き込み

CD-R への書き込みには cdrecord コマンドを使用します。 典型的な実行例は以下のとおりです。 CD-R デバイスへ書き込めるユーザー(通常は root)で実行する必要があります。

# cdrecord dev=書き込み先デバイス名 speed=書き込み速度 イメージファイル名

(書き込み先デバイス名について追加予定)