linux下刻录简介
在windows下的刻录,可能大家都很熟悉了,Nero,VideoPack,WinOnCD等等软件,是windows下刻录的重要工具,但是如何在Linux下进行刻录呢?xwindow下大家都习惯使用xroast。这里介绍一下如何使用字符界面进行刻录。
总的说来,刻录大致需要三个步骤,驱动光驱(刻录机),制作ISO文件,刻录CD。
1 驱动刻录机
这里,我们不考虑刻录机的品牌,仅仅从刻录机的接口进行分类,大致可以把刻录机分为三种,SCSI接口的刻录机,IDE接口的刻录机,包括cdrw,combo(DVD/CDRW)等。USB接口的刻录机,包括Usb-cdrw,Usb-combo等。
由于历史原因,SCSI接口的刻录机是事实上标准,其他接口的刻录机,都是虚拟成为SCSI接口的刻录机以后使用的。ide接口的刻录机使用ide-
scsi模块进行IDE-SCSI总线的模拟,而usb接口的刻录机使用usb-storage模块实现USB-SCSI总线的模拟。
a)如果你使用SCSI刻录机,作为标准设备,SCSI的刻录机是不需要特殊的驱动程序的,你需要做的就是驱动你的SCSI卡就可以了。市面的SCSI卡
的种类非常多,因此驱动程序也各不相同,Linux支持大多数的SCSI卡,你可以选择合适的SCSI卡驱动模块加载到内核中,完成对SCSI卡的驱动。
b)ide接口的刻录机相对而言稍为复杂一点,需要加装ide-scsi模块。如果在系统启动的过程中,系统没有把刻录机识别出来,而是把刻录机识别为cdrom,需要先卸载ide-cd模块。然后再加载ide-scsi模块。运行下面两条命令,完成对于刻录机的驱动。
LocalHost# rmmod ide-cd
LocalHost# modprobe ide-scsi
c)如果刻录机为PCMCIA-IDE的刻录机,需要先驱动pcmica接口。使用pcmica-cs模块可以驱动。
LocalHost# modprobe yenta_socket pcmcia_core ds
然后,按照(b)中的步骤对刻录机进行驱动。
d)usb接口的刻录机驱动是最复杂的。通常分为3步:
i 如果你的刻录机使用pcmcia-usb卡,需要先驱动pcmcia卡,需要加载:yenta_socket, pcmcia_core,ds等模块
LocalHost# modprobe yenta_socket pcmcia_core ds
ii 装载usb驱动模块,如果是usb1.1接口。需要加载usb-uhci模块。如果是usb2.0接口,需要加载ehci-hcd模块。
LocalHost# modprobe usb-uhci ehci-hcd
iii 加载usb-storage模块。
LocalHost# modprobe usb-storage
到此为止,你已经完成了对于刻录机的驱动。你可以使用命令来检测你的刻录机是否已经正常驱动:
LocalHost# cdrecord -scanbus
如果驱动成功,会出现类似如下的显示:
Linux sg driver version: 3.1.25
Using libscg version ‘schily-0.8’.
scsibus0:
0,0,0 0) ‘MATSHITA’ ‘UJDA720 DVD/CDRW’ ‘1.03’ Removable CD-ROM
0,1,0 1) *
0,2,0 2) *
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
scsibus1:
1,0,0 100) ‘MATSHITA’ ‘UJDA750 DVD/CDRW’ ‘1.50’ Removable CD-ROM
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) *
1,6,0 106) *
1,7,0 107) *
注意,这个系统中安装了两个DVD/CDRW刻录机,因此显示出来两个。
2 制作ISO文件
mkisofs是Linux下制作ISO的工具。早期的时候,制作iso和刻录cdrom分为两个步骤是因为系统的速度不够,现在这种系统一直延续下来了。
mkisofs的功能非常强大,不但可以制作标准的ISO9660格式的光盘镜像,还能够制作HFS(MAC文件系统格式),Sparc(Sun文件系统格式)等格式的光盘镜像,启动光盘当然更不在话下。
常用命令:
LocalHost# mkisofs ?o new.iso pathname
LocalHost# mkisofs ?b bootfilename ?c boot.catalog ?o new.iso pathname
mkisofs命令的功能非常强大,参数也非常复杂,如果有人愿意深究,可以看看mkisofs的手册页。
LocalHost# man mkisofs
3 刻录光盘
刻录光盘通常使用cdrecord,cdrecord的参数也比较多,而且现在cdrecord也支持DVD刻录。
通常使用的参数:
Speed=n #以n倍速度刻录。
dev=x,x,x #指定刻录设备
blank=fast,full #指定使用快速,全部的方式擦除cdrw光盘。
-v #显示刻录的详细信息
-eject #刻录完成以后,弹出光盘。
-scanbus #扫描SCSIbus,查看各个设备。
刻录命令例子:
LocalHost# cdrecord ?v ?eject dev=0,0,0 speed=8 blank=fast #8速擦除设备0,0,0光驱中的cdrw。
LocalHost# cdrecord ?v ?eject dev=0,0,0 speed=8 new.iso #8速刻录new.iso镜像到设备为0,0,0的光驱中的光盘。
一下内容来自qiyu的BLOG
在2.6的kernel下,不在需要使用scsi模拟来使用刻录机了
但是相应的命令参数也有一点点变化,对于普通的ide接口的刻录机
扫描刻录机
kernel 2.4:
cdrecord -scanbus
kernel 2.6:
cdrecord -scanbus dev=ATAPI
基本命令参数如下:
刻录 cdrecord -v dev=刻录机设备 speed=刻录速度 -eject -fs=4m -data 光盘映象ISO
擦除 cdrecord -v dev=刻录机设备 speed=擦除速度 blank=$(options)
$(options)可以是all fast …..
其中,那些参数的含义:
-v : 显示烧录过程
-eject : 烧录结束自动退片
speed= : 指定烧录速度
dev= : 指定烧录设备
-data : 指定烧录档案
-fs:设定绶冲的大小
另外可以结合mkisofs刻录硬盘上的文件
mkisofs -R /directory | cdrecord fs=6m dev=ATAPI:0,0,0
以下是mkisofs的一个小脚本,其中的一些参数都是比较常用的
#!/bin/sh TARG_ISO=my.iso INPUT_DIR=~/burncd/ LABEL=mycd mkisofs -o $TARG_ISO -J -jcharset cp936 -joliet-long -max-iso9660-filenames -allow-multidot -input-charset cp936 -output-charset cp936 -V $LABEL $INPUT_DIR |
其中-J是使用joliet文件系统,如果希望能在windows下看到这张盘上的中文文件名的话,这个参数必选;
而-jcharset -input-charset cp936 -output-charset cp936这几个参数对于制作有中文文件
名的光盘也是必须的;
-max-iso9660-filenames允许长文件名;
-allow-multidot,就可以使用包含多个"."的文件、目录名
例如:MATHWORKS.MATLAB.V7.0.4.R14.SP2.LINUX-HOTiSO