Solaris/Linux/FreeBSDでCD-Rを焼こう |
YAMAMORI Takenori ●yamamori |
§研究編 [ISO9660/RockRidge/Jolietの詳細]
いまここに,RockRidge/Jolietの両方に対応して焼かれたCD-ROMがあるとします. このCD-ROMの見え方は,(1)RockRidgeでマウント,(2)Jolietでマウント, (3)素のISO9660でマウントの少なくとも3通りあります. さらに,素のISO9660でマウントする場合, 通常はOSがファイル名の後ろの“;1”や, 拡張子のないファイル名の後ろの“.”を取ったり, さらに,ファイル名を小文字に変換したりしますが, これらの処理をやめさせてマウントすることもできます. これを(4)として含めると,1枚のCD-ROMに,4種類のマウント方法があるといえます.
これら4種類のマウント方法を以下にまとめます.Linux/FreeBSD/Solarisで, mountコマンドのオプションが微妙に違うのが興味深いところです.
(1)RockRidge優先 Linux: mount -t iso9660 -r /dev/scd0 /mnt/cdrom FreeBSD: mount -t cd9660 -r /dev/cd0c /cdrom Solaris: mount -F hsfs -r /dev/dsk/c1t4d0p0 /mnt (2)Joliet優先(RockRidge不可) Linux: mount -t iso9660 -r -o norock /dev/scd0 /mnt/cdrom FreeBSD: mount -t cd9660 -r -o norrip /dev/cd0c /cdrom Solaris: (Jolietには対応していません) (3)ISO9660(RockRidge不可・Joliet不可・ファイル名変換あり) Linux: mount -t iso9660 -r -o norock,nojoliet /dev/scd0 /mnt/cdrom FreeBSD: mount -t cd9660 -r -o norrip,nojoliet /dev/cd0c /cdrom Solaris: mount -F hsfs -r -o nrr,notraildot /dev/dsk/c1t4d0p0 /mnt (4)ISO9660 raw(RockRidge不可・Joliet不可・ファイル名変換なし) Linux: mount -t iso9660 -r -o norock,nojoliet,map=off /dev/scd0 /mnt/cdrom FreeBSD: mount -t cd9660 -r -o norrip,nojoliet,gens /dev/cd0c /cdrom Solaris: mount -F hsfs -r -o nrr,traildot,nomaplcase /dev/dsk/c1t4d0p0 /mnt (Solarisでは,ファイル名に付いた“;1”などのバージョン番号を表示した状態で マウントできない模様) |
(なお,ここでのデバイスファイル名は, SCSI CD-Rドライブが,SCSI ID=4として1台存在し, それをCD-ROMドライブとしてマウントするものとして書いています)
これらの4種類のマウント方法で,いつでもマウントできるようにしておくと, CD-ROMをチェックするのに便利です. ここでは,Linuxの慣習にしたがって, 以下のように/mntの下に4種類のマウントポイントを作ります.
# cd /mnt # mkdir cdrom joliet iso isoraw
そして,以下のような行を/etc/fstab(Solarisでは /etc/vfstab)に追加すると, あとは“# mount /mnt/cdrom”とか“# mount /mnt/isoraw”とかで, マウント方法別に一発でマウントできるようになります.
ただし,同じCD-ROMを,たとえば/mnt/cdromと/mnt/jolietとに, 同時にマウントするようなことはできません.
Linuxでは,userオプションを付けているので, 一般ユーザのままでも直接マウントできます.
Linuxの/etc/fstab: /dev/scd0 /mnt/cdrom iso9660 ro,noauto,user,exec 0 0 /dev/scd0 /mnt/joliet iso9660 ro,noauto,user,norock 0 0 /dev/scd0 /mnt/iso iso9660 ro,noauto,user,norock,nojoliet 0 0 /dev/scd0 /mnt/isoraw iso9660 ro,noauto,user,norock,nojoliet,map=off 0 0 FreeBSDの/etc/fstab: /dev/cd0c /mnt/cdrom cd9660 ro,noauto 0 0 /dev/cd0c /mnt/joliet cd9660 ro,noauto,norrip 0 0 /dev/cd0c /mnt/iso cd9660 ro,noauto,norrip,nojoliet 0 0 /dev/cd0c /mnt/isoraw cd9660 ro,noauto,norrip,nojoliet,gens 0 0 Solarisの/etc/vfstab: /dev/dsk/c1t4d0p0 - /mnt/cdrom hsfs - no ro /dev/dsk/c1t4d0p0 - /mnt/iso hsfs - no ro,nrr,notraildot /dev/dsk/c1t4d0p0 - /mnt/isoraw hsfs - no ro,nrr,traildot,nomaplcase |
以上の応用として,RockRidgeとJolietのどちらでマウントするかによって 見えるファイルが異なるという,手品のようなCD-ROMを作ることもできます. (コラム「マジックミラーCD-ROMの作り方」参照)