Pregunta:
Estaba leyendo una publicación de blog sobre la reparación del sistema de archivos y el autor publicó una buena pregunta … Se supone que fsck -p
corrige errores menores automáticamente sin intervención humana. Pero, ¿qué arreglará exactamente cuando se le diga que arregle el sistema de archivos? ¿Qué errores solucionará y qué hará que se detenga y le diga al usuario que debe ejecutar fsck de forma interactiva? ¿Existe una lista de algún tipo?
He estado buscando en Google y todo lo que encuentro es la página de manual, que realmente no dice qué arreglará -p
o qué desencadena la bandera práctica. Estoy específicamente interesado en el sistema de archivos ext4.
Respuesta:
La respuesta a su pregunta se encuentra en el archivo e2fsck/problems.c
problem.c del código fuente e2fsprogs . La PR_PREEN_OK
bandera PR_PREEN_OK
debería PR_PREEN_OK
a comenzar.
Como el manejo completo de errores es un poco más complicado, debido a la multitud de diferentes condiciones de error que pueden ocurrir, se le recomienda que observe más de cerca el código si está preocupado por un caso específico. Sin embargo, las listas a continuación se extrajeron de los comentarios sobre las condiciones de error y deberían brindarle una descripción general aproximada de los efectos del modo de presentación.
Los siguientes errores / advertencias se manejan actualmente automáticamente cuando se especifica el indicador -p
:
- Reubicar pista
- El inodo del diario no es válido
- El superbloque del diario está dañado
- La bandera de la supermanzana has_journal es clara pero tiene un diario
- La bandera de need_recovery del superbloque está configurada pero no hay un diario presente
- La revisión del sistema de archivos es 0, pero los indicadores de funciones están configurados
- Sugerencia de supermanzana para supermanzana externa
- descriptor de grupo N marcado como no inicializado sin conjunto de características.
- mapa de bits de bloque del grupo N no inicializado pero mapa de bits de inodo en uso.
- El descriptor de grupo N tiene un recuento de inodos no utilizados no válido.
- Último mapa de bits del bloque de grupo sin inicializar.
- El indicador test_fs está establecido (y ext4 está disponible)
- La última hora de montaje es en el futuro (modificada)
- La última hora de escritura es en el futuro (modificada)
- La suma de comprobación del grupo de bloques (pregunta de cierre) no es válida.
- El directorio raíz tiene dtime configurado
- El inodo reservado tiene modo incorrecto
- El inodo eliminado tiene cero dtime
- Inode en uso, pero dtime configurado
- Directorio de longitud cero
- Inode tiene i_size incorrecto
- Inode tiene i_blocks incorrectos
- Mal supermanzana en grupo
- Descriptores de grupo de bloques incorrectos en el grupo
- Bloque reclamado sin motivo
- Error al asignar bloques para reubicar metadatos
- Error al asignar el búfer de bloque durante el proceso de reubicación
- Reubicar la información del grupo de metadatos de X a Y
- Reubicar la información del grupo de metadatos en X
- Error de lectura de bloque durante el proceso de reubicación
- Error de escritura en bloque durante el proceso de reubicación
- Indicador inmutable establecido en un dispositivo o en un inodo de socket
- Tamaño distinto de cero para el dispositivo, el FIFO o el inodo del zócalo
- La revisión del sistema de archivos es 0, pero los indicadores de funciones están configurados
- El inodo de diario no está en uso, pero contiene datos
- El diario tiene mal modo
- Indicador INDEX_FL establecido en un sistema de archivos que no es HTREE
- Indicador INDEX_FL establecido en un no directorio
- Nodo raíz no válido en el directorio HTREE
- Versión hash no admitida en el directorio HTREE
- Indicador incompatible en el nodo raíz HTREE
- HTREE demasiado profundo
- inodo inválido-> i_extra_isize
- entrada ea inválida-> e_name_len
- entrada ea inválida-> e_value_offs
- entrada ea inválida-> bloque_valor_e
- entrada ea inválida-> tamaño_valor_e
- entrada ea inválida-> e_hash
- inodo falta EXTENTS_FL, pero es un inodo de extensión
- Inode no debe tener configurado EOFBLOCKS_FL
- La entrada del directorio ha eliminado o no se ha utilizado el inodo
- Tipo de archivo de directorio no establecido
- Tipo de archivo de directorio establecido en el sistema de archivos
- Nodo raíz HTREE no válido
- Límite HTREE no válido
- Recuento de HTREE no válido
- El nodo interior HTREE tiene hashes fuera de orden en la tabla
- Inode encontrado en el grupo donde se establece _INODE_UNINIT
- Inode encontrado en el área de inodos no utilizados del grupo
- i_blocks_hi debería ser cero
- / perdido + encontrado no encontrado
- Inodo de longitud cero sin adjuntar
- Inode ref recuento incorrecto
- No se establece el relleno al final del mapa de bits de inodo.
- No se establece el relleno al final del mapa de bits del bloque.
- Bloquear encabezado de diferencias de mapa de bits
- Bloque no utilizado, pero marcado en mapa de bits
- Bloque usado, pero no marcado usado en mapa de bits
- Fin de las diferencias de mapa de bits de bloque
- Encabezado de diferencias de mapa de bits de inode
- Inode no utilizado, pero marcado en mapa de bits
- Inode usado, pero no marcado usado en mapa de bits
- Las diferencias de mapa de bits de inodo terminan
- Los inodos libres cuentan para el grupo incorrecto
- Los directorios cuentan para el grupo incorrecto
- Los inodos libres cuentan mal
- Los bloques libres cuentan para el grupo incorrecto
- Los bloques libres cuentan mal
- Rango de bloque no utilizado, pero marcado en mapa de bits
- Rango de bloque usado, pero no marcado usado en mapa de bits
- Rango de inodo no utilizado, pero marcado en mapa de bits
- Rango de inodo utilizado, pero no marcado como utilizado en el mapa de bits
- Bloque (s) del grupo N en uso, pero el grupo está marcado como BLOCK_UNINIT
- Inodos del grupo N en uso, pero el grupo está marcado como INODE_UNINIT
- Vuelva a crear el diario si se establece el indicador E2F_FLAG_JOURNAL_INODE
Las siguientes condiciones de error hacen que se anule el proceso fsck no interactivo, incluso si se establece el indicador -p
:
- Bloquear mapa de bits no en grupo
- El mapa de bits de inode no está en el grupo
- La tabla de inode no está en el grupo
- El tamaño del sistema de archivos es incorrecto
- El recuento de inodos en el superbloque es incorrecto
- Hurd no admite la función de tipo de archivo
- El diario tiene un tipo de superbloque desconocido
- Pregunte si deberíamos limpiar el diario
- El superbloque de diario tiene un conjunto de indicadores de función de solo lectura desconocido
- El superbloque de diario tiene un conjunto de banderas de características incompatibles desconocidas
- El diario tiene un número de versión no admitido
- Pregunte si deberíamos ejecutar el diario de todos modos.
- Bloques reservados sin resize_inode
- Resize_inode no habilitado, pero resize inode no es cero
- Cambiar el tamaño del inodo no es válido
- La última hora de montaje es en el futuro
- La última hora de escritura es en el futuro
- La suma de comprobación del descriptor de grupo N no es válida.
- El directorio raíz no es un inodo
- Bloquear conflictos de mapa de bits con algún otro bloque fs
- El mapa de bits de inode entra en conflicto con algún otro bloque fs
- La tabla inode entra en conflicto con algún otro bloque fs
- El mapa de bits del bloque está en un bloque defectuoso
- El mapa de bits de inode está en un bloque defectuoso
- Número de bloque ilegal en inodo
- El número de bloque se superpone a los metadatos fs
- Inode tiene bloqueos ilegales (pregunta de pestillo)
- Demasiados bloques defectuosos en inodo
- Número de bloque ilegal en inodo de bloque defectuoso
- El inodo de bloque incorrecto tiene bloques ilegales (pregunta de bloqueo)
- Bloque defectuoso utilizado como bloque indirecto de bloque defectuoso
- La inconsistencia no se puede solucionar rápidamente
- Mensaje de bloqueo primario incorrecto
- Suprimir mensaje de aviso
- Indicador imagic establecido en un inodo cuando el sistema de archivos no lo admite
- Indicador de compresión establecido en un inodo cuando el sistema de archivos no lo admite
- Tratar con inodos que formaban parte de la lista de enlaces huérfanos
- Tratar con inodos que formaban parte de una lista de enlaces huérfanos corruptos (pregunta de bloqueo)
- Error al leer el bloque de atributos extendidos
- Bloque de atributo extendido no válido
- El recuento de referencias de atributos extendidos es incorrecto
- No se admiten varios bloques de EA
- Error de colisión de asignación de EA
- Nombre de atributo extendido incorrecto
- Valor de atributo extendido incorrecto
- Inode demasiado grande (pregunta de cierre)
- Directorio demasiado grande
- Archivo normal demasiado grande
- Enlace simbólico demasiado grande
- El bloque malo tiene un bloque indirecto que entra en conflicto con el bloque del sistema de archivos
- No se pudo cambiar el tamaño del inodo
- inodo parece ser un directorio
- Error al leer el árbol de extensión
- No iterar extensiones
- Mal bloque inicial en extensión
- La extensión termina más allá del sistema de archivos
- Indicador EXTENTS_FL establecido en un sistema de archivos sin extensiones
- el inodo tiene extensiones, al superbloque le falta la característica INCOMPAT_EXTENTS
- El enlace simbólico rápido tiene EXTENTS_FL configurado
- Las extensiones están fuera de servicio
- Inode tiene un nodo de extensión no válido
- ¿Clonar bloques duplicados / defectuosos?
- Número de inodo incorrecto para '.'
- La entrada del directorio tiene un número de inodo incorrecto
- La entrada de Directry es un enlace a '.'
- Los puntos de entrada del directorio al inodo ahora se encuentran en un bloque defectuoso
- La entrada del directorio contiene un enlace a un directorio
- La entrada del directorio contiene un enlace al directorio raíz.
- La entrada del directorio tiene caracteres ilegales en su nombre
- Desaparecido '.' en el directorio de inodo
- Falta '..' en el inodo del directorio
- La primera entrada en el inodo del directorio no contiene '.'
- La segunda entrada en el inodo del directorio no contiene '..'
- i_faddr debería ser cero
- i_file_acl debe ser cero
- i_dir_acl debe ser cero
- i_frag debe ser cero
- i_fsize debe ser cero
- inodo tiene modo malo
- directorio dañado
- nombre de archivo demasiado largo
- El inodo del directorio tiene un bloque faltante (agujero)
- '.' no es NULL terminado
- '..' no es NULL terminado
- Inodo de dispositivo de carácter ilegal
- Inodo de dispositivo de bloqueo ilegal
- Duplicar '.' entrada
- Entrada duplicada
- Final rec_len es incorrecto
- Error al leer el bloque de directorio
- Error al escribir el bloque de directorio
- Entrada de directorio para '.' es grande. ¿Separar?
- Inodo FIFO ilegal
- Inodo de socket ilegal
- Tipo de archivo de directorio incorrecto
- El nombre de archivo del directorio es nulo
- Enlace simbólico no válido
- i_file_acl (bloque de atributo extendido) es malo
- El sistema de archivos contiene archivos grandes, pero no tiene ese indicador en sb
- Borrar directorio HTREE no válido
- Bloque incorrecto en el nodo interior de htree
- Se encontró una entrada de directorio duplicada
- Se encontró un nombre de archivo no único
- i_blocks_hi debería ser cero
- Bloque HTREE inesperado
- Inodo raíz no asignado
- No hay espacio en perdido + encontrado
- Inodo de directorio no conectado
- .. la entrada es incorrecta
- Lost + found no es un directorio
- Inodo sin adjuntar
- Supermanzana corrupta
- Fragmentos no admitidos
- Error al determinar el tamaño del dispositivo físico del sistema de archivos
- El diario externo tiene varios sistemas de archivos (no compatibles)
- No puedo encontrar el diario externo
- El diario externo tiene un superbloque incorrecto
- El superbloque tiene un UUID de diario incorrecto
- Error al asignar mapa de bits de inodo
- Error al asignar el mapa de bits del bloque
- Error al asignar la información del enlace icount
- Error al asignar la matriz de bloques de directorio
- Error al escanear inodos
- Error al iterar sobre bloques
- Error al almacenar la información del recuento de inodos
- Error al almacenar la información del bloque de directorio
- Error al leer el inodo (para borrar)
- Error al asignar la estructura de recuento
- Error al leer el bloque de atributos extendidos al corregir el recuento de referencias
- Error al escribir el bloque de atributos extendidos al corregir el recuento de referencias
- Error al asignar la estructura de asignación de la región de EA
- Error al escanear inodos
- Error al asignar mapa de bits de inodo
- Error interno: no se pudo encontrar dir_info
- Error al asignar la estructura icount
- Error al iterar sobre bloques de directorio
- Error al desasignar el inodo
- Error al ajustar el recuento de referencia de EA
- Error al asignar mapa de bits de inodo
- Error al crear el directorio raíz
- El inodo raíz no es un directorio; abortar
- No se puede continuar sin un inodo raíz.
- Error interno: no se pudo encontrar dir_info
- Error de programación: los puntos finales del mapa de bits no coinciden
- Error interno: alteración del final del mapa de bits
- Error al copiar en mapa de bits de inodo de reemplazo
- Error al copiar en el mapa de bits del bloque de reemplazo