Tengo un archivo de 9,6mb que después de hacer dd if=/dev/zero of=/dev/block/mtdblock2 escribo en mtdblock2. Antes de escribir he hecho un sha1sum en el archivo. Puedo usar applypatch -c para comprobar tanto el tamaño como el sha pero si hago un sha en el blockdevice es por supuesto diferente debido al espacio que queda en el dispositivo. Si copio el dispositivo obtendré una imagen de 16mb incluyendo ese espacio libre. En todos los sitios que he leído las sugerencias son usar fdisk para obtener un recuento y luego usar la opción de recuento en dd. Sin embargo, esto no funciona porque el bloque y la partición es la partición de arranque. ¿Cómo puedo copiar el archivo original, el mismo tamaño y sha, de nuevo fuera del dispositivo de bloque?
Respuesta
¿Demasiados anuncios?En efecto, yo utilizaría dd con una o más de las varias opciones disponibles para especificar el longitud (cantidad) de datos para copiar; de lo contrario, como se ha notado, dd leerá el contenido completo del dispositivo, que no es lo que usted quiere.
Sobre el aparente problema de que el dispositivo de bloque sea la partición de arranque, la solución habitual es arrancar desde algún otro medio (quizás un LiveCD) para que el dispositivo que se quiere leer sea no el dispositivo/partición de arranque y puede ser leído sin dificultad. Sin embargo, antes de eso, intente sudo dd ... y ver si ejecutando como Root se soluciona el problema sin requerir medidas más drásticas.