问题:我须要在Linux机器上使用DVD刻录机刻录一个镜像文件(.iso或.nrg)到DVD,有没有一个既快捷又简易的方式,最好是使用命令行工具?
最常见的两种镜像文件格式是ISO(.iso为文件扩充名)和NRG(.nrg为文件扩充名)。ISO格式是一个由ISO(国际标准组织)成立的全球标准,因而被大多数操作系统所支持,它提供了很高的便携性。另一方面linux系统只能刻录,NRG格式是由NeroAG开发的私有格式,NeroAG是一个很流行的c盘镜像和刻录软件公司。
下边来解答如何从Linux命令行刻录.iso或.nrg镜像到DVD。
刻录.ISO镜像文件到DVD
要刻录.iso镜像文件到DVD,我们将使用growisofs这个工具:
#growisofs-dvd-compat-speed=4-Z/dev/dvd1=WindowsXPProfessionalSP3Original.iso
在前面的命令行中,“-dvd-compat”选项提供了与DVD-ROM/-Video的最大介质兼容性。在一次写入式DVD+R或DVD-R上下文中,造成不可添加记录(关掉c盘)。
“-Z/dev/dvd1=filename.iso”选项表示我们刻录.iso文件到设备选单(/dev/dvd1)中选择的介质中。
“-speed=N”参数指定了DVD刻录机的刻录速率,这与驱动自身的能力直接相关。“-speed=8”将以8x刻录,“-speed=16”将以16x刻录,以这种推。没有该参数,growisofs将默认以最低速刻录,在这儿是4x。你可以按照你刻录机的可用速率和c盘类型选择合适的刻录速率。
你可以按照此教程找出你的DVD刻录机的设备名称和它所支持的写入速率。
刻录进程完成后linux系统只能刻录linux环境配置,c盘会手动弹出。
把NRG镜像转换为ISO格式
因为ISO被广为采用,刻录.iso镜像到CD/DVD就十分简单。并且,要刻录一个.nrg镜像则首先须要将它转换为.iso格式。
把一个.nrg镜像文件转换到.iso格式,你可以使用nrg2iso这个工具。它是一个开源程序,拿来将NeroBurningRom创建的镜像转换到标准的.iso(ISO9660)文件。
在Debian及其衍生版上安装nrg2iso:
#aptitudeinstallnrg2iso
在基于RedHat的发行版上安装nrg2iso:
#yuminstallnrg2iso
在CentOS/RHEL上,你须要先启用Repoforge库房,再通过yum安装。
安装完nrg2iso包后,使用以下命令来将.nrg镜像转换到.iso格式:
#nrg2isofilename.nrgfilename.iso
转换完成后,在当前目录中会出现一个.iso文件:
检测已刻录介质的完整性
关于这一点,你可以通过将刻录的DVD的校准和与原始.iso文件的md5校准和进行对比,以检测所刻录介质的完整性。假如三者相同,你就可以放心了,由于刻录成功了。
但是linux是什么系统,当你使用nrg2iso来将.nrg镜像转换为.iso格式后,你须要明白一点,nrg2iso创建的.iso文件的大小不是2048的倍数(一般,.iso文件的大小是它的倍数)。因而,常规的校准和对比,该.iso文件和刻录介质的内容不一样。
另一方面,假如你已然刻录了一个不是由.nrg文件转换而至的.iso镜像,你可以使用以下命令来检测记录到DVD中的数据的完整性。替换“/dev/dvd1”为你的设备名。
#md5sumfilename.iso;ddif=/dev/dvd1bs=2048count=$(($(stat-c%sfilename.iso)/2048))|md5sum
命令的第一部份估算.iso文件的md5校准和,而第二部份则读取/dev/dvd1中的c盘内容,之后通过管线输出给md5sum工具。“bs=2048”表示dd命令将使用2048字节块为单位检测,由于原始iso文件以2048为单位界定。