¿Cómo ejecutar un checkdisk?


84

Sospecho que puede haber un sector defectuoso en un disco. Usé el sistema de archivos ext3.

¿Qué herramienta es el mejor equivalente de la herramienta de comprobación de errores de Windows?


@PabloBianchi: Esa pregunta tiene exactamente el mismo alcance. Los estoy marcando para un mod para fusionarlos.
David Foerster

Respuestas:


101

Discos

Para verificar si hay sectores defectuosos, verifique los datos SMART, probablemente los mejores accesibles al iniciar la utilidad Discos ( Palimpsest ). Incluso si no ve ningún bloque malo allí, inicie una autocomprobación para asegurarse.

El programa está incluido en el gnome-disk-utilitypaquete. corrergksudo gnome-disks

INTELIGENTE de Palimpsest

O en la versión Ubuntu 16.04 (3.18):

INTELIGENTE de los discos

Badblocks

También puedes usar badblocks

sudo badblocks -sv /dev/sda

solo para verificar, o para verificar y corregir primero, escriba el resultado en un archivo temporal:

sudo badblocks -sv /dev/sda  > bad-blocks-result
sudo fsck -t ext4 -l bad-blocks-result /dev/sda1

comprobará todo el disco e imprimirá todos los bloques defectuosos encontrados en / dev / sda .

Del badblocksmanual:

Nota importante: si la salida de badblocks se va a alimentar a los programas e2fsck o mke2fs, es importante que el tamaño del bloque se especifique correctamente, ya que los números de bloque que se generan dependen mucho del tamaño de bloque utilizado por el sistema de archivos . Por esta razón, se recomienda encarecidamente que los usuarios no ejecuten bloques malos directamente, sino que usen la opción -c de los programas e2fsck y mke2fs.

fsck

fscken sí mismo no lo ayudará a encontrar sectores defectuosos, peor aún, si hay muchos sectores defectuosos, puede dañar sus datos aún más. Úselo solo cuando el disco esté sano.


1
En realidad, el manual de badblocks desalienta su uso directo y dirige a los usuarios a e2fsck con la opción "-c" (para verificación de solo lectura) o "-cc" (para verificación de lectura, escritura).
mrówa

2
como nota, el 13.04 ejecuta palimpsest simplemente ejecutando "discos" desde el menú de ubuntu, sin embargo ... No veo una opción para iniciar una autocomprobación (posiblemente porque solo tengo una unidad, y es la que se está ejecutando Ubuntu ...)
rogerdpack

2
@ mrówa, el manual solo dice que haga eso si "la salida de badblocks se va a alimentar a los programas e2fsck o mke2fs"
Jon

1
Ponga información que para enumerar todos los discos use sudo fdisk -l
Kangarooo

2
ahora se llama gnome-disks
endolith el

74

A lo largo de esta respuesta, supondré que una unidad de almacenamiento aparece como un dispositivo de bloque en la ruta /dev/sdc. Para encontrar la ruta de una unidad de almacenamiento en nuestra configuración actual, use:

  • Discos Gnome Instalar discos de gnomo (anteriormente Gnome Disk Utility, también conocido palimpsest), si hay una GUI disponible, o
  • en el terminal, mire la salida de lsblke ls -l /dev/disk/by-ide intente encontrar el dispositivo correcto por tamaño, partición, fabricante y nombre del modelo.

Control básico

  • solo detecta medios que no responden
  • casi instantáneo (a menos que el medio se hunda o se rompa)
  • seguro
  • funciona en medios de solo lectura (por ejemplo, CD, DVD, BluRay)

A veces, un medio de almacenamiento simplemente se niega a funcionar. Todavía aparece como un dispositivo de bloque para el kernel y en el administrador de discos, pero su primer sector que contiene la tabla de particiones no es legible. Esto se puede verificar fácilmente con:

sudo dd if=/dev/sdc of=/dev/null count=1

Si este comando da como resultado un mensaje sobre un "error de entrada / salida", nuestro disco está dañado o no puede interactuar con el núcleo de Linux como se esperaba. En el primer caso, con un poco de suerte, un especialista en recuperación de datos con un laboratorio debidamente equipado puede rescatar su contenido. En el último caso, vale la pena probar un sistema operativo diferente. (Me he encontrado con unidades USB que funcionan en Windows sin controladores especiales, pero no en Linux u OS X).

Autoevaluación INTELIGENTE

  • minuciosidad ajustable
  • instantáneo a lento o más lento (depende de la minuciosidad de la prueba)
  • seguro
  • advierte sobre posibles fallas en el futuro cercano

Los dispositivos que lo admiten pueden consultarse sobre su estado de salud a través de SMART o recibir instrucciones para realizar autocomprobaciones de integridad de minuciosidad diferente. Esta es generalmente la mejor opción, pero generalmente solo está disponible en discos duros (no antiguos) y unidades de estado sólido. La mayoría de los medios flash extraíbles no lo admiten.

Más recursos e instrucciones:

Cheque de solo lectura

  • solo detecta algunos errores de medios flash
  • bastante confiable para discos duros
  • lento
  • seguro
  • funciona en medios de solo lectura (por ejemplo, CD, DVD, BluRay)

Para probar la integridad de lectura de todo el dispositivo sin escribir en él, podemos usar badblocks(8)así:

sudo badblocks -b 4096 -c 4096 -s /dev/sdc

Esta operación puede llevar mucho tiempo, especialmente si la unidad de almacenamiento está realmente dañada. Si el recuento de errores aumenta por encima de cero, sabremos que hay un bloqueo incorrecto. Podemos abortar la operación de manera segura en cualquier momento (incluso con fuerza como durante una falla de energía), si no estamos interesados ​​en la cantidad exacta (y tal vez la ubicación) de los bloques defectuosos. Es posible abortar automáticamente en caso de error con la opción -e 1.

Nota para el uso avanzado: si queremos reutilizar la salida para e2fsck, necesitamos establecer el tamaño del bloque ( -b) al del sistema de archivos contenido. También podemos ajustar la cantidad de datos ( -cen bloques) probados a la vez para mejorar el rendimiento; 16 MiB debería estar bien para la mayoría de los dispositivos.

Comprobación de lectura y escritura no destructiva

  • muy minucioso
  • el más lento
  • bastante seguro (salvo una falla de energía o pánico intermitente del kernel)

A veces, especialmente con medios flash, solo se produce un error al intentar escribir. (Esto no descubrirá de manera confiable los medios (flash), que anuncian un tamaño mayor que el que realmente tienen; use Fight Flash Fraud en su lugar).

  • ¡NUNCA use esto en una unidad con sistemas de archivos montados ! badblocksse niega a operar en esos de todos modos, a menos que lo fuerce.

  • ¡No interrumpas esta operación con fuerza ! Ctrl+ C(SIGINT / SIGTERM) y esperar una terminación prematura elegante está bien, pero killall -9 badblocks(SIGKILL) no lo está. Tras una terminación forzada badblocks, no se puede restaurar el contenido original del rango de bloques actualmente probado y se sobrescribirá con datos basura y posiblemente dañará el sistema de archivos.

Para usar comprobaciones de lectura-escritura no destructivas, agregue la -nopción al badblockscomando anterior .

Control destructivo de lectura y escritura

  • muy minucioso
  • más lento
  • BORRA TODOS LOS DATOS EN LA UNIDAD

Como arriba, pero sin restaurar el contenido de la unidad anterior después de realizar la prueba de escritura, por lo tanto, es un poco más rápido. Como los datos se borran de todos modos, la terminación forzada permanece sin consecuencias negativas (adicionales).

Para usar verificaciones destructivas de lectura y escritura, agregue la -wopción al badblockscomando anterior .


43

fsck: comprueba y repara un sistema de archivos Linux. Invocarlo usando

fsck /dev/sda1

donde / dev / sda1 es la unidad que desea verificar. Ver 'man fsck' para más detalles.

También hay un comando 'badblocks' que comprueba un dispositivo en busca de bloques defectuosos.

La unidad debe desmontarse cuando se verifica, por lo que para verificar la partición raíz, debe crear un archivo 'forcefsck' en la raíz de la partición y reiniciar. El dispositivo se verificará en el próximo arranque:

sudo touch /forcefsck
sudo reboot

Alternativamente, puede iniciar desde un Live CD y ejecutar la verificación desde allí.


Gracias, la máquina está funcionando sin monitor, ¿hay alguna forma de acceder a la salida de la verificación después del reinicio?
Guillaume Coté

Creé el archivo y lo reinicié, pero fue realmente rápido y no hay nada nuevo en boot.log.
Guillaume Coté

fsck solo hace una verificación muy rápida, probé la opción -c para verificar el bloque defectuoso.
Guillaume Coté

fsck -c acaba de decir: / dev / sda9: Actualizando el inodo de bloque incorrecto. No tengo información sobre cuántos nodos malos y qué proporción del sistema de archivos representan.
Guillaume Coté

sudo dumpe2fs -b /dev/sda9. Pero creo que es mejor si el disco se ocupa de los sectores defectuosos, no del sistema de archivos (SMART, bloques defectuosos, etc., vea mi publicación).
organizar el

20

bloques defectuosos

Puede verificar si hay bloques defectuosos ejecutando el comando

  1. sudo badblocks -nsv /dev/[device-partition] > bad-blocks-resultpara una prueba de lectura-escritura no destructiva. Eso generará un archivo llamado bad-blocks-resultcon los sectores dañados.
    • -n Usar el modo de lectura-escritura no destructivo. Por defecto, solo se realiza una prueba no destructiva de solo lectura.

    • -s Muestra el progreso de la exploración escribiendo un porcentaje aproximado de finalización del paso de bloques defectuosos actuales sobre el disco.

    • -v Modo detallado.

  2. Luego, puede ejecutar sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]para decirle al sistema de archivos dónde están los sectores defectuosos y alejar los datos de ellos, si es posible.

Puede encontrar más información al respecto aquí .


1
Para continuar con badblocks fuera de plazo o si se olvidó de exportar el sector defectuoso en un archivo de texto (como yo) esta respuesta le ayudará a: superuser.com/a/693000/218025
chelder

¿Puedo usar badblocks para verificar mi partición de Windows? ¿O de alguna manera puede dañarlo?
Privado

1
@Private Si tiene una nueva pregunta, utilice el enlace "Hacer una pregunta" en la parte superior.
John

El fsckcomando falla con btrfslos sistemas de archivos.
Luís de Sousa

20

smartctl

IMO smartctl es una herramienta mejor. Probablemente tengas que instalarlo primero

sudo apt-get install smartmontools 

Entonces

sudo smartctl -a /dev/sda | less

para imprimir datos de estado de la unidad, atributos y resultados de pruebas disponibles. Para dejar de fumar menos, escriba q. Alternativamente

sudo smartctl -H /dev/sda

simplemente imprimir datos de salud.

Para comenzar una nueva prueba automática corta (unos minutos) o larga (hasta muchas horas) en segundo plano:

sudo smartctl -t [short|long]

GSsmartControl ( página de inicio ) y Gnome Disks son interfaces gráficas si lo prefiere.

Ver también


55
Gran solución, si el dispositivo es compatible con SMART. Muchas unidades flash extraíbles (baratas) y discos duros muy antiguos no lo hacen.
David Foerster

Inicialmente me quedé perplejo cuando me smartctlinformaron: "Puente USB desconocido", "Especifique el tipo de dispositivo con la opción -d". Encontré los datos que necesitaba en: smartmontools.org/wiki/Supported_USB-Devices .
nobar 01 de

10

F3 (Fight Flash Fraud) es otra opción que también debe detectar unidades flash falsas (unidades flash cuya capacidad real es una fracción de la capacidad anunciada):

  1. Instalar F3

    sudo apt install f3
    
  2. Inserta tu disco

  3. Escriba los datos de prueba en el espacio libre en la unidad (verifique dónde está montada su unidad lsblk)

    f3write /media/$USER/D871-DD7C/
    
  4. Lee los datos de prueba

    f3read /media/$USER/D871-DD7C/
    

Referencia:

Badblocks funciona bien, pero no está diseñado para detectar unidades flash falsas y es posible que no informe de ningún error .


badblockscon -wo con los fscksectores marcados como defectuosos / dañados para que no se usen. ¿f3 puede devolver algo como Corrupted: 16.01 MB (32784 sectors), pero los marca como sectores defectuosos? ¿O todavía necesitamos bloques malos para eso? Estoy tratando condumpe2fs -b y parece ID no marca.
Pablo A

4

Puede probar y leer todo el disco, mientras muestra un indicador de progreso:

time sudo pv /dev/sdc >/dev/null

Ciertos problemas de disco se manifestarían como errores de E / S informados. Esto es un poco mejor que dddebido al indicador de progreso y porque la interfaz de línea de comandos es un poco más estándar y un poco menos propensa a errores tipográficos . Tenga en cuenta que pves básicamente una versión mejorada de cat. Es posible que no se instale de manera predeterminada, pero se puede instalar con sudo apt-get install pv.

Un enfoque similar es leer el disco con una de las varias herramientas disponibles que son específicamente conscientes de los errores de E / S del disco, y tienen la característica de "esforzarse por rescatar datos". Buscar ddrescueen el administrador de paquetes.


Esto no detectará problemas que aparezcan solo durante el acceso de escritura y no informará la región afectada del medio de almacenamiento que uno tendría que solucionar o solucionar el problema. dd count=1También es bastante rápido a menos que el medio de almacenamiento esté completamente roto (o no sea compatible).
David Foerster

Ver también:ddrescueview
nobar

Dado que GNU Coreutils 8.24+ ddtiene un indicador de progreso con status=progress.
Pablo A

1

Si tiene una partición que NO PUEDE PERDER LOS DATOS, siga estos pasos

  1. Determine qué partición desea verificar si hay un sector defectuoso utilizando

$fdisk -l commnd

Supongamos que la partición para verificar se llama / dev / sdPTC (partición para verificar) y que tiene otra partición para almacenar los resultados montados en la carpeta / scan / resultPath /

2. Entonces puedes ejecutar este comando

$sudo badblocks -v /dev/sdPTC > /scan/resultPath/badsectors.txt

que determinará cuáles son los bloques defectuosos del dispositivo dado y los almacenará en un archivo llamado badsectors.txt

  1. Ahora puede usar el fsckcomando para decirle a Ubuntu que no use los sectores defectuosos mencionados en el archivo badsectors.txt.

$sudo fsck -l /scan_result/badsectors.txt /dev/sda

De esa forma, la vida útil del disco duro aumenta un poco hasta que obtenga uno nuevo para reemplazarlo.


Si tiene una partición completa que desea verificar en busca de sectores físicos defectuosos y PUEDE PERMITIR PERDER TODOS LOS DATOS en esa partición o está VACÍA, siga estos pasos

  1. $sudo apt-get install gnome-disk-utility

  2. $sudo gnome-disks

  3. Verifique y vuelva a verificar que no haya datos importantes en esa partición

  4. Usando gnome-disksDELETE / REMOVE la partición a mano usando el signo "-"

  5. Usando gnome-disksCREATE una nueva partición y selecciona la opción "lenta" que verificará el espacio dado para errores

ingrese la descripción de la imagen aquí


¿Importa qué versión de Ubuntu es? ¿ bionic beaverManeja las comprobaciones de disco de manera diferente?
Gabriel Fair

No he probado este proceso en esa versión.
Mauricio Gracia Gutiérrez
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.