Intenté dd, dd_rescue y ddrescue , todos fallaron. Pensé que estas herramientas omiten el sistema de archivos y hacen una copia bit a bit.
dd es engañado, termina pero solo produce un pequeño archivo y dice que está terminado.
dd_rescuse y ddrescue se quejan de errores de lectura y son intolerablemente lentos. Estas herramientas pueden copiar solo unos pocos MB en 10 minutos.
¿Por qué sucede esto? ¿Por qué fallan estas herramientas?
AnyDVD hace que el disco se pueda copiar en un segundo en un host Win7. Dice que el sistema de archivos UDF está parcheado, curiosamente, también dice que no hay sectores defectuosos. Todo el disco se puede copiar en 10 minutos.
ACTUALIZACIÓN: En cuanto a la solución, vea mi pregunta similar sobre superusuario .
La gente menciona que abrir el DVD con VLC (que muestra el menú del DVD) mágicamente hace que los datos sean accesibles
dd
, pero nadie ha explicado aún por qué es así y cómo VLC logra esta hazaña.Logré replicar este comportamiento al intentar reproducir un DVD en mi computadora desde un dispositivo Kodi conectado a mi TV, usando SMB para compartir la raíz de la unidad de DVD a través de la red. No funcionó, a menos que primero abriera el DVD con VLC, momento en el que Kodi podría reproducir mágicamente los archivos.
Este tipo de magia ofende mi sensibilidad, así que fui a cavar. La causa subyacente del problema es que su unidad de DVD funciona en su contra . Según Wikipedia :
Por lo tanto, no es solo que obtendrá datos cifrados que no se pueden reproducir si lee el DVD; la unidad no devolverá los bits a menos que algún programa en su máquina se haya autenticado en la unidad, utilizando algunos IOCTL específicos de DVD expuestos por el kernel de Linux (en este caso, DVD_AUTH ). Es por eso que esto se manifiesta como un error de E / S.
Más información sobre cómo funcionan estos IOCTL está disponible en esta publicación de la lista de correo de la persona que los implementó , pero básicamente proporcionan una forma para que el software del país de usuario realice el protocolo de enlace secreto con el hardware de la unidad de DVD.
VLC realiza esta apretón de manos secreto a través
libdvdcss
, que a su vez parece hacerlo enGetBusKey()
encss.c
. Presumiblemente, selibdvdcss
podría escribir un programa independiente que se vincule en contra para desbloquear la unidad para acceder como archivos, en lugar de depender de todo VLC. Una vez que está desbloqueado, la unidad no puede saber qué programa está leyendo, por lo que envía los bits (aún encriptados pero ahora legibles) a cualquier persona, incluidosdd
ocp
.(Curiosamente, los DVD IOCTL también son la única forma real de obtener la clave de descifrado utilizada para descifrar los datos en el disco, una vez que los haya leído. Si está reproduciendo un directorio de archivos copiado, no tiene acceso a los IOCTL para obtener las claves, por lo que
libdvdcss
recurre al criptoanálisis estadístico para descifrar el cifrado ).fuente
vlc
después (aunque no es importante, solo estoy haciendo esto como una copia de seguridad de mis discos y no perder contenido es lo que me importa aquí). Sospecho que herramientas comomakemkv
ohandbrake
también podrían tener el mismo efecto quevlc
. Por otro lado, esto funcionó para mí convlc
ejecutar en Windows condd
ejecutar desde una máquina virtual Linux.testdvd /dev/dvd
y eso es todo.No estoy seguro de por qué esto funciona, pero abrir el DVD primero con VLC, solo lo suficiente para ver el menú, y luego hacer una pausa permite que dd funcione.
fuente
Puedo confirmar que abrir el disco con VLC omite la protección. Sin embargo, al usarlo
dd
, tuve que usar este comando después de abrir VLC (descubierto al cargar el disco y usar el directorio expuesto en VLC).Lo cual es diferente de muchas publicaciones que he leído que dicen que este comando debería funcionar:
prueba:
fuente
Puedo recomendar un programa llamado dvdbackup
Puedo hacer una copia de la copia de seguridad del DVD como carpetas. No creo que sea una iso. Por lo tanto, debe dar ese paso manualmente.
fuente
También experimenté el 'DVD abierto con VLC primero'. Entonces, cuando uso dd en mi script, uso esta secuencia:
fuente
dd
comando en backticks? ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... por favor no responda en los comentarios; edite su respuesta para que sea más clara y completa.