in Uncategorized

linux下刻录简介

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

Write a Comment

Comment