>お楽しみコーナー>Linux>CDR サイトマップ 最終更新日:2005/07/22

センリュウのホームページへ ようこそ!

 CD−Rを使う   

設定ファイル、ログファイル等のバックアップにCD−Rを使えるようにする。

kernel2.4以前でIDE用ドライブを使っている場合は、SCSIエミュレーションが必要となります(この最後を参照して下さい)。
/backupディレクトリと/tmpディレクトリを用意し、/backupディレクトリ以下に保存しておきたいファイル、ディレクトリ等をコピーしておいて下さい。

1、CDイメージの作成

mkisofsコマンドで/backupディレクトリ以下を/tmp/cd_imageというイメージファイルにする。ただし、/backup自身は含まれないので注意!
# mkisofs -R -J -o /tmp/cd_image  /backup
   -RはRockRige拡張(UNIX用の拡張で長いファイル名やシンボリックリンクを利用できるようにする)。
   -JはJoliet拡張(Windows用の拡張で長いファイル名が利用できる)。
# mkisofs -R -J -o /tmp/cd_image -graft-point backup/=/backup とすると/backup付きでイメージが作成される。

イメージファイルの中身を確かめる
# mount -o loop /tmp/cd_image /mnt/cdrom (/mnt/cdromを開くと見ることができる。)
# umount /mnt/cdrom (確かめたあとは必ずアンマウントしておく。)

、新規に焼き付ける

kernel2.6の場合
# cdrecord -v dev=/dev/hdb speed=2 -multi -data /tmp/cd_image

kernel2.4以前の場合
# cdrecord -v dev=0,5,0 speed=2 -multi -data /tmp/cd_image
   
dev=0,5,0は例えば、SCSIBUSが0、IDが5であることを意味している。# cdrecord -scanbusとすればわかる。
   スピードは2倍速。

vine3.1の場合
 kernel2.4だが、SCSIエミュレーションは必要ない。
 dev=の部分が dev=ATAPI:0,1,0 となる。(0,1,0 の部分は、# cdrecord -scanbus dev=ATAPIで確かめる。)


追記する場合

@まず前回の書き込みがどこまで行われたか調べる。
# cdrecord dev=/dev/hdb -msinfo  (dev=の箇所は上に従って、kernelに応じて変更する)
すると *****,***** といった数字が現れる。
ACDイメージの作成
# mkisofs -R -J -o /tmp/cd_image2 -C *****,***** -M dev/hdb  /backup
B焼き付ける
上と同じ。

 

シェルスクリプト
#! /bin/bash
PS3='which process?'
select selection in 'new-write' 'add-write'
do
if [ $selection ]
then
case $selection in
new-write)
mkisofs -R -J -o /tmp/cd_image /backup
cdrecord -v dev=/dev/hdb speed=2 -multi -data /tmp/cd_image
rm /tmp/cd_image
break;;
add-write)
locateval=$(cdrecord dev=/dev/hdb -msinfo)
echo $locateval
mkisofs -R -J -o /tmp/cd_image -C $locateval -M /dev/hdb /backup
cdrecord -v dev=/dev/hdb speed=2 -multi -data /tmp/cd_image
rm /tmp/cd_image
break;;
esac
else
echo 'please select again!'
fi
done


SCSIエミュレーション(kernel2.4以前の場合。ただし、vine3.1などの場合は必要ありません。)
 cdrecorder(書き込みソフト)は、本来SCSIにしか対応していないため、kernel2.4以前では「SCSIエミュレーション(ide-scsiドライバ)」を使って、IDEドライブをSCSIドライブとして認識させるようにしなければなりません。

それには2つの方法があって(以下、primaryのslaveとして接続したとします=hdb)、
@カーネルを再構築してide-scsiをモジュールにする方法。 
A起動時にide-scsiを利用することを明示的に指定する方法(次のいずれか)。
  ・liloと出たときに、hdb=ide-scsi と書き込む。
  ・あらかじめ/etc/lilo.confに、当該image項目の最後に「append="hdb=ide-scsi"」と書き込み、# lilo を実行しておく。
   grubの場合は、/boot/grub/grub.confのkernelの項目に(vmlinuzやroot=…の後に)「hdb=ide-scsi"」。

 いちばん下の方法が簡単なので、これを採用することにします。

ide-scsiドライバが組み込まれていない場合
ide-scsiドライバを組み込む  # modprobe ide-scsi  (rc.localなどに書き込んでおけばよい)
  確認 # lsmod  ide-scsiがロードされているか
      # cdrecord -scanbus  CD-RWが認識されているか
      # cat /proc/scsi/scsi  同


履歴 2004/12 更新