¿Cómo limpiar una lista de inodos huérfanos sin procesar?

17

Traté de montar un sistema de archivos montado anteriormente de solo lectura de lectura y escritura :

mount -o remount,rw /mountpoint

Desafortunadamente, no funcionó:

mount: /mountpoint not mounted already, or bad option

dmesg informes:

[2570543.520449] EXT4-fs (dm-0): Couldn't remount RDWR because of unprocessed orphan inode list.  Please umount/remount instead

A umounttampoco funciona:

umount /mountpoint
umount: /mountpoint: device is busy.
    (In some cases useful info about processes that use
     the device is found by lsof(8) or fuser(1))

Desafortunadamente, ninguno lsofde los dos fusermuestra ningún proceso que acceda a algo ubicado debajo del punto de montaje.

Entonces, ¿cómo puedo limpiar esta lista de huérfanos sin procesar para poder montar el sistema de archivos nuevamente sin reiniciar la computadora?

bmk
fuente
1
¿Ya lo has intentado fuser -km /mountpoint? Sin embargo, tenga cuidado, el indicador -k matará todos los procesos que acceden a ese directorio.
Richard Keller
¿Puedes darnos un poco más de información sobre en qué consiste dm-0?
thinice
Tengo la sensación de que sé qué pasa, pero ¿puedes decirme si el sistema de archivos era originalmente rw, remontado (debido a un error o lo que sea) ro, y ahora estás intentando rw nuevamente?
Matthew Ife
@Mlfe: el sistema de archivos se había vuelto a instalar anteriormente ropor propósito. Es un sistema de archivos en un LVM que contiene una instantánea de copia de seguridad diaria que se configurará rwdurante la operación de copia de seguridad y rodespués de finalizar la copia de seguridad.
bmk

Respuestas:

6

Limpia la lista de inodos huérfanos no procesados ​​desmontando y volviendo a montar el sistema de archivos.

Una discusión extendida de la lista de correo linux-ext4 tiene más información sobre qué es este mensaje y por qué puede aparecer. En resumen, ha sucedido una de dos cosas: o te has encontrado con un error del kernel, o mucho más probable, ha ocurrido algún daño en el sistema de archivos una de las veces anteriores que volviste a montar el sistema de archivos de solo lectura. Probablemente por eso el sistema cree que algo sigue usando el sistema de archivos cuando no lo hay.

Si ha pasado un año y aún no ha reiniciado la máquina, simplemente renuncie y programe una ventana de mantenimiento.

Michael Hampton
fuente
Mientras tanto, programé una ventana de mantenimiento y reinicié la máquina. Eso resolvió el problema (no esperaba nada más ...). Aceptaré tu respuesta. Probablemente tenga razón en que hubo algún daño en el sistema de archivos, aunque no puedo probarlo.
bmk
25

Si está usando ext2 / ext3 / ext4, debería poder usarlo e2fsckpara limpiar inodos huérfanos:

e2fsck -f

Para reiserfs, puede usar el reiserfsckcual también limpiará inodos huérfanos.

Richard Keller
fuente
No estoy seguro de por qué esto fue rechazado, ¿tal vez proporcione una razón para el voto negativo? Ejecutar e2fsck limpia inodos huérfanos, que verás en la salida de la consola como clearing orphaned inode XXXXdonde XXXX es un número de inodo. Puede ejecutar fácilmente e2fsck sin reiniciar el sistema. Después de ejecutar e2fsck, debería poder volver a montar la partición.
Richard Keller
2
Gracias, muchas gracias. Paso horas descubriendo el error. Hacer 'e2fsck -f / dev / sda1' arregló los nodos huérfanos para mí junto con algunas otras correcciones. Acabo de decir que sí a todos y funciona bien ahora :)
whitehat
1
¡¡Muchas gracias!!. Los comandos suyos se corrigieron solo en el disco VM VirtualBox después de la instalación incorrecta de la nueva versión VirtualBox: sudo e2fsck -f / dev / sda1
nine9five
2
Perfecto, funcionó para mí en la partición raíz. La respuesta aceptada (reiniciar) no funcionó sola. Tuve que reiniciar después de e2fsck, así que parece que todavía necesita una ventana de mantenimiento.
AdamS
1
Mejor respuesta que la aceptada. Eso funcionó perfectamente para mi VPS. Encontré muchos errores y lo arregló, que reiniciar y todo se está ejecutando nuevamente. Me salvó el día
Brain Foo Long
6

e2fsck -f <mount point> no funciona

Primero descubra los puntos de montaje con

sudo mount -l

Luego fsck el disco directamente.

Por ejemplo para mi

sudo e2fsck -f /dev/xvda2
Ganesh Krishnan
fuente
Cuando buscas en Google un problema y llegas a tu propia solución en stackoverflow. Mi vida ahora está completa.
Ganesh Krishnan
1

Recomendaría primero desmontar la partición con fuerza, es decir, usar la opción -f y ejecutar una comprobación del sistema de archivos usando fsck.

wolfgangsz
fuente
1
Lamentablemente umount -ftampoco tuvo éxito. El mensaje de error es el mismo que con un plano umount.
bmk
1

Probablemente deberías probar un desmontaje perezoso, es decir:

umount -l

fuente