Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->桌面应用 ->正文

在Linux上烧录CD

来源:IBM DW中国 作者:Carla Schroder  时间:2007-04-22 点击: [收藏] [投稿]

表 1. IDE/ATAPI 设备名

名称 设备
hda IDE 总线/连接器 0 主设备
hdb IDE 总线/连接器 0 从属设备
hdc IDE 总线/连接器 1 主设备
hdd IDE 总线/连接器 1 从属设备

要找到系统上的驱动器,请输入:

$ dmesg | grep '^hd.:'

hda: IBM-DTLA-305020, ATA DISK drive
hdb: TOSHIBA DVD-ROM SD-M1202, ATAPI CD/DVD-ROM drive
hdc: LITE-ON LTR-24102B, ATAPI CD/DVD-ROM drive
hda: 40188960 sectors (20577 MB) w/380KiB Cache, CHS=2501/255/63, UDMA(66)

大多数现代 Linux 都包含了已编译进内核的 SCSI 仿真:

$ locate ide-scsi.o

/lib/modules/2.4.19/kernel/drivers/scsi/ide-scsi.o

如果您的系统不是这样的,那么您就必须将它编译到您的内核中。对于这篇篇幅有限的文章来说,那是一个过大的主题,因此请参阅 参考资料(当您知道怎么样做时,您会发现它并不难)。

您需要编辑两个文本文件来配置系统,让它使用 ide-scsi 驱动程序。第一个是 /etc/modules.conf(在 Debian 中是 /etc/modules)。我的系统有一个 CD-ROM 和一个 CD-R/RW 驱动器,设备分别是 hdb 和 hdc。使用适合于您系统的值,将这两行添加到 /etc/modules.conf(或 /etc/modules):

ide-cd ignore=\"hdb hdc\"
ide-scsi

缺省情况下,IDE 子系统将所有的 ATA 设备声明为它自己的设备,因此 ignore 这一行使得 SCSI 子系统既能抓取 CD-R/RW 也能抓取 CD-ROM。

接下来,为您的引导装载程序(GRUB 或 LILO)编辑配置文件。对于 LILO 用户,请将下面两行添加到 lilo.conf 的末尾:

append="hdb=ide-scsi"
append="hdc=ide-scsi"

对于 GRUB 用户,请将下面这行添加到 /etc/grub.conf(或者 Debian 中的 /boot/grub/menu.lst)中 kernel 这行的末尾:

hdb=scsi hdc=scsi

现在重新引导,并验证它是否已装入:

$ lsmod

这条命令将返回一个长列表;请查找 ide-scsi。

创建 .iso 文件

一旦选择了您想复制的文件,对 CD 进行刻录就只有两步:用 mkisofs 创建 .iso,然后用 cdrecord 将这些文件烧录进盘中。使用以下命令来创建 .iso 文件:

$ mkisofs -o test.iso -Jrv -V test_disk /home/carla/

在上面的示例中:

  • -o 为新的 .iso 映像文件命名(test.iso)
  • -J 为了与 Windows 兼容而使用 Joliet 命名记录
  • -r 为了与 UNIX/Linux 兼容而使用 Rock Ridge 命名约定,它使所有文件都公共可读
  • -v 设置详细模式,以便在创建映像时获得运行注释
  • -V 提供了卷标识(test_disk);该标识就是出现在 Windows 资源管理器中的盘名
  • 列表中的最后一项是选择要打包到 .iso 中的文件(都在 /home/carla/ 中)

现在,挂装 .iso 来进行验证;我喜欢创建一个测试目录:

$ mkdir /test_iso
$ mount -t iso9660 -o ro,loop=/dev/loop0 test.iso /test_iso

查看目录的内容;所有的文件都应该在那里,并且都可读。否则,就是映像坏掉了,如果您将它烧录到盘上,那么您最终将得到一个刻录失败的光盘。

烧录盘

将映像写到盘中再简单不过了。首先,找到 CD-R/RW 的 SCSI 地址:

$ cdrecord -scanbus

Cdrecord 1.10 (i686-pc-linux-gnu) Copyright (C) 1995-2001 Jrg Schilling
Linux sg driver version: 3.1.24
Using libscg version 'schily-0.5'
scsibus0:
0,0,0 0) 'TOSHIBA ' 'DVD-ROM SD-M1202' '1020' Removable CD-ROM
0,1,0 1) 'LITE-ON ' 'LTR-24102B ' '5S54' Removable CD-ROM
0,2,0 2) *
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *

每一项的前三个数字分别指 SCSI 总线、设备标识和 LUN(逻辑单元号,Logical Unit Number)。(第四个数字也是设备标识。) cdrecord 需要这三个数字。在上面的示例中,CD 刻录机是 0,1,0。SCSI 总线 0 上的设备都可以缩写为 1,0,即省去头一个 0。这是一个公共约定。如果有其它总线的话,则必须指定 — 没有快捷方式。

现在向盘中写内容:

$ cdrecord -v -eject speed=8 dev=0,1,0 test.iso

在上面的示例中:

  • -v 指详细方式
  • -eject 在完成写任务后弹出盘
  • -speed 指定写速度(8)
  • -dev 是从 cdrecord -scanbus 获得的设备号(0,1,0)
  • 最后一个是所烧录的映像的名称(test.iso)

对于创建用于公用分发的盘,这是一种简单且可用的方法,因为它创建了可以在任何 Windows 或 Linux 系统上读取的盘。 mkisofs 本身就非常适合于创建供下载的 .iso,而且 mkisofs 可以为许多平台创建文件系统。请参阅 mkisofs 联机帮助页以获取更多信息。

在一台运行速度极快且内存很大的机器上,您可以在刻录期间从容地处理非 CPU 密集型任务,但是在烧录盘期间最好别做别的事情。激光器不能先停下来,然后从停下来的地方重新开始,所以任何中断都是致命的。

cdrecord 将试图以最快速度运行刻录机,因此不必指定速度,但是,应该根据经验来判断怎么样做。指定较慢的速度对于纠正错误和缓冲区欠载运行很有用。采用“burn- proof”技术的新型驱动器(开发这项技术的初衷与它现在的名字正好相反;同样,谁取的这些名称呢?)不会有老式驱动器那样的缓冲区欠载运行烦恼。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:使用指南:好用的播放器mpd   下一篇:使用ImageMagick 的提示与技巧

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号