Tengo un montón de tarjetas SD SDHC UHS-1 Clase 10 de diferentes fabricantes. Todos están divididos de la siguiente manera
$ sudo fdisk -l /dev/sdj
Disk /dev/sdj: 14.9 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0000de21
Device Boot Start End Sectors Size Id Type
/dev/sdj1 2048 1050623 1048576 512M c W95 FAT32 (LBA)
/dev/sdj2 1050624 2099199 1048576 512M 83 Linux
/dev/sdj3 2099200 3147775 1048576 512M 83 Linux
/dev/sdj4 3147776 31116287 27968512 13.3G 83 Linux
Usé un duplicador de tarjeta de memoria para copiar las imágenes. Todas las tarjetas tienen el mismo contenido.
Cuando monte la segunda partición de dos tarjetas SD y compare el contenido, son exactamente iguales.
$ sudo mount -o ro /dev/sdg2 /mnt/system-a/
$ sudo mount -o ro /dev/sdj2 /mnt/system-b/
$ diff -r --no-derefence /mnt/system-a /mnt/system-b/
$ # prints nothing^
Sin embargo, si comparo el resumen de las particiones, a veces difieren
$ sudo dd if=/dev/sdg2 | sha1sum
1048576+0 records in
1048576+0 records out
536870912 bytes (537 MB) copied, 12.3448 s, 43.5 MB/s
ee7a16a8d7262ccc6a2e6974e8026f78df445e72 -
$ sudo dd if=/dev/sdj2 | sha1sum
1048576+0 records in
1048576+0 records out
536870912 bytes (537 MB) copied, 12.6412 s, 42.5 MB/s
4bb6e3e5f3e47dc6cedc6cf8ed327ca2ca7cd7c4 -
Más extraño, si comparo estas dos unidades usando una herramienta de diferenciación binaria como radiff2
, veo lo siguiente
$ sudo dd if=/dev/sdg2 of=sdg2.img
1048576+0 records in
1048576+0 records out
536870912 bytes (537 MB) copied, 12.2378 s, 43.9 MB/s
$ sudo dd if=/dev/sdj2 of=sdj2.img
1048576+0 records in
1048576+0 records out
536870912 bytes (537 MB) copied, 12.2315 s, 43.9 MB/s
$ radiff2 -c sdg2.img sdj2.img
767368
767368 cambios, a pesar de diff
que no vio ninguna diferencia en el contenido!
Y por cordura, si comparo dos particiones que tenían el mismo sha1sum, veo lo siguiente
$ radiff2 -c sdj2.img sdf2.img
0
0 cambios!
Aquí hay un desglose de los diferentes sha1sums que veo de diferentes tarjetas. Parece que el fabricante de la tarjeta tiene un gran efecto en la suma que obtengo cuando uso dd para leer la unidad.
A pesar de las diferencias en sha1sums, todas estas tarjetas funcionan para mis propósitos. Sin embargo, está dificultando la comprobación integral porque no puedo comparar sha1sums.
¿Cómo es posible que dos particiones de la tarjeta SD puedan tener sha1sums diferentes y, sin embargo, tener exactamente el mismo contenido cuando están montadas?
Respuesta: Entonces ahora funciona como se esperaba. Para aclarar las cosas, la inconsistencia fue causada por el duplicador SySTOR que estaba usando. La configuración de copia que hice usaba la información y los archivos de la partición copiados, pero no era necesario dd los bits para garantizar que hubiera una coincidencia uno a uno.