■久しぶりにDVDを焼こうとしたが、mkisofsコマンドが無い。
「iso-9660 image」で検索すると、作成するかコンバートするかのパッケージがある。
$ env LANG=C apt-cache search cd | grep -i iso | grep 9660 | grep -i image
genisoimage - Creates ISO-9660 CD-ROM filesystem images
iat - Converts many CD-ROM image formats to iso9660
■作成するので、genisoimageを。
$ whereis -b genisoimage
genisoimage: /usr/bin/genisoimage
■沢山オプションがあります。。。
$ man genisoimage | sed s/" "/"\n"/g | sed s/"\.\|\,\|)"//g | grep "^\-[A-z]\$" | column
-A -M -D -m -P -T -R -a -R -M
-B -C -D -m -p -U -r -m -J -C
-B -M -J -N -R -d -o -o -o -V
-G -c -J -M -r -l -o -b -o -T
-B -M -l -M -R -N -V -o -o
-G -C -L -M -B -V -J -o -F
-b -M -m -C -o -v -J -R -o
-C -d -o -N -b -x -T -o -J
-C -D -m -o -G -m -t -r -r
-C -f -m -B -T -z -o -o -o
■少なくとも必要なのは、「Rock Ridge」と「Joliet」。
Unix系とWIndows互換のという意味。
Mac系は本来「HFS」だけど、今はBSD系なのでUnix系に属するはず。
参考:Ubuntu/データCDを焼く
http://debugitos.main.jp/index.php?Ubuntu%2F%A5%C7%A1%BC%A5%BFCD%A4%F2%BE%C6%A4%AF
■以下のように72行読んでもいいけど、以下が読み取れれば充分。
Unix系用、Unix+Windows+Apple用、その他、多くのオプションが続きそう。
$ man genisoimage | grep -A 72 -i ^EXAMPLES | grep "\-R\|\-J"
% genisoimage -o cd.iso -R cd_dir
% genisoimage -o cd.iso -R -J -hfs cd_dir
% genisoimage -o cd.iso -hfs -J -r -graft-points \
■DebianとWindowsで読めれば良いので、以下のようにする。
$ LABEL="labelname"; \
TARGET="isodir_OR_space_separate_files"
genisoimage -r -J -o ${LABEL}.iso -V "$LABEL" -v $TARGET
■簡単にオプションの意味を引いておく。
$ man genisoimage | grep -A 1 "^ \-[JorVv] "
-J Generate Joliet directory records in addition to regular ISO9660
filenames. This is primarily useful when the discs are to be
--
-o filename
Specify the output file for the the ISO9660 filesystem image.
--
-r This is like the -R option, but file ownership and modes are set
to more useful values. The uid and gid are set to zero, because
--
-V volid
Specifies the volume ID (volume name or label) to be written
--
-v Verbose execution. If given twice on the command line, extra
debug information will be printed.
■以下のようにisoimageのハッシュ値を取っておく。
$ md5sum ${LABEL}.iso
6ad71d5ad9d8fb941dd8a7ef663af321 test.iso
■cdrecordでは無く「wodim」で焼くという事も、参考URLに出ていた。
設定ファイルがあるとは。。。時代は変わったものだ。
※growisofsでも良いが、CD-Rとオプション指定が異なってしまうので、今回は「wodim」を使う。
「man growisofs」してみて頂ければEXAMPLESの項がある。
$ apt-cache search wodim
cdrecord - Dummy transition package for wodim
cdrkit-doc - Documentation for the cdrkit package suite
gramofile - Transfer sound from gramophone records to CD
wodim - コマンドライン CD/DVD ライティングツール
cdrdao - ディスクアットワンス (DAO) モードで CD をライティング
genisoimage - ISO-9660 CD-ROM ファイルシステムイメージを作成
cdw - CD ライティング用ツール - コンソール版
$ whereis -b wodim
wodim: /usr/bin/wodim /etc/wodim.conf
■もう一度ググってみたら2006年に起こったライセンスに関する論争によりフォークしたとの事。
※私の記憶ではその頃はdvdrecordでCDも焼いていたような気がするが。。。
参考:cdrkit
http://ja.wikipedia.org/wiki/Cdrkit
■オプションの指定方式が変わっているようなので、再度ググると、
「Turbolinux Client 2008」のマニュアルがあった。
参考:2. wodim コマンド
http://www.turbolinux.com/products/guide/cd/x29.html
■以下のようなチェックをしておく。このチェックはcdrecordと変わらないようだ。
げ、ROMではないか。。。w
$ sudo wodim -scanbus
scsibus1000:
1000,0,0 100000) 'ATAPI ' 'DVD D DH16DYP ' 'WL32' Removable CD-ROM
1000,1,0 100001) *
1000,2,0 100002) *
1000,3,0 100003) *
1000,4,0 100004) *
1000,5,0 100005) *
1000,6,0 100006) *
1000,7,0 100007) *
■新しい方式のデバイスを確認する
$ wodim -devices
wodim: Overview of accessible drives (1 found) :
-------------------------------------------------------------------------
0 dev='/dev/hda' rwrw-- : 'ATAPI' 'DVD D DH16DYP'
-------------------------------------------------------------------------
■旧来の見方は以下の方法。
$ dmesg | grep CD
[ 2.556116] hda: ATAPI DVD D DH16DYP, ATAPI CD/DVD-ROM drive
[ 3.256270] Uniform CD-ROM driver Revision: 3.20
$ ls -l /dev/hda
brw-rw---- 1 root cdrom 3, 0 2012-01-05 19:31 /dev/hda
■最近メインの64bitマシンはLenovoとNECだが、
物理的なドライバー無しで交換可能な32bit IBMからLenovoへDVD-MultiDriveを移植。
表示の通り、イマドキどちらもIDE接続。。。互換性としては有り難い事です。
■結果が変わった。
$ sudo wodim -scanbus
[sudo] password for labunix:
scsibus1000:
1000,0,0 100000) 'HL-DT-ST' 'DVDRAM GSA-4167B' 'DL13' Removable CD-ROM
1000,1,0 100001) *
1000,2,0 100002) *
1000,3,0 100003) *
1000,4,0 100004) *
1000,5,0 100005) *
1000,6,0 100006) *
1000,7,0 100007) *
$ sudo wodim -devices
wodim: Overview of accessible drives (1 found) :
-------------------------------------------------------------------------
0 dev='/dev/hda' rwrw-- : 'HL-DT-ST' 'DVDRAM GSA-4167B'
-------------------------------------------------------------------------
$ dmesg | grep CD
[ 2.552117] hda: HL-DT-ST DVDRAM GSA-4167B, ATAPI CD/DVD-ROM drive
[ 2.908169] hda: ATAPI 48X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB Cache
[ 2.908175] Uniform CD-ROM driver Revision: 3.20
$ ls -l /dev/hda
brw-rw---- 1 root cdrom 3, 0 2012-01-06 01:07 /dev/hda
■余談だが、CD-RW等一度書き込みを行なっている場合は消去する。
$ sudo wodim dev=/dev/hda blank=fast
■更に余談だが、「cdrom」グループに属していれば、「sudo」を使う必要は無い。
私の場合は過去の互換性(?)のような操作を行なっているに過ぎない。
$ id `whoami` | sed s/","/"\n"/g | grep cdrom
24(cdrom)
■上記コマンドで型番が分かるので、ググれば情報もあると思う。
参考:LG電子、DVD-R DLに対応したスーパーマルチ「GSA-4167B」
http://pc.watch.impress.co.jp/docs/2005/0725/lg.htm
■ひとまず137行のサンプルを見れば分かるが、説明は割愛し、とりあえず焼く。
「eject」は再認識の為のお作法だと思って指定しておく。
エジェクトされなければ手動で行なう。
$ man wodim | grep -A 137 ^EXAMPLES
$ sudo wodim -v -eject speed=4 dev=/dev/hda -data test.iso
$ sudo eject /dev/hda
■ディスクから直接ハッシュ値を得る。(isoimageより若干時間がかかる)
※isoimageと一致すれば正しく書き込みが出来ている。
後は実際にマウントして中身を確認するなど行なっておく。
$ md5sum /dev/hda
6ad71d5ad9d8fb941dd8a7ef663af321 /dev/hda