Actualizar

Actualizar

He tenido problemas con el disco duro en Ubuntu 18.04 donde el sistema vuelve a montar aleatoriamente mi partición raíz (/dev/sda4) como de solo lectura debido a errores.

dmesg|grep 'I/O error'revela problemas obvios con sda4. No tengo el resultado exacto en este momento ya que la caja se reinició exitosamente y no tiene problemas en este momento.

Mi plan era ejecutar una verificación del sistema de archivos. Seguíesta respuestaasí comoeste tutorialcon cuidado. En el último tutorial utilicé la sección titulada: "Cómo forzar a fsck a verificar el sistema de archivos después de reiniciar el sistema en Linux cuando se usa systemd"

Sin embargo, después de reiniciar, el sistema de archivos NO se verifica como lo revela el resultado de este comando:

tune2fs -l /dev/sda4 | grep checked             
Last checked:             Sat Nov 21 15:36:56 2020

Probé estas variaciones de GRUB CMDLINE pero no tuvieron éxito:

GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity fsck.mode=force"

y

GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity fsck.mode=force fsck.repair=yes"

Y sí, corrí update-grub. ¿Qué me estoy perdiendo?

Salida de smartctl -a /dev/sda:

Device Model:     Samsung SSD 860 EVO 250GB
Serial Number:    S59WNG0MA22770K
LU WWN Device Id: 5 002538 e70265a2a
Firmware Version: RVT03B6Q
User Capacity:    250,059,350,016 bytes [250 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      2.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   Unknown(0x09fc), ACS-4 T13/BSR INCITS 529 revision 5
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Wed May  3 11:35:14 2023 MST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                                        was never started.
                                        Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever 
                                        been run.
Total time to complete Offline 
data collection:                (    0) seconds.
Offline data collection
capabilities:                    (0x53) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        No Offline surface scan supported.
                                        Self-test supported.
                                        No Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine 
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        (  85) minutes.
SCT capabilities:              (0x003d) SCT Status supported.
                                        SCT Error Recovery Control supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   038   038   010    Pre-fail  Always       -       311
  9 Power_On_Hours          0x0032   095   095   000    Old_age   Always       -       21420
 12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       14
177 Wear_Leveling_Count     0x0013   001   001   000    Pre-fail  Always       -       2041
179 Used_Rsvd_Blk_Cnt_Tot   0x0013   100   100   010    Pre-fail  Always       -       0
181 Program_Fail_Cnt_Total  0x0032   100   100   010    Old_age   Always       -       0
182 Erase_Fail_Count_Total  0x0032   100   100   010    Old_age   Always       -       0
183 Runtime_Bad_Block       0x0013   038   038   010    Pre-fail  Always       -       311
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0032   067   065   000    Old_age   Always       -       33
195 Hardware_ECC_Recovered  0x001a   200   200   000    Old_age   Always       -       0
199 UDMA_CRC_Error_Count    0x003e   100   100   000    Old_age   Always       -       0
235 Unknown_Attribute       0x0012   099   099   000    Old_age   Always       -       10
241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       166281511800

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
  256        0    65535  Read_scanning was never started
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

ACTUALIZAR:

El servidor volvió a fallar esta mañana (aún está activo pero /está montado como de solo lectura) y esto es lo que veo en dmesg:

dmesg |grep sda

[70547.166349] sd 0:0:0:0: [sda] tag#13 FAILED Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[70547.166354] sd 0:0:0:0: [sda] tag#13 CDB: ATA command pass through(16) 85 06 2c 00 00 00 00 00 00 00 00 00 00 00 e5 00
[70948.441912] sd 0:0:0:0: [sda] tag#15 FAILED Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[70948.441918] sd 0:0:0:0: [sda] tag#15 CDB: Read(10) 28 00 1a cb 1c 00 00 00 08 00
[70948.441922] print_req_error: I/O error, dev sda, sector 449518592
[70948.442312] sd 0:0:0:0: [sda] tag#16 FAILED Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[70948.442315] sd 0:0:0:0: [sda] tag#16 CDB: Read(10) 28 00 1a cb 1c 00 00 00 08 00
[70948.442316] print_req_error: I/O error, dev sda, sector 449518592
[70948.442955] sd 0:0:0:0: [sda] tag#17 FAILED Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[70948.442960] sd 0:0:0:0: [sda] tag#17 CDB: Read(10) 28 00 0e 0b 03 08 00 00 20 00
[70948.442962] print_req_error: I/O error, dev sda, sector 235602696
[70948.443389] sd 0:0:0:0: [sda] tag#18 FAILED Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[70948.443393] sd 0:0:0:0: [sda] tag#18 CDB: Read(10) 28 00 0e 0b 03 08 00 00 08 00
[70948.443396] print_req_error: I/O error, dev sda, sector 235602696
[72347.211525] sd 0:0:0:0: [sda] tag#19 FAILED Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[72347.211531] sd 0:0:0:0: [sda] tag#19 CDB: ATA command pass through(16) 85 06 2c 00 00 00 00 00 00 00 00 00 00 00 e5 00
[74147.255746] sd 0:0:0:0: [sda] tag#21 FAILED Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[74147.255752] sd 0:0:0:0: [sda] tag#21 CDB: ATA command pass through(16) 85 06 2c 00 00 00 00 00 00 00 00 00 00 00 e5 00
[75947.299631] sd 0:0:0:0: [sda] tag#23 FAILED Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[75947.299637] sd 0:0:0:0: [sda] tag#23 CDB: ATA command pass through(16) 85 06 2c 00 00 00 00 00 00 00 00 00 00 00 e5 00
[77747.345291] sd 0:0:0:0: [sda] tag#25 FAILED Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[77747.345297] sd 0:0:0:0: [sda] tag#25 CDB: ATA command pass through(16) 85 06 2c 00 00 00 00 00 00 00 00 00 00 00 e5 00
[79547.389376] sd 0:0:0:0: [sda] tag#27 FAILED Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[79547.389382] sd 0:0:0:0: [sda] tag#27 CDB: ATA command pass through(16) 85 06 2c 00 00 00 00 00 00 00 00 00 00 00 e5 00
[81347.432593] sd 0:0:0:0: [sda] tag#29 FAILED Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
[81347.432598] sd 0:0:0:0: [sda] tag#29 CDB: ATA command pass through(16) 85 06 2c 00 00 00 00 00 00 00 00 00 00 00 e5 00

Me doy cuenta de que es necesario reemplazar la unidad, pero mi objetivo es simplemente ejecutarla fscken la partición raíz.

Respuesta1

No sé cómo forzar el fsck usando la solución que estás probando, pero puedo sugerir una solución alternativa:

Utilice tune2fsy limite el valor a remontajes muy bajos y marcas de tiempo muy bajas.

# To see current settings
sudo tune2fs -l /dev/sda4
# To alter it
sudo tune2fs -c 1 -i 1d /dev/sda4 

Esto forzará el cheque cada 1 reinicio o cada 1 día desde el último cheque, lo que suceda antes.

Verificar INTELIGENTE

Como han dicho otros, esto es sólo una curita para los problemas de HW. A veces el disco duro se está muriendo, otras veces es un problema de hardware no relacionado (realice una prueba de memoria), en otras ocasiones es solo un cable SATA suelto (desconéctelo y conéctelo nuevamente desde ambos extremos, si eso no lo soluciona, pruebe con otro cable). .

Tenga cuidado, en el peor de los casos, la fuente de alimentación no funciona correctamente y está dañando el resto del hardware (en tal caso, reemplazar el disco duro solo solucionará el problema temporalmente porque con el tiempo la fuente de alimentación dañará el nuevo disco duro). Verifique que los voltajes estén dentro de niveles aceptables.

Publicar el resultado de smart:

sudo smartctl -a /dev/sda

Puede ayudar a diagnosticar lo que podría estar pasando.

Actualizar

Tampoco sé por qué no puedes ejecutar fsck a través de tune2fs.

Pero vi tu SMART. Según él, su disco está envejeciendo, pero parece estar en buen estado.

El problema puede estar en otra parte, como en el cable SATA.

Si no puede hacer que fsck funcione, entonces todo lo que puedo sugerir es iniciar desde un liveUsb y ejecutar el comando manualmente.

Actualización 2

OK, publicaste los mensajes dmseg.Tenemos información contradictoria procedente de SMART & OS., así que lo escribiré en detalle.

Bloques malos

SMART dice que sus unidades tienen bloques defectuosos. Esto es normal en cualquier SSD a medida que envejece.y la unidad reasignará los datos en bloques de repuesto. Una vez que se agota el repuesto, es necesario reemplazar la unidad.

SMART dice que la cantidad de bloques defectuosos está dentro de lo "normal": Los atributos más importantes que se pueden ver aquí son Reallocated_Sector_Cty Runtime_Bad_Block.

Dice que detectó 311 bloques defectuosos y reasignó 311 a repuesto. Esto es bueno. Si hubo 311 bloques defectuosos pero solo 310 reasignaciones, significa que los datos de uno de los bloques se perdieron.

Lo importante es el valor "normalizado" (038). Así te dice el fabricante lo que considera normal.

Un valor donde 100 significa perfecto y 0 significa realmente malo. Ahora mismo es 38, que es decir "esto se está poniendo mal"; pero el fabricante dice que está bien siempre que ese valor esté por encima de 010 (el UMBRAL).

Aquí tenemos nuestra primera información contradictoria: Used_Rsvd_Blk_Cnt_Totdice que la reserva no ha sido tocada en absoluto, a pesar de tener bloques defectuosos. No cuadra.

Pero no me sorprendería que el firmware simplemente no rastree este valor a pesar de informarlo, por lo que lo ignoraremos por ahora.

Nivelación de desgaste

Este es el atributo más problemático de leer. Wear_Leveling_Countdice que es 001. Normalmente un valor de 1 significa que su unidad está muerta y debe ser reemplazada lo antes posible.

Significa que se le acabaron los bloques de repuesto. Pero ha habido errores de firmware en los que este atributo se informa al revés, y un valor de 1 significa que la unidad tiene un estado de funcionamiento del 99 %.

Usando uncalculadora de TBWInserté su número de LBA escritos + tamaño de sector 512 y obtuve que su unidad tiene 77,43 TiB escritos. Según Google, su modelo debería tener 150 TBW, por lo quedeberíaseguir siendo viable.

Me temo que la mejor solución aquí es abrir un cuadro de Windows y ejecutarCrystalDiskInfoque tiene en cuenta estos errores de firmware (utilizando una base de datos interna) y le informará una evaluación de salud muy precisa.

Dado que su inteligencia dice que SMART overall-health self-assessment test result: PASSEDme inclino a creer que quiere decir 99%, en lugar de 1%.

Pero si me equivoco podemos detenernos aquí, hay que reemplazar el disco.

Problemas de cables/Problemas de placa base

Los errores en dmesg de Linux básicamente dicen que intentó leer un sector y obtuvo datos incorrectos.

El kernel incluso dice que intentó leer el sector 235602696 dos veces y obtuvo datos diferentes:

  • 28 00 0e 0b 03 08 00 002000
  • 28 00 0e 0b 03 08 00 000800.

Si el disco dice que no hay errores pero el sistema operativo dice que sí; luego los datos se corrompieron durante el tránsito. Normalmente esto indica:

  • El cable SATA está flojo
  • El cable SATA está dañado
  • El cable de alimentación está flojo
  • El cable de alimentación está dañado
  • Fallo del bus de la placa base
  • Fallo de la fuente de alimentación
  • Fallo de RAM

Pero aquí es donde tenemosnuestra segunda fuente de información contradictoria: UDMA_CRC_Error_Countes 0.

Esto significa que el disco nunca detectó un solo error causado por un cable defectuoso/suelto o un bus de la placa base defectuoso.

Esto es muy improbable. SMART dice que el disco está bien, los comandos que llegan desde el sistema operativo al disco nunca se corrompen por un cableado defectuoso; sin embargo, el sistema operativo leyó el mismo sector dos veces y obtuvo un byte diferente.

Lo único que se me ocurre que haría esto posible es si tienes mala RAM.O un problema de cable extremadamente improbable en el que todos los datos que entran en el disco nunca se corrompen, pero los datos que salen sí se corrompen.

Curso de acción

Mi instinto me dice que el disco está defectuoso. Pero:

  1. Haga una copia de seguridad de todos los datos en otro disco. En una ejecución LiveUSB (y una unidad USB externa lo suficientemente grande):
sudo apt install zstd

# To backup
sudo zstd -16v < /dev/sda > /media/external_disk/backup_file.zst

# To restore (don't do that on step 1, see step 5)
sudo zstdcat -v /media/external_disk/backup_file.zst > /dev/sda
  1. Haga una copia de seguridad de los datos nuevamente, pero esta vez con solo una copia normal de los archivos (si el disco muere, es mucho más fácil recuperarse de una copia de seguridad simple que intentar montar en bucle una imagen zstd comprimida de un disco y leer los archivos de ella).
  2. Reinicie y ejecute una prueba de memoria para descartar errores de RAM
  3. Apague, abra la carcasa y desconecte y vuelva a enchufar los cables SATA y de alimentación (a la unidad). Comprueba que no estén dañados. Posiblemente reemplazarlos.
  4. Inicie nuevamente en la unidad LiveUSB y realice un borrado seguro del disco. Si hay algún problema con su unidad, tal vez esto la restablezca a una condición de funcionamiento (o tal vez resulte en el último comando que se ejecuta si el disco no se puede salvar). Esto debería tomar varios minutos:
sudo blkdiscard -s /dev/sda
  1. Si todo ha ido bien hasta ahora, restaure su copia de seguridad con el sudo zstdcatcomando del paso 1.

Si el disco aún tiene problemas y memtest tuvo éxito, entonces personalmente consideraría que el disco está defectuoso.

No podemos ignorar que un valor de 038 Reallocated_Sector_Ctsignifica que las cosas se están poniendo mal, a pesar de que el fabricante diga que todavía no está "tan mal".

¡Ah! Importante: Si en algún momento dejaste el disco apagado por más de 3 meses; Este escenario es bastante posible. A pesar de la creencia popular, las celdas NAND pueden perder su capacidad de almacenamiento si se dejan sin alimentación durante demasiado tiempo ("demasiado tiempo" puede oscilar entre 7 días y 7 años; pero el caso más común es 3 meses). Especialmente si son viejos.

Si esto le sucedió a usted, simplemente realice los pasos anteriores: haga una copia de seguridad de los datos, borre el disco de forma segura y restaure la copia de seguridad.

Buena suerte.

información relacionada