📄 creating-cds.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy, see www.w3.org" /><title>创建和使用光学介质 (CDs)</title><meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" /><link rel="HOME" title="FreeBSD 使用手册" href="index.html" /><link rel="UP" title="存储" href="disks.html" /><link rel="PREVIOUS" title="USB 存储设备" href="usb-disks.html" /><link rel="NEXT" title="创建和使用光学介质(DVD)" href="creating-dvds.html" /><link rel="STYLESHEET" type="text/css" href="docbook.css" /><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /></head><body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"alink="#0000FF"><div class="NAVHEADER"><table summary="Header navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><th colspan="3" align="center">FreeBSD 使用手册</th></tr><tr><td width="10%" align="left" valign="bottom"><a href="usb-disks.html"accesskey="P">后退</a></td><td width="80%" align="center" valign="bottom">章 16. 存储</td><td width="10%" align="right" valign="bottom"><a href="creating-dvds.html"accesskey="N">前进</a></td></tr></table><hr align="LEFT" width="100%" /></div><div class="SECT1"><h1 class="SECT1"><a id="CREATING-CDS" name="CREATING-CDS">16.6. 创建和使用光学介质(CDs)</a></h1><i class="AUTHORGROUP"><span class="CONTRIB">Contributed by</span> Mike Meyer.</i> <div class="SECT2"><h2 class="SECT2"><a id="AEN23462" name="AEN23462">16.6.1. 介绍</a></h2><p>CDs与普通的磁盘相比有很多不同的特性。最初它们是不能被用户写入的。由于没有磁头和磁道移动时的延迟,所以它们可以连续的进行读取。方便的在两个系统之间进行数据的传输,比起相同大小的存储介质来说。</p><p>CDs有磁道,这关系到数据读取时的连续性而不是物理磁盘的性能。要在FreeBSD中制作一个CD,你要准备好要写到CD上的数据文件,然后根据每个tracks写入到CD。</p><p>ISO 9660 文件系统被设计用来处理这些差异。它通常不会对文件系统作限制。幸运的是,它提供了一个可扩展机制允许在制作CDs时越越这些限制,而同时在不支持这些扩展的系统上仍旧能够进行工作。</p><p><a href="http://www.FreeBSD.org/cgi/url.cgi?ports/sysutils//pkg-descr"><ttclass="FILENAME">sysutils/</tt></a> port 包括了 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">mkisofs</span>(8)</span>, 这是一个可以用来生成包含 ISO 9660文件系统的数据文件的程序。 他也提供了对于一些扩展的支持选项,下面将详细介绍。</p><p>使用哪个工具来刻录CD依赖于CD刻录机是ATAPI还是其它类型的。ATAPI CD 刻录器使用 <ttclass="COMMAND"><a href="creating-cds.html#BURNCD">burncd</a></tt>程序,可以在基本系统中找到。SCSI 和 USB CD 刻录机使用 <tt class="COMMAND"><ahref="creating-cds.html#CDRECORD">cdrecord</a></tt> 程序,可以 在 <ahref="http://www.FreeBSD.org/cgi/url.cgi?ports/sysutils/cdrtools/pkg-descr"><ttclass="FILENAME">sysutils/cdrtools</tt></a> port中找到。</p><p><tt class="COMMAND">burncd</tt> 程序受到一系列支持设备的限制。如果想知道设备是否被支持,可以查看 <a href="http://www.freebsd.dk/ata/" target="_top">CD-R/RWsupported drives</a> 列表。</p><div class="NOTE"><blockquote class="NOTE"><p><b>注:</b> 如果你运行的是 FreeBSD 5.X, FreeBSD 4.8-RELEASE 或更高版本,它将可能使用 <tt class="COMMAND"><a href="creating-cds.html#CDRECORD">cdrecord</a></tt>和其它工作在一个 ATAPI 硬件 <a href="creating-cds.html#ATAPICAM">ATAPI/CAM module</a>为SCSI设备。</p></blockquote></div><p>如果你想使用一个图开界面的 CD 刻录软件 你可以参考一下 <bclass="APPLICATION">X-CD-Roast</b> 或 <b class="APPLICATION">K3b</b>。这些工具作为安装包可以从 <ahref="http://www.FreeBSD.org/cgi/url.cgi?ports/sysutils/xcdroast/pkg-descr"><ttclass="FILENAME">sysutils/xcdroast</tt></a> 和 <ahref="http://www.FreeBSD.org/cgi/url.cgi?ports/sysutils/k3b/pkg-descr"><ttclass="FILENAME">sysutils/k3b</tt></a> ports 得到。 <b class="APPLICATION">X-CD-Roast</b>和 <b class="APPLICATION">K3b</b> 需要 <a href="creating-cds.html#ATAPICAM">ATAPI/CAMmodule</a> 和 ATAPI 硬件。</p></div><div class="SECT2"><h2 class="SECT2"><a id="MKISOFS" name="MKISOFS">16.6.2. mkisofs</a></h2><p><span class="CITEREFENTRY"><span class="REFENTRYTITLE">mkisofs</span>(8)</span>程序作为 <ahref="http://www.FreeBSD.org/cgi/url.cgi?ports/sysutils/cdrtools/pkg-descr"><ttclass="FILENAME">sysutils/cdrtools</tt></a> port 的一部分, 将生成 ISO 9660文件系统,其中包含 <span class="TRADEMARK">UNIX</span>® 命名空间中的文件名。最简单的用法是:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">mkisofs -o <varclass="REPLACEABLE">imagefile.iso</var> <varclass="REPLACEABLE">/path/to/tree</var></kbd></pre><p>这个命令将创建一个包含ISO9660文件系统的 <var class="REPLACEABLE">imagefile.iso</var>文件,它是目录树 <var class="REPLACEABLE">/path/to/tree</var>的一个拷贝。在处理过程中,它将文件名称映射为标准的 ISO9660文件系统的文件名,将排除那些不人典型的 ISO 文件系统的文件。</p><p>有很多选项能够用来克服那些限制。特别的,<var class="OPTION">-R</var> 选项能够 启用Rock Ridge 扩展一般的 <span class="TRADEMARK">UNIX</span> 系统,<varclass="OPTION">-J</var> 选项能启用 用于 Microsoft 系统的 Joliet 扩展,<varclass="OPTION">-hfs</var> 选项能用来创建 用于 <spanclass="TRADEMARK">Mac OS</span>® 系统的 HFS 文件系统。</p><p>对于那些即将要在 FreeBSD 系统中使用 CDs 人的来说,<var class="OPTION">-U</var>选项能用来消除所有文件名的限制。当使用 <var class="OPTION">-R</var> 选项时,它会产生一个文件系统映像,它与你从那儿启动 FreeBSD 树是一样的,虽然它在许多方面也违反了 ISO 9660的标准。</p><p>最后一个常用的选项是 <var class="OPTION">-b</var>。这可以用来指定启动映像的位置,以产生一个 ``El Torito'' 的启动光盘。 这个选项有一个参数,这个 参数是指向已被写入到 CD的目录树顶部的启动映像的路径。所以, <tt class="FILENAME">/tmp/myboot</tt> 在<ttclass="FILENAME">/tmp/myboot/boot/cdboot</tt> 中保存了一个可启动的 FreeBSD系统,你应当像下面这样在 <tt class="FILENAME">/tmp/bootable.iso</tt> 中生成一个 ISO9660文件系统的映像:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbdclass="USERINPUT">mkisofs -U -R -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot</kbd></pre><p>完成之的一,如果内核中已经配置了 <tt class="DEVICENAME">vn</tt> (FreeBSD 4.X), 或<tt class="DEVICENAME">md</tt> (FreeBSD 5.X),就可以挂上文件系统:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbdclass="USERINPUT">vnconfig -e vn0c /tmp/bootable.iso</kbd><samp class="PROMPT">#</samp> <kbd class="USERINPUT">mount -t cd9660 /dev/vn0c /mnt</kbd></pre><p>在 FreeBSD 4.X, 和 FreeBSD 5.X 中:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbdclass="USERINPUT">mdconfig -a -t vnode -f /tmp/bootable.iso -u 0</kbd><samp class="PROMPT">#</samp> <kbd class="USERINPUT">mount -t cd9660 /dev/md0 /mnt</kbd></pre><p>可以发现 <tt class="FILENAME">/mnt</tt> 和 <tt class="FILENAME">/tmp/myboot</tt>是一样的。</p><p>还可以使用 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">mkisofs</span>(8)</span> 的其它选项来调整它的行为。特别是修改 ISO9660 的划分格式,创建 Joliet 和 HFS 格式的磁盘。查看 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">mkisofs</span>(8)</span> 手册页得到更多的帮助。</p></div><div class="SECT2"><h2 class="SECT2"><a id="BURNCD" name="BURNCD">16.6.3. burncd</a></h2><p>如果用的是 ATAPE 的 CD 刻录机,可以使用 <tt class="COMMAND">burncd</tt> 命令来记录你的 CD ISO 映像文件。 <tt class="COMMAND">burncd</tt> 命令是基本 系统的一部分,中以使用 <tt class="FILENAME">/usr/sbin/burncd</tt> 来安装。 用法如下:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">burncd -f <varclass="REPLACEABLE">cddevice</var> data <varclass="REPLACEABLE">imagefile.iso</var> fixate</kbd></pre><p>在 <var class="REPLACEABLE">cddevice</var> 上刻录一份 <varclass="REPLACEABLE">imagefile.iso</var> 的副本。 默认的设备是 <ttclass="FILENAME">/dev/acd0</tt> (在 FreeBSD 4.X 下则是 <ttclass="FILENAME">/dev/acd0c</tt>)。 请参考 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">burncd</span>(8)</span>以了解设置写入速度的参数,如何在刻录完成之后自动弹出CD,以及刻录音频数据。</p></div><div class="SECT2"><h2 class="SECT2"><a id="CDRECORD" name="CDRECORD">16.6.4. cdrecord</a></h2><p>如果没有一个 ATAPI CD 刻录机,必须使用 <tt class="COMMAND">cdrecord</tt> 来刻录你的 CD。 <tt class="COMMAND">cdrecord</tt> 不是基本系统的一部分;必须 从 <ahref="http://www.FreeBSD.org/cgi/url.cgi?ports/sysutils/cdrtools/pkg-descr"><ttclass="FILENAME">sysutils/cdrtools</tt></a> 或适当的 package安装它。基本系统的变化可能会引起这个程序的错误。可能是由 ``coaster''引起的。当升级系统时,同时需要升级 port ,或者 如果已升级到 <ahref="current-stable.html#STABLE">tracking -STABLE</a> ,那么使用 新版本时也要升级port。</p><p><tt class="COMMAND">cdrecord</tt> 有许多选项,基本用法与 <ttclass="COMMAND">burncd</tt> 相似。刻录一个 ISO 9660 映像文件只需这样做:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">cdrecord dev=<varclass="REPLACEABLE">device</var> <var class="REPLACEABLE">imagefile.iso</var></kbd></pre><p>使用 <tt class="COMMAND">cdrecord</tt> 的比较巧妙的方法是找到使用的 <varclass="OPTION">dev</var> 。要找到正确的设置,可以使用 <tt class="COMMAND">cdrecord</tt>的 <var class="OPTION">-scanbus</var> 标记,这会产生这样的结果:</p><pre class="SCREEN"><samp class="PROMPT">#</samp> <kbd class="USERINPUT">cdrecord -scanbus</kbd>Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 Jörg SchillingUsing 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) *</pre><p>这个列表列出了设备的的适当的 <var class="OPTION">dev</var> 值。找到你的 CD burner,使用三个用逗号分隔的数值来表示 <var class="OPTION">dev</var>.在 这个例子中,CRW 是 <varclass="OPTION">dev=1,5,0</var>,所以正确的输入应是 dev=1,5,0。有一个很容易的方法可以指定这个值;看看 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">cdrecord</span>(1)</span>的介绍了解有关音轨,控制速度和其他的东西。</p></div><div class="SECT2"><h2 class="SECT2"><a id="DUPLICATING-AUDIOCDS" name="DUPLICATING-AUDIOCDS">16.6.5.复制音频 CD</a></h2><p>你可以这样复制 CD,把 CD 上面的音频数据解压缩出一系列的文件, 再把这些文件写到一张空白CD 上。 这个过程对于 ATAPI 和 SCSI 驱动器来说有些微的不同。</p><div class="PROCEDURE"><p><b>SCSI 驱动器</b></p><ol type="1"><li><p>使用 <tt class="COMMAND">cdda2wav</tt> 来解压缩音频。</p><pre class="SCREEN"><samp class="PROMPT">%</samp> <kbd class="USERINPUT">cdda2wav -v255 -D2,0 -B -Owav</kbd></pre></li>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -