12.6 创建和使用光学设备(CD 和DVD)
12.6.1 介绍
CD 与普通的磁盘相比有很多不同的特性。最初,它们是不能被用户写入的。CD 有tracks,要在FreeBSD 中制作一个CD,你要准备将要写到CD 上的数据文件,然后根据每个tracks 写入到CD。
ISO 9660 文件系统被设计用来处理这些差异。它通常不会对文件系统作限制。幸运的是,它提供了一个可扩展的机制允许在制作CD 时超越这些限制。
Mkisofs 程序能用来生成一个包含iso9660 文件系统的数据文件。它有很多支持的扩展选项,下面会具体描述。你可以从/usr/ports/sysutils/mkisofs port 中安装它。
使用哪个工具来刻录CD 依赖于你的CD 刻录机是ATAPI 的还是其他类型的。ATAPI CD使用burncd 程序。SCSI 和USB CD 刻录机使用cdrecord 程序。
12.6.2 mkisofs
mkisofs 制作一个ISO9660 的文件系统,简单用法如下:
# mkisofs -o imagefile.iso /path/to/tree
这个命令将创建一个包含ISO9660 文件系统的映象文件。在处理过程中,它将文件名称影射为标准的ISO 9660 文件系统的文件名,它将排除那些不典型的ISO 文件系统的文件。
可以看看mkisofs 的详细描述,以便更好地使用它。
有很多选项能够用来克服那些限制。特别的,-R 选项能够启用Rock Ridge 扩展,-J选项能启用用于microsoft 系统的Joliet 扩展,-hfs 能用来创建用于MAC 的HFS 文件系统。
对于那些即将要在FreeBSD 系统中使用的CD 来说,-U 能用来消除所有文件名的限制。
当使用-R 选项时,它会产生一个文件系统映象。
最后一个通常使用的选项是-b。这可以用来指定启动映象的位置,以产生一个叫做“ElTorito”的启动光盘。
12.6.3 burncd
如果你用的是ATAPI 的CD burner,你可以使用burncd 命令来刻录ISO 映象到CD 上。Burncd 是基本系统的一部分,可以使用/usr/sbin/burncd 来安装。用法很简单,如下:# burncd -f cddevice data imagefile.iso fixate
刻录imagefile.iso的一个拷贝。默认的设备是/dev/acd0c。看看burncd 的选项来设置写入速度,刻完之后退出CD,然后写入声音数据。
12.6.4 cdrecord
如果你没有一个ATAPI 的CD burner,你必须使用cdrecord 来刻录你的CD。Cdrecord不是基本系统的一部分;你必须从sysutils/cdrtools 或设当的package 中安装它。基本系统的变化可能会引起这个程序的错误,可能是由“coaster”引起的。当你升级系统时,你需要升级port,或者如果你已升级到-STABLE,你使用新版本时也要升级port。
Cdrecord 有很多选项,基本用法与burncd 相似。刻录一个ISO9660 映象文件只需这样做:
# cdrecord dev= device imagefile.iso
使用cdrecord 的比较巧妙的方法是找到使用的dev。要找到正确的设置,可以使用
cdrecord 的-scanbus 标记,这会产生这样的结果:
# cdrecord -scanbus
Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 J.rg Schilling
Using libscg version 'schily-0.1'
scsibus0:
0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk
0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk
0,2,0 2) *
0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk
0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
scsibus1:
1,0,0 100) *
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM
1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner
1,7,0 107) *