当前位置:Linux教程 - Linux - Linux下面光盘刻录

Linux下面光盘刻录

在linux下刻盘分四部曲:

1.编译内核(依系统情况可以略过).
2.加载相应驱动模块.
3.制作iso9660文件系统的映象文件
4.刻盘

缺省情况下,你的linux内核或许不支持SCSI设备,而现在的刻录机却许多接在一个scsi卡上的.因此,在这种情况下,需要从新编译内核,让它支持SCSI设备,并且要根据SCSI卡所采用的芯片,将其编译到内核或编译成模块.此外,为方便测试将要刻录的映象文件,还应该编译时在块设备里面选择支持""LOOPBACK DEVICE SUPPORT"".最后,还要选择""SCSI generic support"",将其编译成模块,这专门是为支持这种连接在一块SCSI卡上的刻录机刻录时用的.

然后,重新启动系统,启动过程中会检测SCSI设备,因为检测的特别快,可能看不清. 没有关系,登录后用""dmesg""命令来看系统查到了什么东西,比如屏幕上打印了这么一块信息:

sym53c8xx: at PCI bus 0, device 9, function 0
sym53c8xx: setting PCI_COMMAND_PARITY...(fix-up)

sym53c8xx: 53c810a detected
sym53c810a-0: rev=0x23, base=0xe6000000, io_port=0xe400, irq=11
sym53c810a-0: ID 7, Fast-10, Parity Checking
sym53c810a-0: restart (scsi reset).
scsi0 : sym53c8xx - version 1.3c
scsi : 1 host.
Vendor: MATSHITA Model: CD-R CW-7502 Rev: 4.17
Type: CD-ROM ANSI SCSI revision: 02

当然了,这是在我的系统启动时打印的信息,如果你没有看到类似的信息,说明你没有把SCSI卡所用芯片编译到内核或在系统启动时没有把自动加载相应的驱动模块(通过配制/etc/conf.modules在启动时加载相应模块).这时候,你可以手工加载模块.当模块加载到系统中后,就应该出现以上类似的信息了.在我用的SCSI卡上采用的芯片BIOS是""SYMBIOS 53C810AE"",因此在编译内核时选择了""SYM53C8XX SCSI SUPPORT"",并把它编译成模块.下面简单介绍一下以上信息:

首先它显示在PCI插槽上发现了SCSI卡,紧接着,发现了SCSI卡上连接的设备,它的ID号是7,在scsi0上.

当找到设备后,剩下的事情就简单了,现在需要找的就是一些制作ISO映象程序刻录时用的软件.我用的软件是cdrecord,软件很不错,本身可以在SCSI卡上检测所连接设备,也支持multi-session刻录(允许你一次刻不完下次再刻).制作ISO映象文件用的是mkisofs这个程序,一般的linux都带这个包,在redhat中包的名字和文件的名字一样.

假如我有一个整理好待刻的目录,里面有一堆很好的收藏.我首先把用下面的命令作成一个ISO格式的映象文件(这并不是刻录,只是在硬盘上按1:1的比例将要刻的东西作并不是刻录,只是在硬盘上按1:1的比例将要刻的东西作成一个映象):

mkisofs -r -o cd_image my_private/

""-r""指明将所有的文件属性变成对所有人是可读属性的,""-o""是输出, my_private是要刻东西所在的目录.

作完映象文件后,可以检测它是否正确,此时要加载曾经编译的loop模块,将此映象文件作为一个文件系统""mount""上来.

mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /mnt/cdrom

进入/mnt/cdrom就可以查看文件是否正确.主意的是,用mkisofs可以制作带光盘启动的映象,这要通过""-b""参数,""-b""后面紧接着的是可以启动的内核文件,它的大小是有限制的,必须是1.2或1.44或2.88MB,它的路径也是相对于my_private目录而言的.

最后一步,""天下无盘"",你可别刻费了吆.:-) 现在就开始真正动手了.用下载来的刻录软件进行刻录.

这里只对cdrecord进行简略介绍,还有一些图形界面的刻录工具,各位就自己找吧.关于cdrecord可以在 http://hkt.linuxberg.com这个网站找到.用

cdrecord -scanbus

可以显示出下列类似信息:

Cdrecord release 1.6.1 Copyright (C) 1995-1998 J鲵g Schilling
scsibus0:
0) *
1) *
2) *
3) *
3) *
4) *
5) *
6) ''MATSHITA'' ''CD-R CW-7502 '' ''4.17'' Removable CD-ROM

ID号为7的一个刻录机找到,下面开始了.

cdrecord -v speed=2 dev=6,0 cd_image

""speed=2""指明刻盘速度为2倍速, ""dev=6,0""指明关于刻录设备的一些信息,完整的形式是""dev=devicename:scsibus,target,lun"",我们这里只有一个接在SCSI卡上的设备, 因此只些了简略形式""dev=target,lun"",其中devicename是CD-R所对应的设备名,SCSIBUS是SCSI总线号,TARGET就是刚才检测出来的第六项,LUN指的是SCSI设备的逻辑单元号,一般的SCSI设备只支持一个LUN.