20070830 星期四 八月 30, 2007

在Solaris上用cdrecord刻录CD/DVD cdrecord是OpenSolaris上一个功能强大的用以刻录CD/DVD的命令行工具。与之前的cdrw相比,cdrecord能更好的兼容USB和1394接口的刻录机,而cdrw则仅推荐在内置的IDE/ATAPI刻录机上使用。

在继续之前,让我们先来了解一下与刻录相关的概念。

  • CD-R:可刻录CD(CD-Recordable)。只能够写入一次,可多次读取。(WORM,Write Once, Read Many)
  • CD-RW:可重写CD(CD-Rewritable)。多次写,多次读。(WMRM,Write Many,Read Many)
  • DVD+R:可刻录DVD,只能写入一次。容量为4.7GB,于2002年由众多公司共同支持的DVD+RW联盟开发。并于2003年开始支持双面存储, 使得容量达到了8.5GB。该标准不被DVD论坛接纳,并声称DVD+R并非官方DVD格式,但是很多厂商仍然支持该格式。
  • DVD+RW:可重写DVD,可多次写入。由DVD+RW联盟开发,容量达到了4.7GB,可重写近1,000次
  • DVD-R:可刻录DVD,仅能写入一次。最初容量为4.7GB,于2005年开始支持容量可达8.5GB的双面存储。于DVD+R相比,DVD-R由 Poineer公司开发并获得了DVD论坛的承认而被大部分DVD播放器应用。现在很多能同时支持这两种格式的DVD机,一般都注明DVD±R标记。
  • DVD-RW:可重写DVD,可多次写入。由Pioneer公司开发,容量为4.7GB,可重写近1,000次
    DVD的[+]和[-]标准在市场上同样受欢迎,很多刻录机/影碟机都同时支持这两种标准
下面是与文件格式相关的一些术语:
  • ISO-9660:旧的和DOS兼容的文件系统,仅支持8,3文件名格式
  • Rock Ridge:ISO-9660文件系统的扩展。支持长文件名、UNIX符号链接和文件属性(rwx)等
  • Joliet:微软对ISO -9660文件系统的扩展。支持unicode编码的文件名和长文件名(64个unicode字符)。在只支持8个字符文件名的操作系统(比如 Windows 3.1)中,CD上一个长于8个字符的文件名将通过在一位数字后面加一个波浪符号(~)作为这个名字的最后一个字符来将其删减为8字符的文件名。
  • Multisession:多区段刻录,允许多次添加/写入文件。每个刻录过程只刻录并且关闭一个区段(session),剩余空间下次可以继续刻录下一区段。
  • DAO:Disc-At-Once,是在一个刻录过程中在一片光盘中刻入全部数据的方式。轨道(track)间没有间隔,在刻录录结束时自动关闭光盘。
  • TAO:Track -At-Once,是在一个刻录过程中逐个刻录所有轨道(track),轨道之间有间隔。如果是数据轨道和音轨之间,则间隔为2到3秒,如果是音轨之间则 间隔为2秒。刻录时可以选择不关闭区段,以后还可以添加轨道到光盘的这一区段,一般用于音乐CD的刻录,而对数据光盘无效。在CD或VCD播放机上播放 时,区段必须关闭。刻录时也可以选择不关闭光盘,则以后还可以继续追加刻录下一区段。
扫描刻录机
用cdrecord -scanbus扫描系统SCSI总线确定设备的描述符(例如:0,4,0)
示例:
# cdrecord -scanbus
Cdrecord-ProDVD-Clone 2.01.01a10 (i386-pc-solaris2.11) Copyright (C) 1995-2006 J�rg Schilling
Warning: Using USCSI interface.
Using libscg version 'schily-0.8'.
scsibus0:
        0,0,0     0) 'MATSHITA' 'DVD-R   UJ-857D ' 'KCV9' Removable CD-ROM
        0,1,0     1) *
        0,2,0     2) *
        0,3,0     3) *
        0,4,0     4) *
        0,5,0     5) *
        0,6,0     6) *
        0,7,0     7) *
这里设备描述符是“0,0,0”

创建.iso文件
OpenSolaris上刻录通常分两步完成,首先用mkisofs生成ISO映像,然后用cdrecord刻录CD/DVD。创建ISO映像示例如下。
# mkisofs -o backup.iso -J -r -v -V "Backup Volume" /path/to/mybackup
其中,-o 输出.iso文件名
-J 为了与Windows兼容,使用Joliet命名记录
-r  为了与UNIX/Linux兼容,使用Rock Ridge命名方式
-v 打印命令执行的详细信息
-V 指定卷ID
最后一个参数是要生成iso映像的目录路径
另外,在Solaris中可以用lofiadm命令把iso文件虚拟成块设备而mount到系统中
# lofiadm -a /export/iwork.iso
/dev/lofi/1
# mount -F hsfs -o ro /dev/lofi/1 /mnt

刻录CD/DVD
使用前面-scanbus得到的设备描述符进行刻录、
# cdrecord -v dev=1,0,0 -eject backup.iso
其中,-v打印详细信息
-eject 刻录完成后自动弹出光盘
dev是-scanbus得到的设备描述符
缺省将使用TAO(-tao)刻录模式

复制CD
首先,插入要复制的CD,OpenSolaris会自动把CD mount到/media/volume-name上。创建iso映像如下。
# mkisofs -o /tmp/cd-iso-image.iso -J -r  -allow-leading-dots -v -V "Volume" /media/volume-name
放进一张空白的CD进行刻录
# cdrecord -v dev=1,0,0 -eject /tmp/cd-iso-image.iso

Multisession刻录
multisession常用于数据光盘的刻录,分次刻入多个文件。第一次刻录时,使用-multi选项刻录一个区段
# cdrecord -v dev=0,1,0 -eject -multi first.iso
为了在关盘上刻入更多的区段,mkisofs需要知道已刻入区段的起始和结束扇区。
# cdrecord dev-0,1,0 -msinfo
0,119256
# mkisofs -o second.iso -J -r -v -V Session2 -C 0,119256 -M 0,0,0 /path/to/files
在刻录最后一个区段的时候,cdrecord命令中不要使用-multi选项。

把MP3刻录成音乐CD
首先用lame把MP3转换成.wav格式。lame可从该地址 下载。
# for f in *.mp3; do lame --decode $f `basename $f .mp3`.wav; done
然后把.wav文件刻录到光盘上
# cdrecord -v dev=0,0,0 -eject -pad -audio *.wav

参考文档:
  1. Burning CDs on Linux
  2. YoLInux Tutorial: Burning a CD or DVD
Posted by Judy Chen in Solaris at 20070830 Comments[0]

Comments:

Post a Comment:
Comments are closed for this entry.
Click me to subscribe
Judy Chen
« 三月 2010
星期日星期一星期二星期三星期四星期五星期六
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
   
       
Today

Recent Entries



Photos

www.flickr.com


Referrers & Other Stats


View My Stats