写入 CD 和 DVD 数据及音频 CD
写入 CD 或 DVD 的过程不能中断,并且需要连续不断的数据流。请考虑使用 cdrw -S 选项模拟向介质进行写入,以验证系统是否可以充足的速率提供数据以便写入 CD 或 DVD。
写入错误可能是由以下问题之一导致的:
介质无法处理驱动器速度。例如,一些介质仅经过 2x 或 4x 速度的认证。
系统正在运行过多的超负荷进程,从而导致写入进程无法运行。
网络拥塞导致读取映像时产生延迟,并且映像位于远程系统上。
源驱动器的速度比目标驱动器慢。
如果出现上述任一问题,可以使用 cdrw -p 选项降低设备的写入速度。
例如,以下命令说明如何模拟以 4x 速度进行写入:$ cdrw -iS -p 4 image.iso
注 -CD-R、CD-RW(非 MRW 格式)、DVD-R 和 DVD-RW 介质支持模拟模式 (-S),但是 DVD-RAM、DVD+R、DVD+RW 和任何 MRW 格式的介质以及其他一些介质不支持模拟模式。如果不支持模拟模式,将出现以下消息:Media does not support simulated writing
有关介质类型的更多信息,请参见CD/DVD 介质常用术语。
有关更多信息,请参见cdrw(1)。
通过 RBAC 限制用户对可移除介质的访问
缺省情况下,所有用户都可以访问可移除介质。但是,可以通过基于角色的访问控制 (role-based access control, RBAC) 设置角色,限制用户对可移除介质的访问。通过为一组有限的用户指定角色,可以限制对可移除介质的访问。
如何通过 RBAC 限制用户对可移除介质的访问设置具有设备管理权限的角色。# roleadd -m -d /export/home/muser -c "mediauser role" -A solaris.device.cdrw -P All muser
将需要使用 cdrw 命令的用户添加到新创建的角色。# usermod -R muser joe
注释 /etc/security/policy.conf 文件中的以下行:AUTHS_GRANTED=solaris.device.cdrw
如果不执行此步骤,则所有用户仍可以访问 cdrw 命令,而不仅仅是作为设备管理角色的成员。
修改此文件后,只有设备管理角色的成员才可以使用 cdrw 命令。将拒绝所有其他人的访问,并显示以下消息:Authorization failed, Cannot access disks.
如何标识 CD 或 DVD 写入者在系统上标识 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
%
如何检查 CD 或 DVD 介质
无论可移除介质服务是否运行都可以使用 cdrw 命令。有关禁用或启用可移除介质服务的更多信息,请参见如何禁用或启用可移除介质服务。将 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
(可选的)如果列表中未显示该驱动器,请选择以下操作之一以便系统可识别该驱动器。
添加驱动器,而不重新引导系统。# drvconfig
# disks
然后重新启动可移除介质服务。
创建数据 CD 或 DVD
首先使用 mkisofs 命令准备数据,将文件和文件信息转换为可在 CD 或 DVD 上使用的 High Sierra 格式。
如何为数据 CD 或 DVD 创建 ISO 9660 文件系统将空白 CD 或 DVD 插入驱动器。
在新 CD 或 DVD 上创建 ISO 9660 文件系统。$ mkisofs -r /pathname > cd-file-system-r
创建 Rock Ridge 信息并将文件所有权重置为零。
/pathname
标识用于创建 ISO 9660 文件系统的路径名。
> cd-file-system
标识要放置在 CD 或 DVD 上的文件系统的名称。
将文件系统复制到 CD 或 DVD 上。$ cdrw -i cd-file-system
-i cd-file-system 指定用于创建数据 CD 或 DVD 的映像文件。
示例 4-1 为数据 CD 或 DVD 创建 ISO 9660 文件系统
以下示例说明如何为数据 CD 或 DVD 创建 ISO 9660 文件系统。$ mkisofs -r /home/dubs/dir > dubs_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 上。$ cdrw -i dubs_cd
Initializing device...done.
Writing track 1...done.
Finalizing (Can take several minutes)...done.
如何创建多会话数据 CD
此过程介绍如何在 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)-o infoA
标识 ISO 文件系统的名称。
-r
创建 Rock Ridge 信息并将文件所有权重置为零。
-V my_infoA
标识将由可移除介质服务用作挂载点的卷标。
/data/infoA
标识要创建的 ISO 映像目录。
将第一个会话的 ISO 文件系统复制到 CD 上。$ cdrw -iO infoA
Initializing device...done.
Writing track 1...done.
done.
Finalizing (Can take several minutes)...done.-i infoA
标识要写入 CD 的映像文件的名称。
-O
使 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)-o infoB
标识 ISO 文件系统的名称。
-r
创建 Rock Ridge 信息并将文件所有权重置为零。
-C 0,91118
标识第一个会话的起始地址和下一个可写入地址。
-M /vol/dev/rdsk/c2t4d0/my_infoA
指定要合并的现有 ISO 映像的路径。
/data/infoB
标识要创建的 ISO 映像目录。
创建音频 CD
可以使用 cdrw 命令从单独的声道或者从 .au 和 .wav 文件创建音频 CD。
下表介绍了支持的音频格式:
格式
说明
sun
数据为红皮书 CDDA 格式的 Oracle .au 文件
wav
数据为红皮书 CDDA 格式的 RIFF (.wav) 文件
cda
包含原始 CD
音频数据的 .cda 文件,该音频数据是按小尾数法字节顺序以 44.1 kHz 抽样率进行抽样的 16 位 PCM 立体声
aur
包含原始 CD 数据的
.aur 文件,该数据以大尾数法字节顺序排序
如果未指定任何音频格式,则 cdrw 命令会尝试根据文件扩展名确定音频文件的格式。忽略扩展名中字符的大小写。
如何创建音频 CD
此过程介绍如何将音频文件复制到 CD 上。将空白 CD 插入 CD-RW 驱动器。
转到包含音频文件的目录。$ cd /myaudiodir
将音频文件复制到 CD 上。$ cdrw -a track1.wav track2.wav track3.wav
-a 选项用于创建音频 CD。
示例 4-2 创建音频 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.
$ cdrw -a zeppo.au
Initializing device...done.
Writing track 1...done.
done.
Finalizing (Can take several minutes)...done.
如何提取 CD 上的声道
使用以下过程可从 CD 提取声道并将该声道复制到新 CD 上。
如果不使用 cdrw -T 选项指定音频文件类型,则 cdrw 命令会使用文件扩展名来确定音频文件类型。例如,cdrw 命令检测到此文件是 .wav 文件。$ cdrw -x 1 testme.wav将音频 CD 插入 CD-RW 驱动器。
提取声道。$ cdrw -x -T audio-type 1 audio-file-x
从音频 CD 提取音频数据。
T audio-type
标识要提取的音频文件的类型。支持的音频类型包括 sun、wav、cda 或 aur。
audio-file
标识要提取的声道。
将声道复制到新 CD。$ cdrw -a audio-file
示例 4-3 提取和创建音频 CD
以下示例说明如何从音频 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 中的所有声道提取到一个目录中,然后将其全部复制到空白 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。
示例 4-4 复制 CD
本示例说明如何将一张 CD 复制到另一张 CD。必须具有两个 CD-RW 设备才能执行此任务。$ cdrw -c -s cdrom0 -d cdrom1
如何删除 CD-RW 介质
必须删除现有的 CD-RW 数据后,才能重写 CD。通过选择以下操作之一,删除整个介质或仅删除 CD 上的最后一个会话:
仅删除最后一个会话。$ cdrw -d cdrom0 -b session
使用 -b session 选项仅删除最后一个会话比使用 -b all 选项删除整个介质更快。即使仅在一个会话中使用 cdrw 命令创建数据或音频 CD,仍可以使用 -b session 选项。
删除整个介质。$ cdrw -d cdrom0 -b all