Agresivamente fsck un disco antes de instalar

12

Tengo una vieja máquina HP Athlon que uso para probar el software con el procesador anterior. Tenemos frecuentes apagones, y después del último el disco fue un desastre. Fue tan malo que no pude correr fscky despachar todos los problemas. Realicé una nueva instalación del sistema operativo, pero todavía recibo fsckquejas.

Me gustaría probar una última vez para volver a cargar Linux antes de condenar el disco duro o la máquina. Después de crear el sistema de archivos, pero antes de que ocurra la instalación, me gustaría realizar una acción agresiva fsckpara marcar los bloques sospechosos como malos.

El disco es grande (aproximadamente 500 GB) y una distribución Debian 8 es relativamente pequeña (8-12 GB suele ser más que suficiente), por lo que no me importa si los bloques buenos se marcan como malos. También me gusta la instalación de la GUI, pero no estoy casado con ella.

Tengo dos preguntas:

  1. ¿Debian 8 ofrece una opción para realizar una fsckantes de instalar el sistema base? Si es así, donde está? Si no, ¿cuál es el proceso?

  2. ¿ fsckTiene una configuración para controlar qué tan agresivamente los bloques se marcan como malos? Si es así, ¿qué es? Si no, ¿qué se puede usar?


EDITAR : la máquina es una HP5850. Al ingresar al BIOS, navegar a Almacenamiento y luego a la Autoevaluación del Sistema de protección de unidades (DPS), DPS recomendó reemplazar la unidad. DPS no proporcionó ninguna estadística, por lo que no estoy seguro de la magnitud del daño.

Teniendo en cuenta que puedo comprar una unidad SATA II [antigua] nueva por $ 12 USD, solo la voy a reemplazar. No tiene sentido perder tiempo o energía.


Las referencias relacionadas son las siguientes. Ninguna de las preguntas parece ser abordada.


fuente
¿Por qué no SpinRite ?
Peter Mortensen
Si tiene bloques defectuosos, toda la unidad está fallando físicamente y no debe usarse.
chrylis -on strike-
2
"Agresivamente fsck un disco" se ve tan sucio ...
A. Mirabeau

Respuestas:

19
  1. "¿Debian 8 ofrece una opción para realizar un fsck antes de instalar el sistema base? Si es así, ¿dónde está? Si no, ¿cuál es el proceso?"

    Como alternativa, primero descargue y grabe un CD GPartEd (o escriba en una memoria USB). Antes de ejecutar el instalador, inicie GPartEdy particione el disco a su gusto y ejecute fscko simplemente ejecute badblockspor completo.

    Cuando ejecute el instalador de Debian, solo dígale cómo usar las particiones que están allí. El instalador no necesita crear sus propias particiones. Es perfectamente feliz usar particiones existentes.

  2. "¿Tiene fsck una configuración para controlar qué tan agresivamente los bloques se marcan como malos? Si es así, ¿qué es? Si no, ¿qué se puede usar?"

    La -copción e2fsckhace que ejecute el badblocksprograma para buscar bloques defectuosos. Puedes ejecutar badblocks directamente también. Por defecto, badblockshace una prueba de solo lectura. Para ser más agresivo, puede especificar -nuna prueba de lectura-escritura no destructiva. También puede configurar la -popción para aumentar el número de pases que realiza.

    Es posible que desee ejecutar badblocksantes de la partición. De esa forma, puede especificar la -wprueba de solo escritura más rápida .

John1024
fuente
1
John, +1, curioso, ¿ badblockstiene algún método para marcar en un nivel de hardware o solo en el nivel de FS?
heemayl
3
@heemayl Tengo entendido que, en los discos duros modernos , el firmware del disco duro intenta hacer toda su propia gestión de bloques defectuosos. El propósito de la ejecución badblockses simplemente forzar al disco duro a leer / escribir todos los sectores. El disco duro tiene su propia detección y reasignación de sectores defectuosos y, si todo funciona como debería, el badblocksprograma nunca es informado de que el disco duro está haciendo esto.
John1024
hmmm ... comprensible. Entonces, en esencia, fsck puede marcar bloques en FS, pero los bloques defectuosos solo ayudan al firmware del disco a hacer el marcado, ¿no hace nada por sí mismo?
heemayl
3
@heemayl En tiempos antiguos, badblocksescupía una lista de sectores defectuosos y el sistema de archivos los tomaba en cuenta. En los tiempos modernos, badblocks y el FS todavía intenta hacerlo, pero, con un HD moderno, la lista generalmente está vacía.
John1024
1
@heemayl, y si la lista no está vacía, el disco generalmente está tan dañado que su mejor opción es reemplazarlo.
Mark
7

Si recibe errores de fsck con tanta frecuencia, la unidad también puede estar tosiendo sangre. Incluso si marca cada bloque malo como malo, no pasará mucho tiempo antes de que más bloques se vuelvan malos. Me imagino que podría cambiar a otro tty para hacer un fsck si realmente lo necesita (Ctrl + alt + F2 para cambiar a tty2), pero no puedo enfatizar lo suficiente como necesita un nuevo disco duro si lo que está diciendo es preciso.

John Leuenhagen
fuente
"Si está recibiendo errores de fsck que a menudo ..." - de lo que no estoy seguro es, si hay algunos fsckproblemas después de reinstalar la extensión del problema, o es la punta del iceberg. El sistema se inicia, encuentra algunos errores en el sistema de archivos (4 o 6), se recupera al volver a montar como de solo lectura y luego se inicia.
@jww ¿puede publicar algunos ejemplos exactos de dichos errores del sistema de archivos?
John Leuenhagen
¿Por qué cambiar a otro tty? ¿Qué ventaja ofrece hacerlo?
fpmurphy
@ fpmurphy1 parecía que no podía abrir una ventana de terminal, por lo que cambiar a otro tty sería la siguiente mejor manera de entrar en un shell.
John Leuenhagen
@jww: ¿Se informan los mismos bloques cada vez, o se informa un nuevo conjunto en cada arranque?
TMN
5
  1. No, y no creo que valga la pena. Fsck (como lo implementa la mayoría de los sistemas de archivos) no verifica sus unidades. Valida los metadatos del sistema de archivos y se asegura de que la vista sea coherente cuando los monta. No tiene mucho sentido hacerlo antes de la instalación, porque por definición, solo tendrá un espacio vacío.

  2. Use badblocks en su lugar. Si desea asegurarse de que sus datos no se pudran, use un sistema de archivos que admita la depuración. Lvm en sí mismo puede hacerlo también .

viraptor
fuente
3

Para verificar la confiabilidad de un disco moderno, considere usar las pruebas integradas; puede activarlos con la utilidad smartctl, por ejemplo:

smartctl -t long /dev/sdx
#wait an hour or two
smartctl -a /dev/sdx
#should have recorded a result in the self-test log

Si desea asegurarse de antemano de que todo se ha escrito recientemente, para descubrir sectores que no se escribirán correctamente, puede sobrescribir todo el medio con algo como un dd de / dev / urandom, o triturar con una de las aleatorizaciones opciones.

rackandboneman
fuente
3
Tenga en cuenta que un ddfrom /dev/randomtardará muchos días en completarse en una unidad de 500 GB.
Dmitry Grigoryev
1
error tipográfico corregido, thx :) No quería explicar la sintaxis exacta de dd, ya que quería evitar tener líneas de comando alrededor de eso, si accidentalmente se pega en un shell, causará una pérdida de datos verdaderamente irrecuperable.
rackandboneman
Por desgracia, Debian no parece proporcionar smartctl: E: Unable to locate package smartctl. ¿Es una utilidad Red Hat / Fedora?
el paquete debian / ubuntu es smartmontools. Por cierto, use apt-cache search para buscar qué paquete tiene algo.
rackandboneman
2

Recomendaría obtener el software de formato de bajo nivel del fabricante (si existe) que solo puede ejecutarse en Windows (o si tiene suerte, de un CD / DVD / USB de arranque para el que descargaría una imagen de su sitio web) . Si tiene el control suficiente sobre la operación para reducir la capacidad informada de la unidad a cambio de un grupo de sectores de repuesto mucho más grande, debe hacerlo, en previsión de que muchos de esos repuestos se sustituyan al probar la unidad como ha sugerido @rackandboneman . Es mucho mejor tener una unidad de 400 o 450 GB con todos los sectores defectuosos intercambiados por repuestos y más por defectos futuros, que agotar el grupo de repuesto y tener futuros sectores defectuosos que no se pueden reasignar de forma transparente.

Monty Harder
fuente
Pude ejecutar SeaTools para DOS . SeaTools informó que SMART no se activó , lo que parecía inusual. La prueba larga y la prueba corta fallaron de inmediato. Cambié el tamaño del disco a 32 GB; y luego ejecuté la prueba larga nuevamente. SeaTools encontró 4 LBA malos alrededor de la marca 1190000 y los reparó. Una nueva instalación del sistema operativo fue perfecta; y reinicios posteriores no tuvieron problemas. Desde que compré el disco SATA II de reemplazo, lo mantendré como repuesto si la unidad existente se comporta mal.
@jww lástima que ya hayas aceptado una respuesta diferente.
Monty Harder
Sí, es la trampa de preguntas y respuestas ... Tengo que hacer preguntas específicas para obtener una respuesta precisa. Si hubiera preguntado, "¿cómo instalo Linux en un disco duro que falla?", Entonces la pregunta probablemente se habría cerrado.
0

Algunas cosas básicas si no tiene herramientas más sofisticadas disponibles (por ejemplo, es un disco USB y SMART no funciona):

dd if=/dev/sdX of=/dev/null bs=1M

leerá todo el disco. Verá en el dmesgregistro si hay sectores que no se pudieron leer. Aunque no le dirá si logró leerlos después de los reintentos. No es tan bueno, badblockspero lo menciono por su ubicuidad.

Si tiene sectores defectuosos y no quiere nada en el disco:

dd if=/dev/zero of=/dev/sdX bs=1M

hará que todos los bloques se reescriban. Si hay sectores que no se pueden leer, esto debería hacer que se intercambien con sectores en el grupo reasignado y se puedan volver a utilizar.

Si tiene un disco donde está sucediendo la reasignación, entonces el disco está saliendo. No lo usaría para nada importante, pero a veces tienes datos que no te importan demasiado y podría estar bien para eso.

Si es un SSD, entonces las cosas son diferentes y no se aplican.

usuario1908704
fuente