我开始在家备份我的电影 DVD。我使用 DD 制作 DVD 的 ISO 映像,如下所示:
dd if=/dev/dvd of=~/dvd/abc.iso
然而,即使 DVD 的内容只有 5.4GB(我用 来检查du -sh
),生成的映像仍然是 7GB,所以看起来好像它正在制作整个光盘的 ISO 映像,甚至是未使用的光盘部分。
有没有一种方法可以使用 dd 来制作 DVD 的 ISO 备份,其大小仅与光盘上已使用的数据部分一样大?
答案1
涉及三种尺寸:
- 介质的大小。
- 文件系统的大小。
- 数据的范围。
原则上,这些大小按递减顺序排列(文件系统应适合介质,并且数据应在文件系统边界内)。此外,光盘上的文件系统通常会根据数据进行调整,因此复制文件系统应该是正确的。
Linux 实用程序套件附带isosize
用于打印 iso9660 文件系统大小的实用程序。
head -c $(isosize /dev/dvd) </dev/dvd >~/dvd/abc.iso
(您可以使用dd
,但head
同样好。尽管有流行的神话,dd
不太适合访问设备(神奇之处在于/dev/dvd
,而不是dd
),而且它通常不会更快。)
有些 DVD 的复制保护方法很粗糙,文件系统的大小是错误的,因此如果复制文件系统,部分数据将会丢失。如果您的电影 DVD 比格式允许的小得多,您就有可能会看到这种情况。在这种情况下,您确实需要复制整个磁盘映像。
答案2
dd if=/dev/dvd bs=2048 count=`isosize -d 2048 /dev/dvd` conv=notrunc,noerror > disc.iso