CRC en el sector de un pendrive usb

1

Estoy tratando de verificar la integridad de los datos en el sistema de archivos fat32. Actualmente he implementado grasa en lpc2478. Para verificar la integridad de los datos, llego a saber que cada sector de un disco tiene una suma de comprobación o CRC. Pero quería encontrar la ubicación del CRC en el sector. Me puede aconsejar sobre cómo encontrar la ubicación del CRC. en un sector de usb pendrive? y este CRC cambiará con el fabricante del pendrive.?

EDIT

¡Oh! ¡gracias por su respuesta! ¿Hay una manera de averiguar la zona CRC solo. ¿Usando algunos editores como Winhex? Intenté usar Winhex para descubrir la zona, pero fue en vano. Si este es un caso tan complicado y propenso a peligros, ¿hay alguna otra forma de verificar la integridad de los datos?

    
pregunta Nithin

2 respuestas

1

Si bien varios sistemas de archivos, como ZFS, UBIFS, HAMMER, Btrfs, etc., utilizan CRC u otra suma de comprobación, mi entendimiento es que FAT32 no usa CRC ni suma de comprobación.

Por lo tanto, cuando escribe un código para su microcontrolador que almacena archivos en formato compatible con FAT32 en un pendrive, no necesita calcular un CRC o suma de comprobación.

El microcontrolador dentro del pen drive calcula el CRC para usted cuando escribe en un sector y lo comprueba cuando lee un sector. Según tengo entendido, todas las unidades de disco giratorio modernas y los SSD y pendrives sata utilizan información patentada interna de detección y corrección de errores. Esa información es utilizada internamente por el microcontrolador en esos dispositivos. Sin embargo, esa información nunca deja esos dispositivos. Esa información EDAC se almacena fuera de los sectores de datos, y no puede ser leído por la CPU principal, nunca verá esa información. Los fabricantes tienen la libertad de cambiar a un sistema EDAC y de nivelación de desgaste mejorado internamente, y todavía presentan la misma interfaz a la CPU principal.

La interfaz SATA y la interfaz Ultra DMA PATA y la interfaz USB utilizan CRC para detectar errores en la transferencia de datos entre el microcontrolador de la unidad y la CPU principal, pero esa información CRC se genera sobre la marcha por la CPU transmisora. y no está realmente almacenado en los medios de comunicación.

¿Cuál de las siguientes opciones funcionará mejor para su aplicación ?:

  • implemente FAT32 solo, y confíe en el microcontrolador que se encuentra dentro del pen drive para manejar EDAC.
  • implemente FAT32 y almacene los datos en un formato de archivo que incluya sumas de comprobación para detectar errores, como el formato de archivo ".ZIP". (Hay una opción "sin comprimir" que simplemente almacena los datos en bruto y la suma de comprobación).
  • implemente FAT32, y con cada archivo "nombre de archivo" también almacene un archivo de resumen correspondiente muy pequeño (un tipo de suma de comprobación) - un "nombre de archivo.sha" que sha256sum puede verificar, o un" filename.md5 "que md5sum puede verificar. ( md5deep puede verificar cualquier tipo de resumen). Para detectar errores.
  • implemente FAT32, y con cada archivo o grupo de archivos también almacene archivos de paridad de manera que Parchive pueda detectar cualquier error, y también (si no está muy dañado) repárelos.
  • implementar algún otro sistema de archivos con una suma de comprobación integrada o CRC.
  • implemente FAT32 y almacene cada archivo en dos unidades de lápiz físicamente separadas que siempre deben contener exactamente los mismos datos.
respondido por el davidcary
0

Este es un caso muy complicado en la memoria Flash

Cada IC de unidad flash asigna sectores a su manera y no es un bloque como en una unidad de disco duro donde 1 Sector Lógico está contenido en su Sector Físico que está en su propia Zona.

La memoria flash tiene zonas, pero se asignan aleatoriamente para reducir el estrés en la nand. Habrá una parte separada del flash que tiene una zona CRC que se correlaciona con cada uno de los sectores lógicos para que cumpla con el estándar IDE / LBA.

Entonces, en una cáscara de tuerca, si está en un bus IDE, el controlador la usa para consultar CRC, no intentes ir a la palanca de sector del Flash porque golpearás una pared de ladrillos. Si está montado a través de un USB, es posible que tenga algunos problemas.

    
respondido por el ppumkin

Lea otras preguntas en las etiquetas