如何在Linux命令行中刻录ISO或NRG镜像到DVD
问题:我需要在linux机器上使用dvd刻录机刻录一个镜像文件(.iso或.nrg)到dvd,有没有一个既快捷又简易的方法,最好是使用命令行工具?
最常见的两种镜像文件格式是iso(.iso为文件扩展名)和nrg(.nrg为文件扩展名)。iso格式是一个由iso(国际标准组织)创立的全球标准,因此被大多数操作系统所支持,它提供了很高的便携性。另一方面,nrg格式是由nero ag开发的私有格式,nero ag是一个很流行的磁盘镜像和刻录软件公司。
下面来解答怎样从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 上下文中,导致不可添加记录(关闭磁盘)。
“-z /dev/dvd1=filename.iso”选项表示我们刻录.iso文件到设备选单(/dev/dvd1)中选择的介质中。
“-speed=n”参数指定了dvd刻录机的刻录速度,这与驱动自身的能力直接相关。“-speed=8”将以8x刻录,“-speed=16”将以16x刻录,以此类推。没有该参数,growisofs将默认以最低速刻录,在这里是4x。你可以根据你刻录机的可用速度和磁盘类型选择合适的刻录速度。
你可以根据此教程找出你的dvd刻录机的设备名称和它所支持的写入速度。
刻录进程完成后,磁盘会自动弹出。
把nrg镜像转换为iso格式
由于iso被广为采用,刻录.iso镜像到cd/dvd就非常简单。但是,要刻录一个.nrg镜像则首先需要将它转换为.iso格式。
把一个.nrg镜像文件转换到.iso格式,你可以使用nrg2iso这个工具。它是一个开源程序,用来将nero burning rom创建的镜像转换到标准的.iso(iso9660)文件。
在debian及其衍生版上安装nrg2iso:
# aptitude install nrg2iso
在基于red hat的发行版上安装nrg2iso:
# yum install nrg2iso
在centos/rhel上,你需要先启用repoforge仓库,再通过yum安装。
安装完nrg2iso包后,使用以下命令来将.nrg镜像转换到.iso格式:
# nrg2iso filename.nrg filename.iso
转换完成后,在当前目录中会出现一个.iso文件:
检查已刻录介质的完整性
关于这一点,你可以通过将刻录的dvd的校验和与原始.iso文件的md5校验和进行对比,以检查所刻录介质的完整性。如果两者相同,你就可以放心了,因为刻录成功了。
然而,当你使用nrg2iso来将.nrg镜像转换为.iso格式后,你需要明白一点,nrg2iso创建的.iso文件的大小不是2048的倍数(通常,.iso文件的大小是它的倍数)。因此,常规的校验和对比,该.iso文件和刻录介质的内容不一样。
另一方面,如果你已经刻录了一个不是由.nrg文件转换而来的.iso镜像,你可以使用以下命令来检查记录到dvd中的数据的完整性。替换“/dev/dvd1”为你的设备名。
# md5sum filename.iso; dd if=/dev/dvd1 bs=2048 count=$(($(stat -c "%s" filename.iso) / 2048)) | md5sum
命令的第一部分计算.iso文件的md5校验和,而第二部分则读取/dev/dvd1中的磁盘内容,然后通过管道输出给md5sum工具。“bs=2048”表示dd命令将使用2048字节块为单位检查,因为原始iso文件以2048为单位划分。
如果两个md5校验和的值相同,这就意味着刻录的介质是有效的。谢谢阅读,希望能帮到大家,请继续关注,我们会努力分享更多优秀的文章。