写入 CD 或 DVD 的过程不能中断,并且需要连续不断的数据流。请考虑使用 cdrw -S 选项模拟向介质进行写入,以验证系统是否可以充足的速率提供数据以便写入 CD 或 DVD。
写入错误可能是由以下问题之一导致的:
介质无法处理驱动器速度。例如,一些介质仅经过 2x 或 4x 速度的认证。
系统正在运行过多的超负荷进程,从而导致写入进程无法运行。
网络拥塞导致读取映像时产生延迟,并且映像位于远程系统上。
源驱动器的速度比目标驱动器慢。
如果出现上述任一问题,可以使用 cdrw -p 选项降低设备的写入速度。
例如,以下命令说明如何模拟以 4x 速度进行写入:
$ cdrw -iS -p 4 image.iso |
也可以通过 cdrw -C 选项使用规定的介质容量复制 80 分钟的 CD。否则,cdrw 命令会使用缺省值 74 分钟来复制音频 CD。
有关更多信息,请参见 cdrw(1)。
缺省情况下,从 Solaris 9 发行版开始所有用户都可以访问可移除介质。但是,可以通过基于角色的访问控制 (role-based access control, RBAC) 设置角色,限制用户对可移除介质的访问。通过为一组有限的用户指定角色,可以限制对可移除介质的访问。
有关使用角色的说明,请参见《系统管理指南:安全性服务》中的“基于角色的访问控制(概述)”。
成为超级用户或承担等效角色。
启动 Solaris Management Console。
$ /usr/sadm/bin/smc & |
有关启动控制台的更多信息,请参见《系统管理指南:基本管理》中的“启动 Solaris Management Console”。
设置具有设备管理权限的角色。
有关更多信息,请参见《系统管理指南:安全性服务》中的第 9 章 “使用基于角色的访问控制(任务)”。
将需要使用 cdrw 命令的用户添加到新创建的角色。
注释 /etc/security/policy.conf 文件中的以下行:
AUTHS_GRANTED=solaris.device.cdrw |
如果不执行此步骤,则所有用户仍可以访问 cdrw 命令,而不仅仅是作为设备管理角色的成员。
修改此文件后,只有设备管理角色的成员才可以使用 cdrw 命令。将拒绝所有其他人的访问,并显示以下消息:
Authorization failed, Cannot access disks. |
在系统上标识 CD 或 DVD 写入者。
例如:
$ cdrw -l Looking for CD devices... Node | Connected Device | Device type ----------------------+--------------------------------+----------------- cdrom0 | YAMAHA CRW8824S 1.0d | CD Reader/Writer |
标识特定的 CD 或 DVD 写入者。
例如:
$ cdrw -a filename.wav -d cdrom2 |
确定介质是否为空或介质上是否存在目录。
例如:
$ cdrw -M Device : YAMAHA CRW8824S Firmware : Rev. 1.00 (26/04/00) Media is blank % |
无论 vold 是否运行都可以使用 cdrw 命令。但是,必须具有超级用户或等效角色的访问权限,才能停止和启动 vold 守护进程。
将 CD 或 DVD 插入驱动器。
CD 或 DVD 可以是驱动器可读取的任何 CD 或 DVD。
通过列出驱动器来检查是否已正确连接该驱动器。
$ cdrw -l Looking for CD devices... Node Connected Device Device type ----------------------+--------------------------------+----------------- cdrom1 | YAMAHA CRW8824S 1.0d | CD Reader/Writer |
(可选)如果列表中未显示该驱动器,请选择以下操作之一以便系统可识别该驱动器。
执行重新配置引导。
# touch /reconfigure # init 6 |
添加驱动器,而不重新引导系统。
# drvconfig # disks |
然后重新启动 vold。
# svcadm disable volfs # svcadm enable volfs |
首先使用 mkisofs 命令准备数据,将文件和文件信息转换为可在 CD 或 DVD 上使用的 High Sierra 格式。
将空白 CD 或 DVD 插入驱动器。
在新 CD 或 DVD 上创建 ISO 9660 文件系统。
$ mkisofs -r /pathname > cd-file-system |
创建 Rock Ridge 信息并将文件拥有权重置为零。
标识用于创建 ISO 9660 文件系统的路径名。
标识要放置在 CD 或 DVD 上的文件系统的名称。
将文件系统复制到 CD 或 DVD 上。
$ cdrw -i cd-file-system |
-i cd-file-system 指定用于创建数据 CD 或 DVD 的映像文件。
以下示例说明如何为数据 CD 或 DVD 创建 ISO 9660 文件系统。
$ mkisofs -r /home/dubs/ufs_dir > ufs_cd Total extents actually written = 56 Total translation table size: 0 Total rockridge attributes bytes: 329 Total directory bytes: 0 Path table size(bytes): 10 Max brk space used 8000 56 extents written (0 Mb) |
然后,将文件系统复制到 CD 或 DVD 上。
$ cdrw -i ufs_cd Initializing device...done. Writing track 1...done. Finalizing (Can take several minutes)...done. |
此过程介绍如何在 CD 上放置多个会话。此过程包括将 infoA 和 infoB 目录复制到 CD 上的示例。
为第一个 CD 会话创建文件系统。
$ mkisofs -o infoA -r -V my_infoA /data/infoA Total translation table size: 0 Total rockridge attributes bytes: 24507 Total directory bytes: 34816 Path table size(bytes): 98 Max brk space used 2e000 8929 extents written (17 Mb) |
标识 ISO 文件系统的名称。
创建 Rock Ridge 信息并将文件拥有权重置为零。
标识要由 vold 用作挂载点的卷标号。
标识要创建的 ISO 映像目录。
将第一个会话的 ISO 文件系统复制到 CD 上。
$ cdrw -iO infoA Initializing device...done. Writing track 1...done. done. Finalizing (Can take several minutes)...done. |
标识要写入 CD 的映像文件的名称。
使 CD 保持打开状态以便进行写入。
弹出 CD 后将其重新插入。
标识要在下一个写入会话中包括的 CD 介质的路径名。
$ eject -n . . . cdrom0 -> /vol/dev/rdsk/c2t4d0/my_infoA |
请注意 /vol/dev/... 路径名。
标识 CD 上下一个可写入地址以便写入下一个会话。
% cdrw -M /cdrom Device : YAMAHA CRW8424S Firmware : Rev. 1.0d (06/10/99) Track No. |Type |Start address ----------+--------+------------- 1 |Audio |0 2 |Audio |33057 3 |Data |60887 4 |Data |68087 5 |Data |75287 Leadout |Data |84218 Last session start address: 75287 Next writable address: 91118 |
记下 Next writable address 输出中的地址,以便在写入下一个会话时可以提供此地址。
为下一个 CD 会话创建下一个 ISO 文件系统,然后将其写入 CD。
$ mkisofs -o infoB -r -C 0,91118 -M /vol/dev/rdsk/c2t4d0/my_infoA /data/infoB Total translation table size: 0 Total rockridge attributes bytes: 16602 Total directory bytes: 22528 Path table size(bytes): 86 Max brk space used 20000 97196 extents written (189 Mb) |
标识 ISO 文件系统的名称。
创建 Rock Ridge 信息并将文件拥有权重置为零。
标识第一个会话的起始地址和下一个可写入地址。
指定要合并的现有 ISO 映像的路径。
标识要创建的 ISO 映像目录。
可以使用 cdrw 命令从单独的声道或者从 .au 和 .wav 文件创建音频 CD。
下表介绍了支持的音频格式:
格式 |
说明 |
---|---|
sun |
数据为红皮书 CDDA 格式的 Sun .au 文件 |
wav |
数据为红皮书 CDDA 格式的 RIFF (.wav) 文件 |
cda |
包含原始 CD 音频数据的 .cda 文件,该音频数据是按小尾数法字节顺序以 44.1 kHz 抽样率进行抽样的 16 位 PCM 立体声 |
aur |
包含原始 CD 数据的 .aur 文件,该数据以大尾数法字节顺序排序 |
如果未指定任何音频格式,则 cdrw 命令会尝试根据文件扩展名确定音频文件的格式。将忽略扩展名中字符的大小写。
此过程介绍如何将音频文件复制到 CD 上。
将空白 CD 插入 CD-RW 驱动器。
转到包含音频文件的目录。
$ cd /myaudiodir |
将音频文件复制到 CD 上。
$ cdrw -a track1.wav track2.wav track3.wav |
-a 选项用于创建音频 CD。
以下示例说明如何创建音频 CD。
$ cdrw -a bark.wav chirp.au meow.wav Initializing device...done. Writing track 1...done. done. Writing track 2...done. Writing track 3...done. done. Finalizing (Can take several minutes)...done. |
以下示例说明如何创建多会话音频 CD。写入第一个会话后,将弹出 CD。在下一个写入会话之前,需要重新插入 CD。
$ cdrw -aO groucho.wav chico.au harpo.wav Initializing device...done. Writing track 1...done. done. Writing track 2...done. Writing track 3...done. done. Finalizing (Can take several minutes)...done. <Re-insert CD> $ cdrw -a zeppo.au Initializing device...done. Writing track 1...done. done. Finalizing (Can take several minutes)...done. |
使用以下过程可从 CD 提取声道并将该声道复制到新 CD 上。
如果不使用 cdrw -T 选项指定音频文件类型,则 cdrw 命令会使用文件扩展名来确定音频文件类型。例如,cdrw 命令检测到此文件是 .wav 文件。
$ cdrw -x 1 testme.wav |
将音频 CD 插入 CD-RW 驱动器。
提取声道。
$ cdrw -x -T audio-type 1 audio-file |
从音频 CD 提取音频数据。
标识要提取的音频文件的类型。支持的音频类型包括 sun、wav、cda 或 aur。
标识要提取的声道。
将声道复制到新 CD。
$ cdrw -a audio-file |
以下示例说明如何从音频 CD 提取第一个声道并将文件命名为 song1.wav。
$ cdrw -x -T wav 1 song1.wav Extracting audio from track 1...done. |
本示例说明如何将声道复制到音频 CD。
$ cdrw -a song1.wav Initializing device...done. Writing track 1...done. Finalizing (Can take several minutes)...done. |
此过程说明如何将音频 CD 中的所有声道提取到一个目录中,然后将其全部复制到空白 CD 上。
缺省情况下,cdrw 命令会将 CD 复制到 /tmp 目录中。复制时可能需要多达 700 MB 的空闲空间。如果 /tmp 目录中用于复制 CD 的空间不足,请使用 -m 选项指定替代目录。
将音频 CD 插入 CD-RW 驱动器。
为音频文件创建目录。
$ mkdir /music_dir |
从音频 CD 提取声道。
$ cdrw -c -m music_dir |
对于每个声道,将显示 Extracting audio ... 消息。
提取所有声道后,将弹出 CD。
插入空白 CD,然后按回车键。
提取声道后,将弹出音频 CD。系统将提示插入空白 CD。
本示例说明如何将一张 CD 复制到另一张 CD。必须具有两个 CD-RW 设备才能执行此任务。
$ cdrw -c -s cdrom0 -d cdrom1 |
必须删除现有的 CD-RW 数据后,才能重写 CD。