Si bien la forma en que Linux u otro sistema operativo maneja los bloques defectuosos varía tanto el sistema operativo, el tipo de unidad y el tipo de sistema de archivos, así como la aplicación utilizada (en su caso, DD), tendrá más suerte si intenta preguntar eso en Superuser.stackexchange. com
Pero solo por completar, DD cuando se ejecuta con el indicador noerror
, saltará los bloques erróneos / errores de lectura, en lugar de detenerse. Sin el indicador sync
, simplemente omitirá esos errores, por lo que su archivo de salida será más pequeño. La bandera de sincronización hace:
Rellene cada bloque de entrada con NULs a tamaño ibs; cuando se usa con bloqueo o desbloqueo, rellene con espacios en lugar de NUL
Entonces, si usa notrunc,noerror,sync
, cualquier error de lectura se escribirá como \x00
o NUL
, y la salida tendrá el mismo tamaño que la entrada.
En cuanto a la forma en que la tarjeta SD la maneja, las tarjetas SD son memoria Nand Flash con un controlador incorporado, que maneja la nivelación del desgaste, la gestión de bloques defectuosos y la asignación del sistema de archivos virtual a las ubicaciones físicas en la memoria Nand. Parte de esto es que los sectores de memoria tienen bloques de repuesto, ya que si algunos bloques en un sector mueren. Intenta escribir los datos en el bloque principal, volver a leer para verificar si son válidos, y si no, usa esos repuestos. Entonces marca el bloque malo como tal. Se desconoce si, cuando se usa una sección de bloque de repuesto, si todo el sector está marcado como incorrecto o no.
Pero todo esto está del lado del controlador interno del SD. Nada de esto se reporta al sistema operativo. Los bloques incorrectos en la Nand no son administrados por el usuario / aplicación.