在日常工作中,光盘刻录机的使用越来越广泛,这是因为光盘作为数据备份、文件分发的介质具有突出的优点。但是目前流行的刻录软件几乎清一色是Windows平台上的,而Unix平台上的数据要想做光盘备份,通常是通过局域网传到Windows平台的机器上,然后再转刻到光盘上。有没有一种更便捷的方法,在Unix系统上直接实现光盘刻录呢?答案是肯定的,CDRTOOLS就是一款很好的Unix平台上的刻录软件,下面笔者介绍一下该软件在SCO OpenServer 5上的使用方法。
CDRTOOLS软件简介
几乎所有的Unix操作系统(如:HP-UX、Sun OS、FreeBSD、Solaris、Linux等)都支持该软件。需要注意的一点是除Linux操作系统外,CDRTOOLS软件只支持SCSI接口的刻录机。CDRTOOLS软件是一组命令集,它包含四个命令:
Mkisofs:用来生成刻录CD所需的映像文件。
Cdda2wav:把audio CD片上的内容卸载到硬盘上生成声音文件。
Cdrecord:把各种各样的声音数据文件刻录到CDR/CDRW光盘上。
Readcd:含读写光盘等功能的菜单式命令。
CDRTOOLS软件的获取与安装
CDRTOOLS软件可以从Caldera公司的官方网站上下载(ftp://ftp2.caldera.com/pub/skunkware/osr5/fileutil/cdrecord),得到CDRTOOLS软件后,将下载文件cdrtools-1.8a23-VOLS.tar解包到/tmp目录,执行命令:# tar xvf /tmp/ cdrtools-1.8a23-VOLS.tar,此时将生成三个文件,其中VOL.000.000文件为Custom格式的可安装文件。
然后以root用户注册,执行custom命令安装该软件,步骤如下:
custom→Software→Install New→From scosysv→Media Device→Media Images→Image Directory:/tmp
此时系统便将CDRTOOLS软件自动安装到/usr/local目录下。
CDRTOOLS软件的使用
1. 数据光盘的一次性刻录
(1)用mkisofs命令将所要刻录的文件生成映像文件 /tmp/outfile,命令如下:
#mkisofs -L -l -v -r -o /tmp/outfile filename
需要说明的是-r选项的功能是生成Rock Ridge格式的文件。Rock Ridge格式是ISO9660格式的延伸,支持文件名字母的大小写、符号字符、长文件名以及超过8层的目录结构。Rock Ridge使CD-ROM能兼容Unix的文件系统,因此它在Unix系统上已经被广泛地使用。
(2)将生成的映像文件写入CDR/CDRW光盘,执行命令:
#cdrecord -v dev=0,2,0 /tmp/outfile speed=8
此命令中dev代表刻录机设备,三个数字的含义分别为:第一位表示刻录机字符设备/dev/rcd0;第二位表示刻录机的SCSI ID号;第三位表示设备的LUN号。Speed表示写入速度。
(3)查看光盘上的内容,执行命令:
#mount -r -f HS /dev/cd0 /mnt
这样就可以对/mnt进行各种操作:ls、cp等。
上述方法实现的是光盘的一次性写入,写入后光盘将不能再追加其他内容。
2. 光盘的追加刻录
第一次写入时执行下列命令:
#mkisofs -L -l -v -r -o /tmp/firstimage
生成映像文件firstimage。
#cdrecord -v dev=0,2,0 -multi -data firstimage speed=8
将映像文件写入CDR/CDRW光盘,此命令中的multi选项表示可以追加写入。
第二次写入时执行下列命令:
#cdrecord msinfo
系统将输出类似这样的信息:0,23456,表示上一次写入的数据所占用的空间。
#mkisofs -L -l -v -r -C xx,yy -o /tmp/secondimage
生成映像文件secondimage,xxy、yy即是上一步所得到的值。
#cdrecord -v dev=0,2,0 -multi -data secondimage speed=8
将映像文件写入CDR/CDRW光盘。如果不想再向此光盘中追加其他的文件,则此命令中的multi选项可以省略。
查看所刻录的内容,执行命令:
#mount -r -f HS /dev/cd0 /mnt
进入/mnt目录可以查看光盘的内容。特别值得一提的是,由于SCO OpenServer操作系统的限制,此时仅仅能够看到第一次写入的内容,对于后来追加的内容则看不到。若想看到全部内容,可将此光盘放入Windows平台的计算机上,此时就可以看到全部内容了,这不能不说是一个很大的遗憾!
3. 数据盘的整盘复制
(1)读入源盘内容,生成映像文件/tmp/disk.out执行命令:
#readcd
0:read 1:veri 2:erase 3:read buffer 4:cache 5:ovtime 6:cap
7:wne 8:floppy 9:verify 10:checkcmds 11:read disk 12:write disk
13:scsireset 14:seektest 15: readda
执行以下步骤(以下是一个实例):
Enter selection: 0 (0 - 15)/:11
Capacity: 87223 Blocks = 174446 kBytes = 170 MBytes = 178 prMB
Sectorsize: 2048 Bytes
Copy from SCSI (0,2,0) disk to file
Enter filename [disk.out]: /tmp/disk.out
Enter starting sector for copy: 0 (0-87222)/:
Enter number of sectors to copy: 87223 (1 - 87223)/:87221
此处需特别注意,为防止读盘时扇区越界,输入的扇区数应是系统提供的扇区数减2。
(2)将生成的映像文件/tmp/disk.out写入目标盘,执行命令
#cdrecord -v dev=0,2,0 /tmp/disk.out speed=8 即可刻录生成相应的目标盘。
4. CDRW光盘的格式化
执行命令:
#cdrecord -v dev=0,2,0 blank=fast
将CDRW光盘快速格式化。它仅删除PMA、TOC、pregap,所需时间很短。
执行命令:
#cdrecord -v dev=0,2,0 blank=all
将CDRW光盘完全格式化,所需时间较长。
其他注意事项
在CDRTOOLS的使用中,还有一些问题需要注意:
1.为方便查阅联机文档,可修改/etc/default/man文件,将第17行MANPATH=scohelp:/usr/man改为MANPATH=scohelp:/usr/man:/usr/local/man。
2. 若执行命令:
#chmod 6755 /usr/local/bin/cdrecord
使普通用户也可以执行刻录操作命令。
3. 为方便命令的使用,可将/usr/local/bin加入到PATH变量中。
4. 使用此软件时可能会感到频繁敲入命令比较烦琐,可将上述命令编辑到一个shell程序中,使用起来就非常方便了。
CDRTOOLS软件有着丰富的功能,这里不能一一尽述,更多的用法可参阅联机文档。通过使用该软件,我们不但可以建立起可靠的文件备份系统,而且对与光盘刻录相关的知识将有更系统、完整的学习和认识。