系统管理指南:设备和文件系统

第 4 章 写入 CD 和 DVD(任务)

本章提供有关使用 cdrw 命令写入和复制数据 CD 和 DVD 以及音频 CD 的逐步说明。

使用音频 CD 以及数据 CD 和 DVD

有关 DVD 支持的新信息,请参见Solaris 10 发行版中可移除介质方面的新增功能

可以使用 cdrw 命令在 CD-R、CD-RW、DVD-RW 或 DVD+RW 介质设备上以 ISO 9660 格式(带有 Rock Ridge 或 Joliet 扩展)向 CD 和 DVD 中写入文件系统。

可以使用 cdrw 命令执行以下任务:

从以下发行版开始提供了 cdrw 命令:

有关推荐的 CD-R 或 CD-RW 设备的信息,请转到:

http://www.sun.com/io_technologies/ihvindex.html

CD/DVD 介质常用术语

本节定义了与 CD/DVD 介质相关的常用术语。

术语 

说明 

CD-R 

可以写入一次并且之后只能读取的 CD 读取介质。 

CD-RW 

可擦写的 CD 可重写介质。CD-RW 介质只能由 CD-RW 设备读取。 

DVD-RW 

数字视频光盘(可重写)只能由 DVD-RW 驱动器读取。 

DVD+RW 

数字视频光盘(可刻录/可重写)驱动器可以写入 DVD-R 光盘(可以在大多数 DVD 播放机和计算机驱动器上播放)和 DVD-RW 可重写光盘。 

ISO 9660 

ISO 是 Industry Standards Organization(行业标准组织)的首字母缩略词,该组织负责制定计算机存储格式的标准。 

ISO 9660 文件系统是标准的 CD 或 DVD 文件系统,通过它可以在任何主要计算机平台上读取同一 CD 或 DVD。该标准于 1988 年发布,是由名为 High Sierra(以内华达州的 High Sierra 旅馆命名)的行业工作组编写的。几乎所有配有 CD 或 DVD 驱动器的计算机都可以从 ISO 9660 文件系统读取文件。 

Joliet extensions(Joliet 扩展) 

Rock Ridge extensions(Rock Ridge 扩展) 

添加 Windows 文件系统信息。 

添加 UNIX 文件系统信息。(Rock Ridge 以电影 Blazing Saddles 中的城镇命名。) 


注 –

这些扩展不互斥。可以同时指定 mkisofs -R-j 选项以便与这两种系统兼容。(有关详细信息,请参见 mkisofs(1M)。)


MMC-compliant recorder(符合 MMC 标准的刻录机) 

Multi Media Command(多媒体命令)的首字母缩略词,表示这些刻录机符合通用命令集。如果程序可以写入到一个符合 MMC 标准的刻录机,则应该可以写入到其他所有刻录机。 

Red Book CDDA(红皮书 CDDA) 

Compact Disc Digital Audio(光盘数字音频)的首字母缩略词,一种用于在光盘上存储数字音频的行业标准方法,也因术语“红皮书”格式而得名。正式的行业规范要求以 44.1 千赫 (kHz) 的抽样率在 16 位立体声中抽样一个或多个音频文件。 

写入 CD 介质时常用的术语如下:

术语 

说明 

blanking(消隐) 

从 CD-RW 介质中删除数据的过程。 

mkisofs

用于在 CD 上创建 ISO 文件系统的命令。 

session(会话) 

具有引入和引出信息的完整磁道。 

track(磁轨) 

完整的数据或音频单元。 

写入数据 CD 和 DVD 及音频 CD

写入 CD 或 DVD 的过程不能中断,并且需要连续不断的数据流。请考虑使用 cdrw -S 选项模拟向介质进行写入,以验证系统是否可以充足的速率提供数据以便写入 CD 或 DVD。

写入错误可能是由以下问题之一导致的:

如果出现上述任一问题,可以使用 cdrw -p 选项降低设备的写入速度。

例如,以下命令说明如何模拟以 4x 速度进行写入:


$ cdrw -iS -p 4 image.iso

也可以通过 cdrw -C 选项使用规定的介质容量复制 80 分钟的 CD。否则,cdrw 命令会使用缺省值 74 分钟来复制音频 CD。

有关更多信息,请参见 cdrw(1)

通过 RBAC 限制用户对可移除介质的访问

缺省情况下,从 Solaris 9 发行版开始所有用户都可以访问可移除介质。但是,可以通过基于角色的访问控制 (role-based access control, RBAC) 设置角色,限制用户对可移除介质的访问。通过为一组有限的用户指定角色,可以限制对可移除介质的访问。

有关使用角色的说明,请参见《系统管理指南:安全性服务》中的“基于角色的访问控制(概述)”

Procedure如何通过 RBAC 限制用户对可移除介质的访问

  1. 成为超级用户或承担等效角色。

  2. 启动 Solaris Management Console。


    $ /usr/sadm/bin/smc & 
    

    有关启动控制台的更多信息,请参见《系统管理指南:基本管理》中的“启动 Solaris Management Console”

  3. 设置具有设备管理权限的角色。

    有关更多信息,请参见《系统管理指南:安全性服务》中的第 9  章 “使用基于角色的访问控制(任务)”

  4. 将需要使用 cdrw 命令的用户添加到新创建的角色。

  5. 注释 /etc/security/policy.conf 文件中的以下行:


    AUTHS_GRANTED=solaris.device.cdrw

    如果不执行此步骤,则所有用户仍可以访问 cdrw 命令,而不仅仅是作为设备管理角色的成员。

    修改此文件后,只有设备管理角色的成员才可以使用 cdrw 命令。将拒绝所有其他人的访问,并显示以下消息:


    Authorization failed, Cannot access disks.

Procedure如何标识 CD 或 DVD 写入者

  1. 在系统上标识 CD 或 DVD 写入者。

    例如:


    $ cdrw -l
    
    Looking for CD devices...
    
        Node              |    Connected Device            |  Device type
    
    ----------------------+--------------------------------+-----------------
    
     cdrom0               | YAMAHA   CRW8824S         1.0d | CD Reader/Writer
  2. 标识特定的 CD 或 DVD 写入者。

    例如:


    $ cdrw -a filename.wav -d cdrom2
    
  3. 确定介质是否为空或介质上是否存在目录。

    例如:


    $ cdrw -M
    
    
    
    Device : YAMAHA   CRW8824S        
    
    Firmware : Rev. 1.00 (26/04/00)
    
    Media is blank
    
    %

Procedure如何检查 CD 或 DVD 介质

无论 vold 是否运行都可以使用 cdrw 命令。但是,必须具有超级用户或等效角色的访问权限,才能停止和启动 vold 守护进程。

  1. 将 CD 或 DVD 插入驱动器。

    CD 或 DVD 可以是驱动器可读取的任何 CD 或 DVD。

  2. 通过列出驱动器来检查是否已正确连接该驱动器。


    $ cdrw -l
    
     Looking for CD devices...
    
        Node                   Connected Device                Device type
    
    ----------------------+--------------------------------+-----------------
    
     cdrom1               | YAMAHA   CRW8824S         1.0d | CD Reader/Writer
  3. (可选)如果列表中未显示该驱动器,请选择以下操作之一以便系统可识别该驱动器。

    • 执行重新配置引导。


      # touch /reconfigure
      
      # init 6
      
    • 添加驱动器,而不重新引导系统。


      # drvconfig
      
      # disks
      

      然后重新启动 vold


      # svcadm disable volfs
      
      # svcadm enable volfs
      

创建数据 CD 或 DVD

首先使用 mkisofs 命令准备数据,将文件和文件信息转换为可在 CD 或 DVD 上使用的 High Sierra 格式。

Procedure如何为数据 CD 或 DVD 创建 ISO 9660 文件系统

  1. 将空白 CD 或 DVD 插入驱动器。

  2. 在新 CD 或 DVD 上创建 ISO 9660 文件系统。


    $ mkisofs -r /pathname > cd-file-system
    
    -r

    创建 Rock Ridge 信息并将文件拥有权重置为零。

    /pathname

    标识用于创建 ISO 9660 文件系统的路径名。

    > cd-file-system

    标识要放置在 CD 或 DVD 上的文件系统的名称。

  3. 将文件系统复制到 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/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.

Procedure如何创建多会话数据 CD

此过程介绍如何在 CD 上放置多个会话。此过程包括将 infoAinfoB 目录复制到 CD 上的示例。

  1. 为第一个 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

    标识要由 vold 用作挂载点的卷标号。

    /data/infoA

    标识要创建的 ISO 映像目录。

  2. 将第一个会话的 ISO 文件系统复制到 CD 上。


    $ cdrw -iO infoA
    
    Initializing device...done.
    
    Writing track 1...done.
    
    done. 
    
    Finalizing (Can take several minutes)...done.
    -i infoA

    标识要写入 CD 的映像文件的名称。

    -O

    使 CD 保持打开状态以便进行写入。

  3. 弹出 CD 后将其重新插入。

  4. 标识要在下一个写入会话中包括的 CD 介质的路径名。


    $ eject -n
    
    .
    
    .
    
    .
    
    cdrom0 -> /vol/dev/rdsk/c2t4d0/my_infoA

    请注意 /vol/dev/... 路径名。

  5. 标识 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 输出中的地址,以便在写入下一个会话时可以提供此地址。

  6. 为下一个 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 格式的 Sun .au 文件

wav

数据为红皮书 CDDA 格式的 RIFF (.wav) 文件

cda

包含原始 CD 音频数据的 .cda 文件,该音频数据是按小尾数法字节顺序以 44.1 kHz 抽样率进行抽样的 16 位 PCM 立体声

aur

包含原始 CD 数据的 .aur 文件,该数据以大尾数法字节顺序排序

如果未指定任何音频格式,则 cdrw 命令会尝试根据文件扩展名确定音频文件的格式。将忽略扩展名中字符的大小写。

Procedure如何创建音频 CD

此过程介绍如何将音频文件复制到 CD 上。

  1. 将空白 CD 插入 CD-RW 驱动器。

  2. 转到包含音频文件的目录。


    $ cd /myaudiodir
    
  3. 将音频文件复制到 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.

<Re-insert CD>

$ cdrw -a zeppo.au

Initializing device...done.

Writing track 1...done.

done. 

Finalizing (Can take several minutes)...done.

Procedure如何提取 CD 上的声道

使用以下过程可从 CD 提取声道并将该声道复制到新 CD 上。

如果不使用 cdrw -T 选项指定音频文件类型,则 cdrw 命令会使用文件扩展名来确定音频文件类型。例如,cdrw 命令检测到此文件是 .wav 文件。


$ cdrw -x 1 testme.wav
  1. 将音频 CD 插入 CD-RW 驱动器。

  2. 提取声道。


    $ cdrw -x -T audio-type 1 audio-file
    
    -x

    从音频 CD 提取音频数据。

    T audio-type

    标识要提取的音频文件的类型。支持的音频类型包括 sunwavcdaaur

    audio-file

    标识要提取的声道。

  3. 将声道复制到新 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.

Procedure如何复制 CD

此过程说明如何将音频 CD 中的所有声道提取到一个目录中,然后将其全部复制到空白 CD 上。


注 –

缺省情况下,cdrw 命令会将 CD 复制到 /tmp 目录中。复制时可能需要多达 700 MB 的空闲空间。如果 /tmp 目录中用于复制 CD 的空间不足,请使用 -m 选项指定替代目录。


  1. 将音频 CD 插入 CD-RW 驱动器。

  2. 为音频文件创建目录。


    $ mkdir /music_dir
    
  3. 从音频 CD 提取声道。


    $ cdrw -c -m music_dir
    

    对于每个声道,将显示 Extracting audio ... 消息。

    提取所有声道后,将弹出 CD。

  4. 插入空白 CD,然后按回车键。

    提取声道后,将弹出音频 CD。系统将提示插入空白 CD。


示例 4–4 复制 CD

本示例说明如何将一张 CD 复制到另一张 CD。必须具有两个 CD-RW 设备才能执行此任务。


$ cdrw -c -s cdrom0 -d cdrom1

Procedure如何删除 CD-RW 介质

必须删除现有的 CD-RW 数据后,才能重写 CD。

    通过选择以下操作之一,删除整个介质或仅删除 CD 上的最后一个会话:

    • 仅删除最后一个会话。


      $ cdrw -d cdrom0 -b session
      

      使用 -b session 选项仅删除最后一个会话比使用 -b all 选项删除整个介质更快。即使仅在一个会话中使用 cdrw 命令创建数据或音频 CD,仍可以使用 -b session 选项。

    • 删除整个介质。


      $ cdrw -d cdrom0 -b all