Mac OS X:从CD或DVD制作ISO的最佳方法


218

命令行和面向屏幕的指针都表示赞赏!

更新:

我验证了磁盘实用程序,hdiutil和dd方法。dd似乎是最快的,在我的macbook pro上是30分钟,而hdiutil是40分钟。我能够简化dd以仅使用if=of=

对于DVD,我使用了/ dev / disk2。我使用对此进行了验证,diskutil list然后先将其卸载。

$ sudo umount /dev/disk2
$ dd if=/dev/disk2 of=mydisk.iso

是的dd是最快的,毕竟是磁盘德鲁伊!:)
msanford 2010年

为什么要卸载disk2?我以为您需要卸下DVD驱动器,以便可以从中读取数据?
Pure.Krome

3
@ Pure.Krome,为此,/ dev / disk2是几个GB长度的文件。目录结构嵌入在这些字节中。IIRC,我必须卸载才能读取/ dev / disk2。
马克·哈里森

1
我不得不使用sudo diskutil unmount /dev/disk2sudo umount /dev/disk2
nikans

就我而言,我必须执行以下操作(OSX 10.9.5):sudo umount / dev / disk3s0; sudo dd if = / dev / disk3s0 of = mydisk.iso
Oisin

Answers:


198

通常,有四种方法可以在OS X盒子上创建磁盘映像:

  1. 磁盘实用程序 -屏幕上的提示将指导您,但默认情况下它将创建.dmg,这是OS X特定的文件格式。如果在创建映像之前选择“ CD / DVD Master”选项,则磁盘工具也会创建一个ISO(扩展名.cdr)。如果需要,您可以在创建后将扩展名重命名为.iso。

  2. Roxio的吐司 -的事实在过去十年,它会创建几乎任何你想要的CD或DVD格式建立在Mac OS光学介质的第三方标准。

  3. hdiutil命令行实用程序,这将在事实上,创建吐司支持,免费为每一个格式,但它远不如漂亮。如果要使用此工具创建ISO,请使用hdiutil makehybrid -iso -joliet -o Image.iso /input_path

  4. ddsysadmin可能知道第四种非常直接的命令行方式:dd if=/dev/disk1 of=Image.iso


4
对于音频CD,hdiutil可以使用。磁盘实用程序和dd不起作用(.iso文件可以创建,但以后不能挂载)。
Ngoc Dao

使用dd,我得到的ISO文件比使用Disk Utility翻录的ISO稍大(约500kb)...然后我在PC上再次尝试,并得到了与该文件相同的大小dd...所以我想dd做得更好
撕碎

1
dd是直接副本,其中hdiutil可能使用iso格式压缩了一点……我不认为实际上会丢失任何东西……
gabeio 2016年

我对磁盘错误感兴趣。dd与conv = noerror,同步有帮助。我没有尝试让其他人查看他们是否报告磁盘错误,是否在第一个错误时退出或发生了什么。hdiutil的手册页中谈到了一些错误,但未提及感兴趣的错误EIO。
pedz

78

打开/Application/Utilities/Terminal.app/

sudo diskutil unmount /dev/disk1
dd if=/dev/disk1 of=~/myCD.iso bs=2048 conv=sync,notrunc

那应该做!


1
击败我的方法;)这是最优雅,开销最低的解决方案。请在下面查看我的其他人。
msanford,2009年

1
现在,我想一想,我在下面用hdutil引用的解决方案要简单一些,因为您可以使用文字路径而不必知道设备的/ dev分配,如果您只想在一个文件夹中重用它,这将非常有用。 ,或外部硬盘驱动器,或多个光学设备。
msanford,2009年

4
为什么有conv=sync,notrunc必要?
kizzx2 2011年

4
顺便说一句,在cat /dev/disk2 > ~/dvd.iso这里工作吗?
boehj 2011年

5
为了使该解决方案起作用,您需要知道设备的名称,您可以通过在终端中键入“ df”并在列表中查找CD / DVD来找到该名称。然后选择显示在最左侧的设备名称。然后使用“ sudo umount / dev / YOUR_DEVICE_NAME”卸载设备,然后使用上面详述的dd复制方法进行复制。
布莱德·帕克斯

24

实际上,磁盘实用程序将创建一个ISO(扩展名为.cdr)。只需确保在创建映像之前选择“ CD / DVD Master”选项即可。

然后,该文件可以像其他任何ISO文件一样使用,仅需要重命名以.cdr扩展名命名的某些愚蠢Windows应用程序即可。

使用这种方法的年龄没有问题。


1
我创建了一个.cdr,它已自动安装到Mac OS。我从可启动USB闪存驱动器复制了所有文件。下车。尝试安装到Virtual Box:Could not get the storage format of the medium '/Users/nakilon/_/mrddr_flash_diskutil_dvdmaster.iso' (VERR_NOT_SUPPORTED).
Nakilon 2014年

我遇到了同样的错误-想知道它是否可以在Windows(而不是虚拟Windows)中运行。此外,它在虚拟盒子上是Windows 10。
nycynik

16

如其他答案所述,您可以使用“磁盘工具”或dd创建原始光盘的ISO映像。但是,如果光盘受到复制保护,它将在光盘的导入区域中包含解密密钥,这些解密密钥无法直接读取,也不属于ISO映像的一部分。因此,如果使用此映像刻录新光盘,它将无法在标准DVD播放器上播放。但是,您可以使用不需要密钥的VLC之类的程序来播放它,因为它可以绕过加密。

如果您想要一个程序将光盘复制到硬盘上并删除复制保护,以便可以将其刻录到新的不受保护的光盘上,MacTheRipper会这样做,但是好像它已经有一段时间没有更新了。(仅列出PowerPC版本。)

对于存储在硬盘上,您可能会发现使用Handbrake将内容转码为未加密的H.264更为有用。与存储DVD视频光盘上使用的MPEG-2内容相比,这将节省大量磁盘空间。但是,它不会保留DVD菜单,如果要刻录可在标准DVD播放器上播放的DVD,则必须将其转换回MPEG-2。


11

看完dd命令行工具后...

我发现您还可以使用磁盘实用程序创建磁盘映像。

只需创建一个新映像,然后选择“ DVD / CD Master”。-Apple添加了扩展名.cdr,但您可以重命名该文件以.iso结尾,它将作为标准ISO使用。

有人知道这对磁盘上的任何drm保​​护有什么影响吗?


假设Disk Utility仅使用dd,没有什么不同-iso是磁盘的一点复制。
Rich Bradshaw

Rich是正确的,iso是DVD的相同副本。
亚历克斯

2
如果受复制保护,则不行。有关详细信息,请参见我的答案。
mark4o

10

您可以使用dd命令行工具。但是请确保先卸载驱动器。

dd if=/dev/dvd of=dvd.iso

这将逐位复制DVD。

注意:/dev/dvd用OS X的“磁盘工具”中显示的设备名称替换,例如,如果“磁盘工具”的BSD设备节点显示“ disk2”,则使用/dev/disk2


4
不是/ dev / dvd!转到“磁盘工具”,找到所需的磁盘,然后打开信息对话框,其中显示正确的/ dev / *
Isaac Waller 2009年

1
它是一个例子,您显然会用DVD驱动器替换它,例如/dev/hdb1/dev/scd0
约翰T

1
最有可能的/dev/disk1还是disk2在Mac OS X
mark4o

mark4o可能是正确的。如果您不知道,我是UNIX专家,Mac与UNIX共享大多数命令行工具,这有助于我回答更多Mac问题。
约翰T

6

别忘了asr,Apple Software Restore命令行实用程序:它可以像像一样的原始复制程序运行dd,但它有更多麻烦。尤其重要的是,它将直接与卷路径名一起使用,因为dd不会。


4

我本人通常是命令行用户,内置的Disk Utility也可以很好地工作,但是最近我偶然发现了另一个名为Burn的好又免费的替代方法。其众多功能之一是能够制作光盘映像:

  1. 下载Burn,然后解压缩并打开
  2. 将光盘放入
  3. 打开复制标签
  4. 点击扫描...
  5. 选择光盘,然后单击选择
  6. 单击保存...,选择名称和位置,然后单击保存。

哇。我已经烧伤了,但是我不知道它能做到!效果很好。+1
Cullub 2014年

+1刻录。比系统工具更简单
Rich Homolka 2015年

4

我发现它dd会产生与PC上某些工具相同的ISO映像,因此我一直在使用dd,下面是命令的快速列表:

  1. diskutil list
  2. diskutil unmount /dev/disk1
  3. dd if=/dev/disk1 of=DiscImage01.iso
  4. diskutil eject /dev/disk1

细节:

  1. 在Spotlight中,输入,Terminal您将看到UNIX控制台的应用程序。(或转到Finder并使用应用程序->实用程序->终端)。
  2. diskutil list看光驱是哪个驱动器。它可能是/dev/disk1/dev/disk2,取决于您是否还有其他驱动器,例如USB闪存驱动器或SD卡。该命令将显示名称以及光盘的大小,通常应为4GB至8.5GB。
  3. 使用diskutil unmount /dev/disk1来卸载驱动器,该命令不需要sudo,因此不需要管理员密码。
  4. dd if=/dev/disk1 of=DiscImage01.iso是在当前目录(如果您只是在不执行任何cd命令的情况下启动Terminal应用程序的情况下,则是主目录)中创建ISO映像。一段时间后,您将看到光盘驱动器的指示灯闪烁(如果该驱动器指示灯亮)。
  5. diskutil eject /dev/disk1 是为某些光盘驱动器弹出光盘,该光盘驱动器不允许您手动弹出光盘,但需要OS X弹出光盘。

此外,由于dd可以覆盖任何现有文件,因此您可能需要这样做,chmod 444 *.iso以使所有.iso文件仅可读但不可写,并且如果一个月后您发出dd可能覆盖现有文件的命令,则实际上它会返回“权限被拒绝”错误,这样您就不会覆盖该现有文件。


很好的答案。我试图卸载包含多个分区的ISO(它包含Windows分区和Mac分区)。在这种情况下,请diskutil通知我使用diskutil unmountDisk /dev/disk#。对于上面的第2行,这可能是一个更通用的建议。
xmnboy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.