linux下刻录光盘读取不了_如何在Linux下刻录数据光盘

本文介绍了如何在Linux环境下配置和使用cdrecord工具进行光盘刻录。通过修改lilo.conf,加载sg和ide-scsi模块,创建ISO文件,然后使用cdrecord命令进行刻录。文章详细阐述了每个步骤和相关命令的解释。
摘要由CSDN通过智能技术生成

caoshun(原作)

本着让Linux精神发扬光大宗旨,我将部门原来的Windows2000服务器上所有的数据与提供的服务全部迁移到新建的Linux服务器上。在我即将要把这台老Windows2000服务器扔到一个阴暗的小角落的时候,眼前一亮,忽然发现这台破机器上还有一个Sony光盘刻录机。我一向有取它人所弃,变废为宝的习惯,所以自然不能放过这个好东东。

如何在Linux下使用刻录机呢?我搜遍网上资料库,也没有能找到一个比较有效及全面的教材。无奈之下,只能闭关一个人瞎琢磨一番,当我抽完第7根香烟的时候,一个为success的字符串终于出现屏幕上。我惊喜不已,大声尖叫一下,吓得身边正在美食的老兄,手指一抖,一块好大的肥肉落在地上。此兄心痛不已,对我龇牙咧嘴下止,并向上天发誓:三日内必取我的项上人头,决不失言,否则……。此及后话,我就不再多言,进入我们的主题吧。

硬件环境:

cpu:    Inter Pentium2 400

mem:    384MB

cdrom:   ASUS

cdr:    SONY

软件环境:

os:     Redhat 7.0

kernel:   2.2.16

在Linux下实现光盘刻录的软件最著名的工具是cdrecord。实际上它是一个工具包,其中包括cdreocrd, mkisofs, cdda2wav。dda2wav是针对于刻录Audio CD的,不在这篇文章的说明范围之内。我们重点是说明cdrecord,mkisofs的用法,以用如何配置SCSI与IDE设备。许多图形界面的光盘刻录软件其实在底层调用的就是cdrecord,这些软件我们可以在www.linuxbyte.net中找到,并且下载使用它们。在Linux系统中,cdrecord是与SCSI通用设备一起工作的,我想大部份读者用的都是IDE光盘刻录机,所以配置的关键就是将IDE设备摸拟成SCSI设备。要想将IDE设备摸拟成SCSI设备,系统内核就必须支持ATAPI-SCSI emulation或SCSI host adapter emulation,如果你的系统内核现在还不是这样配置的,那么你就需要重新编译内核并且升级它。幸好,我手中上使用的这个Linux版本就已经默认支持了。

第一步,我们应该知道我们的光驱与刻录机对应是IDE哪一个通道,在Linux下是使用哪一个设备名。因为我们要在系统引导时让系统内核知道哪些设备需要模拟成SCSI设备,我们就得传递一些参数给系统内核,具体做法如下:

编辑lilo.conf文件,给Linux引导模块增加一行参数。

append = "hdb=ide-scsi hdd=ide-scsi"

执行lilo命令,进行回写操作。

hdx是指光驱或刻录机在Linux下对应的IDE设备名。如果你打算进行光盘数据直接刻录时就需要如上的两个字段,因为cdrecord在读写数据时要求两个设备都为SCSI接口的。但是如果你只是通过先生成ISO中间文件,然后再刻录这种形式的话,就只要指定其中一个字段就行了。如下:

append = "hdd=ide-scsi"

第二步,当重新引导系统完毕后,我们现在需要做得是将sg与ide-scsi这两个内核驱动模块加载到系统内核里去,并为它们设定SCSI设备名。sg是指SCSI设备驱动模块,ide-scsi是指IDE设备摸拟SCSI设备驱动模块。操作如下:

modprobe sg

modprobe ide-scsi

执行这两个操作后,我们执行lsmod命令,查询系统内核已加载模块信息,对我们操作的结果进行验证,显示信息如下:

Module Size Used by

ide-scsi 7336 0 (autoclean)

sg 15704 0 (unused)

vfat 9404 0 (autoclean) (unused)

fat 30688 0 (autoclean) [vfat]

soundcore 2596 0 (autoclean) (unused)

autofs 9124 1 (autoclean)

lockd 31176 1 (autoclean)

sunrpc 52964 1 (autoclean) [lockd]

3c59x 19844 1 (autoclean)

agpgart 18600 0 (unused)

usb-uhci 19052 0 (unused)

usbcore 42088 1 [usb-uhci]

执行上面的操作后,我们就可以察看内核数据映像文件,得到设备更详细的资料,最重要的是IDE模拟设备对应SCSI设备的id号。

cat /proc/scsi/scsi

-------------------------------------------------------------------

Attached devices:

Host: scsi0 Channel: 00 Id: 00 Lun: 00

Vendor: ASUS Model: CD-S400/A Rev: 2.0S

Type: CD-ROM ANSI SCSI revision: 02

Host: scsi0 Channel: 00 Id: 01 Lun: 00

Vendor: SONY Model: CD-RW CRX100E Rev: 1.0m

Type: CD-ROM ANSI SCSI revision: 02

当然,你的显示内容可能有所不同,但形式应是一样的。

系统即然已经认出来了我们模拟的SCSI设备,但是我们还是要提供SCSI设备名映射它们,以便能让刻录软件能够使用。现好内核系统在加载sg时,就自动将/dev/sg0,/dev/sg1与我们的设备建立的对应关系。

现在你可以使用scsi_info这个命令察看得到SCSI设备信息。

scsi_info /dev/sg0

---------------------------------------------------------------

SCSI_ID="0,0,0"

MODEL="ASUS CD-S400/A"

FW_REV="2.0S"

scsi_info /dev/hdd

---------------------------------------------------------------

SCSI_ID="0,1,0"

MODEL="SONY CD-RW CRX100E"

FW_REV="1.0m"

这时我们已经正确地加载了这些设备。

第三步,如果你是使用图形界面的操作软件,以下的内容你就不必再继续往下看了,你只要按照软件的提示,填入一些相应的参数,就可以执行操作了。我们在这里重点讲得是如何在命令行模式下进行操作。不管是你是想选择文件进行刻录,还是直接进行光盘数据刻录,我们都需要生成一个中间ISO文件。生成ISO文件的任务就接给mkisofs这个命令来完成了,请输入如下命令:

mkisofs -r -o temp/aaa.iso data/

具体参数解释如下:

-r 支持长文件名

-o 指定输出目标文件

目标目录最后在新生成光盘中做为根目录存在,里面存放的是你需要刻录的数据。这个目标目录最好是新建的,千万不用选择/tmp或用户主目录,因为这些目录内会有一些临时文件或隐含文件存在。我刚开始不知道,最后才发现新刻录的光盘里根目录下有一些莫名其妙的文件。如果你是从光盘直接生成ISO文件,就需要用到dd这个命令了。请键入如下命令:

dd if=/dev/cdrom of=temp/aaa.iso

具体参数解释如下:

if 接定数据源设备

of 接定目录文件

生成的ISO文件,随时通过以下的命令进行验证,查看结果是否是我们所想要的。

mount aaa.iso -r -o loop /mnt/test

可写光盘的容量都是有限的,所以我们必须提前知道我们生成ISO文件的大小,否则会在刻盘时发生错误,到时候后悔也来不及了。直接察看ISO文件大小是可以的,但是我们要生成以后才知道,在这里我来告诉大家一个小技巧,如何察看一个目录,以及这个目录下所有的子目录中的文件大小的总和:

du -m

最后一行数据就行了,数据单位是MB。

第四步,就也是最后一步了,我们只需要用cdrecord命令进行光盘刻录就行了。请键入如下命令:

cdrecord -v speed =2 dev=0.1.0 test/aaa.iso

具体参数解释如下:

-v 进行数据校验

speed 指定刻录机写盘的速度

dev 指定刻录机的SCSI设备的ID号。

-dummy 虚拟操作。

好了,你终于可能享受Linux操作系统强大的威力了,虽然比起Windows下操作要繁杂多了,但是在Linux给我们所带来的那股激情是其它系统所无法比拟的。我会继续把自已作为试验品去接确一些新东东,有了好结果,我会拿出来与大家一些分享的,再见。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值