Cualquier computadora es un dispositivo complejo que consta de muchos componentes y nadie está inmune a fallas en alguno de ellos. En este artículo, veremos cómo reconocer rápidamente uno de los problemas graves con los dispositivos de almacenamiento de información, ya sea un disco duro o una unidad flash, y cómo se verifica si un disco tiene sectores defectuosos en Linux.

Cualquier unidad consta de muchos bloques pequeños (sectores) que almacenan información en forma de ceros o unos (bits). Si por alguna razón el sistema operativo no puede escribir un poco de información en un sector determinado, entonces se puede considerar "roto".

Un sector puede resultar dañado por varios motivos:

  • defecto de fábrica
  • Apague la computadora mientras graba información.
  • Desgaste físico del disco.

Se encuentra una pequeña cantidad de sectores defectuosos en casi cualquier disco. Pero vale la pena prestar atención si su número aumenta con el tiempo. Esto puede indicar la inminente muerte física de la unidad y es hora de pensar en reemplazarla.

Veamos qué utilidades de Linux podemos usar para verificar si un disco tiene sectores de Linux defectuosos.

Comprobando la unidad en busca de sectores defectuosos utilizando badblocks.

Bloques defectuosos utilidad estándar Linux para comprobar si hay sectores defectuosos. Se instala por defecto en casi cualquier distribución y se puede utilizar para comprobar tanto un disco duro como un disco externo.

Primero, veamos qué unidades están conectadas a nuestro sistema y qué particiones tienen. Para hacer esto, necesitamos otra utilidad estándar de Linux: fdisk.

Naturalmente, debes ejecutar comandos con derechos de superusuario:

Parámetro -l Le decimos a fdisk que necesitamos mostrar la lista de particiones y salir.

Ahora que sabemos qué particiones tenemos, podemos comprobar si hay sectores defectuosos. Para ello utilizaremos la utilidad badblocks de la siguiente manera:

sudo badblocks -v /dev/sda1 > badsectors.txt

Para comprobarlo, especificamos los siguientes parámetros:

  • -v- salida detallada de información sobre los resultados de la prueba.
  • /dev/sda1- la sección que queremos comprobar en busca de sectores defectuosos.
  • > sectores malos.txt- enviar el resultado del comando al archivo badsectors.txt.

Si como resultado se encontraron sectores defectuosos, entonces debemos dar instrucciones. Sistema operativo no registre información en ellos en el futuro. Para hacer esto, necesitamos utilidades de Linux para trabajar con sistemas de archivos:

  • e2fsck. Si arreglamos una partición con sistemas de archivos Linux (ext2,ext3,ext4).
  • fsk. si arreglamos sistema de archivos, diferente de la ext.

Ingrese los siguientes comandos:

sudo e2fsck -l badsectors.txt /dev/sda1

O, si nuestro sistema de archivos no es ext:

sudo fsck -l badsectors.txt /dev/sda1

Parámetro -l Le decimos a la utilidad que use la lista de sectores defectuosos del archivo badsectors.txt, que obtuvimos anteriormente al verificar con la utilidad badblocks.

Comprobación de una unidad en busca de sectores defectuosos en Linux en smartmontools

Ahora veamos una versión más moderna y manera confiable verifique el disco en busca de sectores de Linux defectuosos. Las unidades ATA/SATA, SCSI/SAS y SSD modernas tienen un sistema de autocontrol incorporado S.M.A.R.T (Tecnología de autocontrol, análisis e informes, Tecnología de autocontrol, análisis e informes), que monitorea los parámetros del variador y ayudará a determinar el deterioro de los parámetros del variador en las primeras etapas. Para trabajar con S.M.A.R.T en Linux existe una utilidad smartmontools.

Instalémoslo primero. Si su distribución está basada en Debian\Ubuntu, entonces ingrese:

sudo apto instalar smartmontools

Si tiene una distribución basada en RHEL\CentOS, ingrese:

sudo yum instalar smartmontools

Ahora que hemos instalado smartmontools podemos ver la página de ayuda usando el comando:

Pasemos a trabajar con la utilidad. Ingrese el siguiente comando con el parámetro -H para que la utilidad nos muestre información sobre el estado del disco:

sudo smartctl -H /dev/sda1

Como puede ver, se completa la verificación del disco en busca de sectores de Linux defectuosos y la utilidad nos dice que todo está bien con la unidad.

Además, puede especificar los siguientes parámetros -a o --todo para obtener aún más información sobre la unidad, o -incógnita Y --xall para ver información, incluidos otros parámetros del variador.

Conclusiones

En este artículo, analizamos formas de verificar las unidades en busca de sectores defectuosos en Linux para anticipar posibles fallas a tiempo y no perder datos.

También tuve que afrontar este problema. Mi único amigo que ha instalado ubuntu como uno viejo portátil asus, y que a veces simplemente no quiere usar su cerebro, vino a mí con ese problema. El nuevo Ubuntu 12.10 está instalado en su computadora portátil y muy a menudo el sistema simplemente no quiere arrancar, apareciendo en una pantalla negra o congelándose sobre un fondo violeta. Pero recientemente comenzó a aparecer este mensaje, algo así como “El sistema operativo no pudo iniciarse. Seleccionar para acciones adicionales la tecla deseada..." Y luego hay una descripción de lo que se debe presionar. No recuerdo exactamente qué teclas sugiere presionar el sistema, pero el significado es que para corregir errores automáticamente, presione tal o cual tecla, para la depuración manual otra, y para ignorar este mensaje se le pedirá que presione un tercer botón. La corrección automática de errores no condujo a nada y la carga del sistema operativo nunca llegó a su conclusión lógica. Entonces decidí probar el famoso equipo. fsck.

Primero necesitas arrancar desde cualquiera de los dos. unidad flash de arranque desde Ubuntu (Lubuntu, Xubuntu, Kubuntu, etc.), o desde un Live CD de Ubuntu. Ahora necesitamos averiguar qué partición de Ubuntu necesitamos escanear para reparar el sistema de archivos. Inicie Terminal (Ctrl-Alt-T) y ejecute el comando:

sudo fdisk -l

Este comando nos mostrará todos los discos y unidades flash que están montados en el sistema. Daré un ejemplo con mi computadora personal y no con la computadora portátil de un amigo. Esto es lo que obtuve:

ubuntu@ubuntu:~$ sudo fdisk -l

Disco /dev/sda: 640,1 GB, 640135028736 bytes
255 cabezas, 63 sectores/pista, 77825 cilindros, total 1250263728 sectores



Identificador de disco: 0x0009d6f7


/dev/sda1 * 2048 61442047 30720000 83 Linux
/dev/sda2 61442048 73730031 6143992 82 Intercambio de Linux/Solaris
/dev/sda3 73730048 1250263039 588266496 83 Linux

Disco /dev/sdb: 500,1 GB, 500107862016 bytes
255 cabezas, 63 sectores/pista, 60801 cilindros, total 976773168 sectores
Unidades = sectores de 1 * 512 = 512 bytes
Tamaño del sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes/512 bytes
Identificador de disco: 0xb9ff6f01

Dispositivo Arranque Inicio Bloques finales Sistema de identificación
/dev/sdb1 * 16065 100197404 50090670 83 Linux
/dev/sdb2 105322201 976771071 435724435+ 5 Extendido
/dev/sdb3 100197405 105322139 2562367+ 82 Intercambio de Linux/Solaris
/dev/sdb5 105322203 832110591 363394194+ 7 HPFS/NTFS/exFAT
/dev/sdb6 832112640 860755218 14321289+ 83 Linux
/dev/sdb7 860758016 862613503 927744 82 Intercambio de Linux/Solaris
/dev/sdb8 862615552 976771071 57077760 83 Linux

Las entradas de la tabla de particiones no están en el orden del disco

Disco /dev/sdc: 8115 MB, 8115978240 bytes
250 cabezas, 62 sectores/pista, 1022 cilindros, total 15851520 sectores
Unidades = sectores de 1 * 512 = 512 bytes
Tamaño del sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes/512 bytes
Identificador de disco: 0xc3072e18

Dispositivo Arranque Inicio Bloques finales Sistema de identificación
/dev/sdc1 * 32 15847625 7923797 b W95 FAT32

Como puede ver en la salida del comando sudo fdisk -l, tengo 2 discos duros(sda)640 GB y (sdb)500 GB, así como una unidad flash (sdc)8GB, desde la cual realmente arranqué. Sé que mi sistema base con Ubuntu 12.04 está ubicado en el disco sda y la partición con el sistema operativo se llama sda1.

Ahora que conocemos la partición que necesita ser escaneada, podemos comenzar a verificarla. En la Terminal:

sudo fsck -y -f -c /dev/sda1

Si ve un error, lo más probable es que necesite desmontar esta partición:

sudo desmontar /dev/sda1

Teclas de comando y parámetros fsck:

y- responda siempre afirmativamente a todas las preguntas (existe una alternativa: tecla p - inicia la comprobación en modo totalmente automático);

F- verificación forzada del sistema de archivos (incluso si el sistema de archivos está marcado como completamente funcional)

do- busca bloques defectuosos y luego los marca en consecuencia

/dev/sda1- dispositivo o partición que necesita ser verificado. Aunque el equipo puede tener una apariencia diferente. Por ejemplo:

sudo fsck -p /dev/sda1

En este caso, solo se ha agregado el modificador -p. Acaba de leer sobre todas las claves de comando fsck y agregar exactamente las claves que necesita. Para conocer todas las capacidades del programa ingresa en la Terminal:

hombre fsck

Esto es lo que produjo la Terminal después de verificar:

ubuntu@ubuntu:~$ sudo fsck -y -f -c /dev/sda1
fsck de util-linux 2.20.1
e2fsck 1.42.5 (29 de julio de 2012)
Comprobación de bloques defectuosos (prueba de solo lectura): 0,00% completado, 0:00 transcurrido. (0/0/0 error hecho
/dev/sda1: Actualizando el inodo del bloque defectuoso.
Paso 1: Verificación de inodos, bloques y tamaños
Paso 2: comprobar la estructura del directorio
Paso 3: comprobar la conectividad del directorio
Paso 4: comprobar los recuentos de referencia
Paso 5: Verificación de la información resumida del grupo

Si, durante el arranque, el sistema operativo informa que hay errores en el sistema de archivos en una de las particiones, debe verificar inmediatamente los discos y corregir los errores del sistema de archivos.

Todo usuario que se precie no debe olvidar que las comprobaciones periódicas discos duros buscar sectores defectuosos y comprobar los discos en busca de errores es un ejemplo de sentido común.

¡Importante! Lanzamiento y ejecución FSCK en un sistema de archivos montado puede causar corrupción de datos, por lo queUtilice este material bajo su propia responsabilidad. El autor no se hace responsable de los daños que pueda causar.

Para protegerse es necesario:

  • Cambie al modo de usuario único y desmonte el sistema de archivos
  • Inicie su computadora en modo de recuperación usando el CD de instalación

Entonces, debe verificar los discos y corregir los errores del sistema de archivos, comencemos.

1) Modo de usuario único

Cambie el nivel de inicialización y desmontar el sistema de archivos:

# inicio 1
# desmontar /home

Buscar particiones conectadas:

#fsck /dev/sda1

2) Modo de recuperación desde el CD de instalación

Inserte el CD de instalación en la unidad y reinicie el sistema:

Espere un momento y después de iniciar desde el CD de instalación, ejecute el comando:

# rescate de Linux sin montar

La directiva NOMOUNT deshabilitará el montaje, por lo que puede utilizar FSCK de forma segura.

Después de esto, ejecute FSCK en la partición con errores:

# fsck -yvf /dev/sda1

LVM (Administrador de volúmenes lógicos)

La situación con LVM (Administrador de volúmenes lógicos) Las secciones son un poco más complicadas. para empezar FSCK Para LVM Primero se deben encontrar las particiones. PV (volumen físico), VG (grupo de volúmenes), LV (extensión lógica) y activarlos, para ello ejecute los siguientes comandos en secuencia:

#lvm pvscan
#lvmvgscan
# lvm lvchange -ay VolGroup00
# lvm lvscan

# fsck -yfv /dev/VolGroup00/LogVol00

Tras la ejecución, FSCK devolverá el resultado en forma de código, este código es un número único que representa la suma de los siguientes valores:

0 - Sin errores;
1 - Errores del sistema de archivos corregidos;
2 - El sistema debe reiniciarse;
4 - Errores del sistema de archivos que no se corrigen;
8 - Error operativo;
16 - Error de uso o sintaxis;
32 - Fsck cancelado por solicitud del usuario;
128: error de biblioteca compartida.

De vez en cuando necesitas revisar tu disco duro. Creo que no hay nada más valioso que la información en un disco duro, bueno, claro, sin contar nuestras vidas, y será una lástima que tus fotos familiares, videos, resúmenes e informes de trabajo necesarios, contraseñas y cualquier cosa. Otros datos importantes desaparecen. ¿Cómo comprobar un disco duro en Linux y, en nuestro caso, en Ubuntu, y qué programas existen para probar nuestros ayudantes y salvadores: los discos duros? Debe verificar el disco duro no desde el sistema instalado en él, sino desde LiveCD/USB. Una de esas compilaciones valiosas sería Parted Magic, aunque esto también se puede hacer desde un CD/USB de Ubuntu. Este es un kit completo de municiones para trabajar con discos duros. Aquí tiene GParted, para cambiar el tamaño de las particiones HDD (análogo a Acronis Disc Director), y CloneZilla, para crear copias exactas de los discos o particiones de su sistema con recuperación posterior, y GSmartControl, para informar sobre el estado de su disco y mucho más. Entonces, comencemos la revisión de los programas para verificar. disco duro en ubuntu.

Programa de consola Bloques malos.

Para saber cómo están particionados su disco duro o discos y seleccionar una partición para verificar, ejecute el comando:

sudo fdisk -l

Para comenzar a buscar sectores defectuosos, simplemente ejecute el comando en la Terminal:

sudo bloques malos -sv /dev/sdb1

Dónde:

/dev/sdb1- esta es la sección que se está revisando,

-s— mostrará información sobre el escaneo como porcentaje, la presencia o ausencia de sectores "malos", etc.,

-v- se mostrará información detallada sobre la verificación.

Si necesita obtener un informe de texto, debe ejecutar el siguiente comando:

sudo bloques malos -s /dev/sdb1 > errores.txt

En lugar de /dev/sdb1 debes indicar la partición deseada de tu disco duro, y aparecerá un archivo de texto en tu directorio de inicio errores.txt con un informe. Si todavía hay cosas malas, es recomendable marcarlas para que el sistema no acceda a ellas mientras trabaja con el disco. Para marcar sectores defectuosos, ejecute el comando:

sudo e2fsck -l errores.txt /dev/sdb1

Llave -l permite que el programa utilice el archivo errores.txt para trabajar con sectores defectuosos. Pero puedes evitar los dos comandos anteriores y ejecutar solo uno:

sudo e2fsck -ct /dev/sdb1

El programa e2fsck es parte del paquete de software E2fsprogs, que incluye badblock y la clave -do permite utilizar la utilidad badblock para buscar sectores defectuosos.

Para verificar el sistema de archivos (ext 2/ext 3/ext 4), ejecute el siguiente comando:

e2fsck -y /dev/partition de su disco o de todo el disco

Llave -y le dice a la utilidad que responda todas las preguntas positivamente.

Otras opciones comúnmente utilizadas:

-Pensilvania"Repara" automáticamente el sistema de archivos sin hacer preguntas.
-F cheque forzado (forzado). La verificación se realizará en cualquier caso, incluso si el sistema de archivos no la necesita.
-do lanza el programa badblocks para buscar y marcar sectores "malos" en el disco;
-v se mostrará información detallada sobre la verificación.

Aunque se puede utilizar fsck en lugar de e2fsck. Pero cada uno es libre de elegir lo que le resulte mejor o más conveniente.

Programa de discos.

Ubuntu tiene un gran programa. Discos, que proporciona información sobre todos los dispositivos conectados en el sistema (discos duros, unidades flash, unidades de CD/DVD, etc.). Al ejecutarlo, puede encontrar los datos S.M.A.R.T. en el disco de interés.

Programa GSmartControl

Y finalmente quiero recomendar el programa. GSmartControl, que es una interfaz gráfica de usuario (GUI) para programa de consola— inteligentectl. Puede encontrarlo en el Centro de aplicaciones de Ubuntu o instalarlo a través de la Terminal con el comando:

sudo apt-get instalar gsmartcontrol

El programa muestra información completa según S.M.A.R.T. Puedes conocer más sobre cada artículo. .

Bueno, has aprendido cómo comprobar un disco duro en Linux. ¡Que esta información te sirva! ¡Buena suerte!

Si hay algo que realmente no desea encontrar en su sistema operativo, es definitivamente la falla inesperada de sus discos duros. Con la tecnología de respaldo y almacenamiento RAID, puede recuperar todos sus datos muy rápidamente, pero perder un dispositivo de hardware puede tener un gran impacto en su presupuesto, especialmente si no lo planeó.

Para evitar este tipo de problemas, puede utilizar smartmontools. Es un paquete de software para administrar y monitorear dispositivos de almacenamiento utilizando tecnología de informes y análisis de autocontrol o simplemente SMART.

La mayoría de los dispositivos de almacenamiento ATA/SATA, SCSI/SAS modernos proporcionan una interfaz SMART. El propósito de SMART es monitorear la confiabilidad del disco duro para identificar diversos errores y responder de manera oportuna si ocurren. Smartmontools consta de dos utilidades: smartctl y smartd. Juntos proporcionan un poderoso sistema de monitoreo y advertencia para posibles fallas del disco duro en Linux. A continuación, veremos en detalle cómo comprobar un disco duro de Linux.

El paquete smartmontools está disponible en los repositorios oficiales de la mayoría Distribuciones de Linux, por lo que la instalación se reduce a ejecutar un comando. En Debian y sistemas basados ​​en Debian, ejecute:

aptitud instalar smartmontools

Y para Red Hat:

mmm instalar smartmontools

Ahora puede proceder a diagnosticar su disco duro Linux.

Comprobando el disco duro en smartctl

Primero, averigüe qué discos duros están conectados a su sistema:

ls -l/dev | grep -E "sd|hd"

La salida será algo como esto:

Aquí, sdx es el nombre del dispositivo HDD conectado a la computadora.

Para mostrar información sobre un disco duro específico (modelo de dispositivo, S/N, versión de firmware, versión ATA, disponibilidad de interfaz SMART) Ejecute smartctl con la opción de información y el nombre del disco duro. Por ejemplo, para /dev/sda:

smartctl --info /dev/sda

Si bien es posible que no prestes atención a la versión ATA, es uno de los factores más importantes a la hora de buscar un dispositivo de reemplazo. Cada nueva versión ATA es compatible con los anteriores. Por ejemplo, los dispositivos ATA-1 y ATA-2 antiguos funcionarán bien en interfaces ATA-6 y ATA-7, pero no al revés. Cuando las versiones ATA del dispositivo y la interfaz no coinciden, las capacidades del hardware no se aprovecharán plenamente. En este caso, es mejor elegir un disco duro ATA-7 para reemplazarlo.

Lanzamiento control duro disco de ubuntu usando el comando:

smartctl -s en -a /dev/sda

Aquí está la opción -s enciende la bandera SMART en el dispositivo especificado. Puede eliminarlo si la compatibilidad con SMART ya está habilitada. La información del disco se divide en varias secciones en la sección. LEER DATOS INTELIGENTES contiene información general sobre el estado del disco duro.

INICIO DE LA SECCIÓN DE LEER DATOS INTELIGENTES ===
Resultado de descanso de la autoevaluación SMART de salud general: APROBADO

Esta prueba se puede pasar ( APROBADO) O no ( FALLIDO). En este último caso, el fracaso es inevitable, comience respaldo datos de este disco.

Lo siguiente que puede consultar cuando necesite diagnósticos de HDD en Linux es la tabla de atributos SMART.

La tabla SMART registra los parámetros definidos para un disco específico por el desarrollador, así como el umbral de falla para estos parámetros. La tabla se completa automáticamente y se actualiza según el firmware del disco.

  • IDENTIFICACIÓN#- ID de atributo, normalmente un número decimal entre 1 y 255;
  • ATRIBUTO_NOMBRE- Nombre del atributo;
  • BANDERA- indicador de procesamiento de atributos;
  • VALOR- Este campo representa el valor normal para el estado de este atributo en el rango de 1 a 253, 253 es el mejor estado, 1 es el peor. Dependiendo de las propiedades, el valor inicial puede ser de 100 a 200;
  • EL PEOR- el peor valor de todos los tiempos;
  • TRILLAR- el valor más bajo, después de pasarlo debe informar que el disco no es apto para su uso;
  • TIPO- tipo de atributo, puede ser Pre-fall o Old_age. Todos los atributos se consideran críticos de forma predeterminada, es decir, si el disco no pasa la prueba para uno de los atributos, entonces ya se considera FALLADO, pero los atributos old_age no son críticos;
  • ACTUALIZADO- muestra la frecuencia de actualización de atributos;
  • CUANDO_FAILED- se establecerá en FAILING_NOW si el valor del atributo es menor o igual que THRESH, o en "-" si es mayor. En el caso de FAILING_NOW, es mejor realizar una copia de seguridad lo antes posible, especialmente si el tipo de atributo es Pre-fallo.
  • RAW_VALUE- valor determinado por el fabricante.

Ahora estás pensando, sí smartctl buena herramienta, pero no tengo la capacidad de ejecutarlo manualmente cada vez, sería bueno automatizar todo esto para que el programa se ejecute periódicamente y me informe sobre los resultados del análisis. Y esto es posible usando smartd.

Configuración de smartd y smartctl para diagnóstico y monitoreo en tiempo real

Los diagnósticos de disco duro en tiempo real en Linux son muy fáciles de configurar. Primero edite el archivo de configuración de smartd: /etc/smartd.conf. Agregue la siguiente línea:

nano /etc/smartd.conf

/dev/sda -m [correo electrónico protegido]-M prueba

  • -metro - dirección de correo electrónico para enviar los resultados de la verificación. Puede ser una dirección de usuario local, una dirección de superusuario o una dirección externa si el servidor está configurado para enviar correo electrónico;
  • -METRO- frecuencia de envío de cartas. una vez: envíe solo un mensaje sobre problemas de disco. a diario- enviar mensajes todos los días si se encuentra un problema. menguante- enviar mensajes cada dos días si se descubre un problema. prueba- enviar un mensaje de prueba al iniciar smartd. ejecutivo- realiza el programa especificado al lugar donde se envía el correo.

Guarde los cambios y reinicie smartd. deberías seguir adelante correo electrónico una carta como esta:

También puedes programar pruebas según tu cronograma, para ello usa la opción -s y una expresión regular como "T/MM/DD/DN/HH", donde:

  • t- tipo de prueba:
  • l- prueba larga;
  • S- prueba corta;
  • do- prueba de movimiento (ATA);
  • oh- fuera de línea (prueba).

Los caracteres restantes determinan la fecha y hora de la prueba:

  • MM- mes del año;
  • DD- día del mes;
  • S.S- hora del día;
  • DN- día de la semana (de 1 - lunes 7 - domingo;
  • MM, DD y HH- indicado con dos dígitos decimales.

El punto lo significa todo valores posibles, la expresión entre corchetes (A|B|C) significa una de tres opciones, la expresión entre corchetes significa un rango (de 1 a 5).

Por ejemplo, para realizar un análisis completo de su disco duro Linux todos los días laborables a la 1:00 p. m., agregue la siguiente línea a smartd.conf:

DISPOSITIVOSCAN -s (L /../../ / 13)

Conclusiones

Si desea comprobar rápidamente la mecánica atarearse disco, ver su estado físico o realizar un escaneo más o menos completo de la superficie del disco, utilice smartmontools. No olvides escanear regularmente, lo agradecerás más tarde. ¿Has hecho esto antes? ¿Lo harás? ¿O utilizas otros métodos? ¡Escribe en los comentarios!

Fuente de traducción.