Después de un apagado sucio en un dispositivo basado en una tarjeta SD, llevé la tarjeta SD al fsck
sistema de archivos raíz. Esto llevó a variaciones en lo siguiente:
e2fsck 1.43.1 (08-Jun-2016)
/dev/sdc2: recovering journal
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? no
Clear journal<y>? no
e2fsck: unable to set superblock flags on /dev/sdc2
Aquí he respondido "no" las dos veces, pero no hay una secuencia de sí / no que no conduzca inmediatamente al mismo resultado.
El sistema de archivos se puede montar y en la inspección casual parece estar bien; también funciona bien en el dispositivo, y ese es el sistema de archivos raíz (en realidad resultó no estar bien, vea los comentarios; tldr algunos directorios irremediablemente dañados).
Hice dd
la partición (8 GB) a un archivo, e intenté fsck en eso. Interesantemente:
e2fsck 1.43.1 (08-Jun-2016)
plush.rootfs: recovering journal
Clearing orphaned inode 18290 (uid=0, gid=0, mode=0100644, size=34096)
Clearing orphaned inode 18270 (uid=0, gid=0, mode=0100644, size=38916)
Clearing orphaned inode 18250 (uid=0, gid=0, mode=0100644, size=1128076)
Clearing orphaned inode 11411 (uid=0, gid=0, mode=0100644, size=293108)
Setting free inodes count to 406127 (was 408580)
Setting free blocks count to 1305622 (was 1347486)
plush.rootfs: clean, 60209/466336 files, 604906/1910528 blocks (check after next mount)
Una fsck
limpieza posterior pasó, la imagen se puede montar, y fsck -f
después de eso también pasa.
Pero el sistema de archivos en la tarjeta desde la cual se creó la imagen de copia en bloque sin procesar aún tiene el mismo problema, excepto que el systemd-fsck
que tiene lugar durante el arranque registra el sistema de archivos como "limpio". Posteriormente, sin embargo, un apagado correcto, sacar la tarjeta e intentar fsck
nuevamente desde otra casilla presenta el mismo error.
Cada vez que el original se monta en otra máquina, las notas de syslog:
kernel: EXT4-fs (sdc2): 4 orphan inodes deleted
kernel: EXT4-fs (sdc2): recovery complete
Como tengo todo respaldado, estoy dispuesto a probar cualquier cosa aquí. Simplemente podría olvidarme de esto y volver a crear la partición de la imagen aparentemente fija, pero eso no parece una solución muy satisfactoria, ya que significa asumir que fsck falló crípticamente al resolver un problema menor.
Sospecho que esto se convertirá en una pregunta de "solicitud de documentación oficial" con respecto a cosas como necesidades recovery_flag (o simplemente la pregunta "¿Qué significa esto?"), Por lo que se agradece cualquier sugerencia en ese sentido.
apt upgrade
). Después de eso, registra un arranque normal, y el systemd-fsck dice "limpio" (lo editaré), pero intentar fsck fuera de ese contexto todavía falla.Respuestas:
Me encontré con este mismo problema. Después de depurar el problema con el
e2fsck
mantenedor, nos dimos cuenta de que la tarjeta SD estaba rota. Estaba aceptando escrituras sin error, pero en realidad no estaba escribiendo los datos en la tarjeta. La tarjeta SD fue efectivamente de solo lectura.Parece que la tarjeta había entrado en una especie de modo a prueba de fallas, donde los datos aún podían leerse, pero no se escribía nada.
El
e2fsck
mensajeunable to set superblock flags
significa que trató de escribir en el superbloque para marcar el diario como procesado, lo que sucedió sin error, pero cuando fue a leer el superbloque nuevamente, aún indicaba que era necesario volver a reproducir el diario. En otras palabras, los cambios escritos en el superbloque no se guardaron en el medio de almacenamiento.La tarjeta que estoy usando que tiene este problema es una microSD Samsung Evo de 16GB, que menciono en caso de que sea un problema común con estas tarjetas.
Pude probar esto usando
dd
para escribir 4096 bytes desde/dev/zero
la tarjeta en el bloque 0, luego leí de la tarjeta y en lugar de obtener todos los ceros como debería, todavía obtuve el superbloque ext4 original sin cambios.Ahora estoy en el proceso de mover los datos a una nueva tarjeta y luego ver si puedo obtener un reemplazo de Samsung, que parece ofrecer una garantía de 10 años en las tarjetas SD.
ACTUALIZACIÓN: Samsung reemplazó la tarjeta de 16 GB por una de 32 GB en la misma serie Evo, ¡así que supongo que no me puedo quejar demasiado!
fuente
Sé que este es un hilo viejo, pero pensé que ofrecería alguna idea.
Esta parece ser la forma en que las tarjetas SD mueren de muerte natural. El número de ciclos de lectura / escritura que las tarjetas SD pueden soportar es sustancialmente menor que la mayoría de los otros medios considerados 'lectura / escritura'. Cuando eso se haya agotado, la tarjeta entrará en modo de solo lectura, pero no le informará al respecto. Muchas cosas pensarán que están escribiendo en la tarjeta gracias al almacenamiento en caché del sistema operativo, etc., pero nada se pega.
Una excelente manera de eliminar una tarjeta SD es montarla como una partición de intercambio o algo que requiera mucha lectura / escritura. Te sorprendería lo rápido que puedes matar una carta de esa manera. Descubrí que ejecutar Knoppix desde una tarjeta SD o memoria USB solo durará uno o dos meses, dependiendo de la calidad de la tarjeta y la intensidad del uso de Knoppix. (Desde entonces he cambiado a ejecutar knoppix desde una unidad SSD USB que ha durado un par de años).
fuente