Pregunta 1:
Con respecto a la -b
opción: esto depende de su disco. Los discos grandes y modernos tienen bloques de 4KB, en cuyo caso debe configurar -b 4096
. Puede obtener el tamaño de bloque del sistema operativo , y generalmente también se puede obtener leyendo la información del disco de la etiqueta o buscando en Google el número de modelo del disco. Si -b
se establece en algo más grande que el tamaño de su bloque, la integridad de los badblocks
resultados puede verse comprometida (es decir, puede obtener falsos negativos: no se encuentran bloques defectuosos cuando aún pueden existir). Si -b
se establece en algo más pequeño que el tamaño de bloque de su unidad, la velocidad de la badblocks
ejecución puede verse comprometida. No estoy seguro, pero puede haber otros problemas con la configuración-b
a algo más pequeño que el tamaño de su bloque, ya que no está verificando la integridad de un bloque completo, aún podría ser posible obtener falsos negativos si se configura demasiado pequeño.
La -c
opción corresponde a cuántos bloques deben verificarse a la vez. Lote de lectura / escritura, básicamente. Esta opción no afecta la integridad de sus resultados, pero sí afecta la velocidad a la que se badblocks
ejecuta. badblocks
escribirá (opcionalmente), luego leerá, almacenará en búfer, verificará y repetirá para cada N bloques según lo especificado por -c
. Si -c
se establece demasiado bajo, esto hará que sus badblocks
ejecuciones tarden mucho más de lo normal, ya que la cola y el procesamiento de una solicitud de E / S adicional conlleva una sobrecarga, y el disco también puede imponer una sobrecarga adicional por solicitud. Si -c
está configurado demasiado alto, badblocks
podría quedarse sin memoria. Si esto sucede, badblocks
fallará bastante rápido después de que comience. Consideraciones adicionales aquí incluyen badblocks
ejecuciones paralelas : si está ejecutandobadblocks
contra múltiples particiones en el mismo disco (mala idea), o contra múltiples discos sobre el mismo canal de E / S, probablemente querrá sintonizar -c
algo sensiblemente alto dada la memoria disponible para badblocks
que las ejecuciones paralelas no luchen por el ancho de banda de E / S y puede paralelizar de una manera sensata.
Pregunta 2:
Al contrario de lo que indican otras respuestas, la -w
prueba de modo de escritura no es más o menos confiable que la prueba de lectura-escritura no destructiva, pero es dos veces más rápida, a costa de ser destructiva para todos sus datos. Explicaré por qué:
En modo no destructivo, badblocks
hace lo siguiente:
- Lea los datos existentes, realice una suma de comprobación (lea nuevamente si es necesario) y guárdelos en la memoria.
- Escriba un patrón predeterminado (anulable con la
-p
opción, aunque generalmente no es necesario) en el bloque.
- Lea el bloque de nuevo, verificando que los datos leídos sean los mismos que el patrón.
- Escriba los datos originales en el disco.
- No estoy seguro de esto, pero también es probable que vuelva a leer y verifique que los datos originales se escribieron correctamente y sigan sumando lo mismo.
En el modo destructivo ( -w
), badblocks
solo realiza los pasos 2 y 3 anteriores. Esto significa que la cantidad de operaciones de lectura / escritura necesarias para verificar la integridad de los datos se reduce a la mitad. Si un bloque es malo, los datos serán erróneos en cualquier modo. Por supuesto, si le importan los datos almacenados en su unidad, debe usar el modo no destructivo, ya -w
que eliminará todos los datos y dejará badblocks
los patrones escritos en el disco.
Advertencia: si un bloque va mal, pero aún no se ha eliminado por completo, algunos pares de verificación de lectura / escritura pueden funcionar, y algunos pueden no funcionar. En este caso, el modo no destructivo puede darle una indicación más confiable de la "característica" de un bloque, ya que realiza dos conjuntos de verificación de lectura / escritura (tal vez, vea la viñeta en el paso 4). Incluso si el modo no destructivo es más confiable de esa manera, solo es más confiable por coincidencia . La forma correcta de verificar si hay bloques que no están completamente mal pero que no pueden soportar múltiples operaciones de lectura / escritura es ejecutar badblocks
varias veces sobre los mismos datos, utilizando la -p
opción.
Pregunta 3:
Si SMART está reasignando sectores, probablemente debería considerar reemplazar la unidad lo antes posible. Las unidades que pierden algunos sectores no siempre las pierden, pero la causa suele ser una unidad muy utilizada que se vuelve magnéticamente blanda o que los cabezales / motores fallan y producen lecturas / escrituras inexactas o fallidas. La decisión final depende de usted, por supuesto: en función del valor de los datos en el disco y la confiabilidad que necesita de los sistemas que ejecuta, puede decidir mantenerlo. Tengo algunas unidades con bloques defectuosos conocidos que han estado girando con advertencias SMART durante años en mi servidor de archivos, pero están respaldados en un horario tal que podría manejar una falla total sin mucho dolor.