红联Linux门户
Linux帮助

在Linux命令行中刻录ISO或NRG镜像到DVD

发布时间:2014-11-01 10:57:34来源:linux.cn作者:Linux中国

问题:我需要在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。你可以根据你刻录机的可用速度和磁盘类型选择合适的刻录速度。

刻录进程完成后,磁盘会自动弹出。


把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校验和的值相同,这就意味着刻录的介质是有效的。


How to set up RPMforge (now called Repoforge) repository on CentOS

Repoforge, previously known as RPMforge, maintains a repository of RPM packages for Red Hat Enterprise Linux (RHEL), CentOS and Scientific Linux. If you are a RHEL or CentOS user, I strongly suggest you set up Repoforge repository on your system, as it contains many useful software packages that are not available in existing stock repositories.

In order to set up Repoforge repository on CentOS, you first need to know the version of your CentOS as well as the underlying process architecture.

To find out which release version of CentOS you are using:

$ cat /etc/RedHat-release
CentOS release 6.3 (Final)

To check whether your CentOS is 32-bit (i.e., i686) or 64-bit (i.e., x86_64) based:

$ uname -a
Linux centos.domain 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Now that you know enough about your CentOS system, let's go ahead and install RPMforge on CentOS.

For 32-bit CentOS 6.*:

$ sudo rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm

For 64-bit CentOS 6.*:

$ sudo rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

For 32-bit CentOS 5.*:

$ sudo rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.i386.rpm

For 64-bit CentOS 5.*:

$ sudo rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm

Once RPMforge is installed on your system, you can use yum to install all available packages from the Repoforge repo.