Answers:
我认为最简单的答案是dd,dd_rescue和ddrescue并非旨在挫败复制保护方案。他们对数据的格式不做任何假设,并试图维护磁盘上所有原始数据的完整性。
就dd
我而言,我怀疑它是由于复制保护方案中的磁盘上的故意读取错误而终止。如果您包含了以下命令的命令行输出,将有助于确认这一点dd
在问题中。您可能还会发现dmesg
命令输出中记录了一些读取错误。
您可以dd
通过noerror
在命令行上将标志传递给文件来复制更多文件。但是,您可能会发现,这只会使您的最终映像损坏。
人们提到使用VLC打开DVD(显示DVD菜单)神奇地使数据可访问。 dd
,但是还没有人解释为什么这样做以及VLC如何实现这一壮举。
当尝试通过连接到电视的Kodi设备在计算机上播放DVD时,通过使用SMB通过网络共享DVD驱动器的根目录,我设法复制了此行为。没用除非我首先用VLC打开DVD柯迪可以神奇地播放文件。
这种魔术冒犯了我的情感,所以我开始挖掘。问题的根本原因是DVD驱动器对您不利。根据维基百科:
但是,如果驱动器检测到已使用CSS编译过的光盘,它将拒绝访问标记为受版权保护的逻辑块(第6.15.3 [2]节)。播放器必须首先执行身份验证握手(第4.10.2.2 [2]节)。
因此,不仅您会获得加密的数据,而且如果您阅读DVD则无法播放它。除非您的计算机上的某些程序已使用Linux内核公开的某些DVD专用IOCTL(在本例中为DVD_AUTH)对驱动器进行了身份验证,否则该驱动器不会将这些位发送回。这就是为什么这表现为I / O错误。
有关实现这些IOCTL的更多信息,可从实现它们的人员的邮件列表中获得,但基本上,它们为Userland软件提供了一种与DVD驱动器硬件执行秘密握手的方式。
VLC通过这种秘密握手方式进行了交换libdvdcss
,这似乎可以GetBusKey()
在css.c
。大概libdvdcss
可以编写一个与之链接的独立程序,以解锁驱动器以作为文件进行访问,而不必依赖于所有VLC。解锁后,驱动器无法确定正在读取哪个程序,因此它将(仍加密但现在可读的)位发回给任何人,包括dd
或cp
。
(有趣的是,DVD IOCTL也是获得用于读取磁盘上数据的解密密钥的唯一真实方法,一旦您读取它即可。如果您正在播放文件的复制目录,则无权访问IOCTL获取密钥,因此诉诸libdvdcss
统计密码分析来破解加密。)
vlc
后来打开的并不是所有的iso都能正确显示dvd菜单(虽然不是主要功能-我只是将其作为光盘的备份而不会丢失内容,这对我来说很重要)。我怀疑类似makemkv
或handbrake
可能也具有与相同的工具vlc
。顺便说一句,这对于我vlc
在Windows上dd
运行以及从Linux VM内运行都有效。
testdvd /dev/dvd
,就是这样。
我可以确认使用VLC打开光盘会绕过保护。但是,在使用时dd
,我必须在打开VLC之后使用此命令(通过加载光盘并使用VLC中公开的目录来发现)。
dd if=/dev/sr0 of=image_of_disc.iso
这与我读过的很多文章都说此命令应该起作用不同:
dd if=/dev/cdrom of=image_of_disc.iso - NON-WORKING
证明:
me@me:~$ dd if=/dev/cdrom of=/media/me/image_of_disc.iso
dd: error reading ‘/dev/cdrom’: Input/output error
103336+0 records in
103336+0 records out
52908032 bytes (53 MB) copied, 2.04212 s, 25.9 MB/s
me@me:~$ dd if=/dev/sr0 of=/media/me/image_of_disc.iso
dd: error reading ‘/dev/sr0’: Input/output error
2846992+0 records in
2846992+0 records out
1457659904 bytes (1.5 GB) copied, 314.351 s, 4.6 MB/s
me@me:~$
我可以推荐一个叫做dvdbackup的程序
我可以将DVD备份的副本复制为文件夹。我不认为这会带来iso。因此,您需要手动执行该步骤。
人们提到使用VLC打开DVD(显示DVD菜单)神奇地使dd可以访问数据,但是还没有人解释为什么这样做以及VLC如何实现这一壮举。
我也体验了“首先使用VLC打开DVD”。因此,在脚本中使用dd时,我使用以下顺序:
cvlc --run-time 6 --start-time 16 /dev/sr0 vlc://quit
`dd if=/dev/sr0 of=/home/user/Videos/name.iso`
dd
在反引号中显示命令?………………………………………………………………请不要发表评论;编辑 您的答案,使其更清晰,更完整。