La creación de una imagen de la tarjeta CF produce resultados inconsistentes

La creación de una imagen de la tarjeta CF produce resultados inconsistentes

Un amigo está intentando clonar una tarjeta CF usando el siguiente comando de Linux:

sudo dd if=/dev/sdb of=card3.img bs=4M status=progress

pero cada vez produce una imagen diferente. Las dos primeras tarjetas que tomaron imágenes produjeron resultados inconsistentes. ¿Cuál podría ser la causa de esto?

Respuesta1

Simplemente montar con acceso de escritura (rw) podría escribir cosas, en los sistemas de archivos ext hay al menos los siguientes atributos que se actualizan:

  • Montado por última vez en
  • Recuento de monturas
  • Hora del último montaje
  • Y los posibles tiempos de acceso a los archivos que se actualizan cuando los archivos recién se leen (los montajes noatimedeberían detenerlos).
  • Y un atributo de "Última hora de escritura" si se produce la escritura)

En realidad, montandosin-rEl acceso de escritura (usando el / de montaje -o ro) aún podría escribir en el dispositivo, consulte man mount:

-r, --solo lectura

Monte el sistema de archivos de solo lectura. Un sinónimo es -o ro.

Tenga en cuenta que, dependiendo del tipo de sistema de archivos, el estado y el comportamiento del kernel, el sistemaaún puede escribir en el dispositivo. Por ejemplo, ext3 y ext4 reproducirán el diario si el sistema de archivos está sucio. Para evitar este tipo de acceso de escritura, es posible que desee montar un sistema de archivos ext3 o ext4 con elro, sin cargaopciones de montaje o configurar el dispositivo de bloque en modo de solo lectura, consulte el blockdevcomando (8).

Y blockdevtiene el --setrocomando para configurar un dispositivo de bloque como de solo lectura

Podrías comparar las imágenes y ver qué bytes son diferentes, con cmpo algo así vbindiff. Solo unos pocos bytes podrían ser una fecha o un recuento en alguna parte (no estoy seguro de si los atributos están almacenados como texto sin formato o codificados de alguna manera).

O monte dos (o más) imágenes en modo de solo lectura y compare solo los archivos. Plain diffpuede comparar árboles de directorios, pero prefiero una interfaz gráfica de usuario como kdiff3. Si la única diferencia está en el recuento de montaje o en la hora del último montaje, no aparecerá en los archivos (probablemente tampoco aparecerán diferentes tiempos de acceso a archivos).

O tal vez el dispositivo o su RAM o algo más está funcionando mal y leyendo diferentes bytes aquí y allá.

También puede mantener el dispositivo desmontado, crear una imagen, luego desconectar y volver a conectar el dispositivo (aún desmontado) y crear otra imagen y luego comparar, deberían ser iguales.

información relacionada