¿Cómo puedo fsck una partición cuando el dispositivo lee como ocupado (pero se ha confirmado lo contrario)?

11

Estoy intentando ejecutar fsck -p /dev/sda5para reparar errores en una partición ext4, sin embargo, el comando genera

fsck from util-linux-ng 2.17.2
fsck.ext4: Device or resource busy while trying to open /dev/sda5
Filesystem mounted or opened exclusively by another program?

He confirmado el uso /etc/mtaby lsofque nada está usando la partición y no está montada. También solía fuser -k /dev/sda5cerrar por la fuerza cualquier cosa usando el archivo e umountintentar desmontarlo en vano.

¿Cómo puedo forzar fsckal menos a revisar, y con suerte reparar, la partición a pesar de que se lee como ocupada? Suponiendo que tengo la confianza suficiente de que no está montado ni en uso, y que la posibilidad de corrupción de datos no es un problema.

Todos los comandos se ejecutaron como root desde un liveCD de Ubuntu 10.04 de 32 bits. La partición es la parte del sistema (no doméstica) de una instalación de Ubuntu 10.04 de 32 bits.

Keeblebrox
fuente
He encontrado un método para resolver el problema más grande relacionado con esta pregunta, pero todavía estoy buscando una respuesta sobre cómo forzar fscksi cree que el dispositivo está ocupado (o por qué no se puede hacer).
Keeblebrox
Me encuentro con el mismo problema en un sistema RHEL5.8. / tmp se ha desmontado, / etc / mtab y / proc / mounts no muestran ningún rastro del sistema de archivos. Incluso he reiniciado la máquina, me aseguré de que soy el único que inició sesión. lsof no muestra ningún archivo en uso en / tmp. El mismo procedimiento funciona bien en 4 servidores similares instalados usando el mismo perfil kickstart. La diferencia entre esos servidores y este es que este tiene almacenamiento SAN conectado. ¿Podría el demonio multirruta causar esto?
Bram
No ayudó en mi caso, pero el Red Hat KB ( access.redhat.com/knowledge/solutions/54184 ) recomienda agregar la opción de kernel nodmraid como solución para este problema.
Bram

Respuestas:

4

Hay cosas (generalmente en el kernel, como los subprocesos NFS, los archivos de intercambio, los montajes de enlace, etc.) que pueden mantener ocupado un sistema de archivos que no aparecerá fuser.

Si intenta fsckutilizar un sistema de archivos montado, se dañará. Debería encontrar un CD en vivo que no monte automáticamente sus sistemas de archivos, como Knoppix o Fedora.

Steven Pritchard
fuente
Todo se ha ejecutado desde un disco en vivo hasta ahora. Estoy intentando fsckun sistema de archivos local, así que espero que NFS no lo mantenga ocupado; sin embargo, entiendo lo que estás diciendo sobre el kernel manteniéndolo ocupado de maneras que no necesariamente se mostrarán. Sin embargo, dado que todavía ocurre en un entorno de disco en vivo, ¿conoce alguna forma de evitar que el núcleo acceda a él el tiempo suficiente para que pueda ejecutarlo fsck?
Keeblebrox
Yikes En uso desde un disco en vivo? Solo puedo pensar en dos cosas: 1) Pruebe con un disco en vivo diferente (Fedora en lugar de Ubuntu, por ejemplo). 2) Verifique / etc / fstab en el sistema real. ¿Tal vez hay un archivo de intercambio o un montaje de enlace que se enciende automáticamente? No necesariamente en ese orden, podría agregar ...
Steven Pritchard
OK, de alguna manera me perdí totalmente la última línea de la pregunta. He actualizado mi respuesta adecuadamente.
Steven Pritchard
+1 porque su mención de intercambio montado automáticamente condujo a un avance no relacionado y sus respuestas han ayudado a resolver el problema más grande. Todavía quiero encontrar una manera de forzar fsckcuando sé que el dispositivo no está ocupado ni montado, y cuando la corrupción de datos no es un problema.
Keeblebrox
¿Quizás mdadm ha detectado firmas de incursión en la partición y la ha vinculado? Comprueba / proc / mdstat.
psusi
4

Puede eliminar la partición fstaby reiniciar la máquina

ManOfLinux
fuente
2

Intente arrancar otro liveCD: recomiendo SystemRescueCD que está diseñado específicamente para resolver problemas con las instalaciones de Linux. También es más pequeño que los típicos liveCDs del sistema operativo. Y para estar seguro, corre fsckdesde la consola (no X).

Si el estándar fsck -pno funciona, también puedes intentarlo e2fsck -y -f.

rozcietrzewiacz
fuente
De acuerdo con la página del manual , e2fsck -y -fobliga a verificar una partición limpia. No menciona nada sobre particiones montadas. ¿Sabes si forzará un cheque también?
Keeblebrox
Probablemente no, pero definitivamente debe evitar fsck-ing de sistemas de archivos montados (vea los párrafos en la parte superior de la página de e2fsckmanual). Otro pensamiento: si /etc/mtabparece indicar que la partición no está montada, pero aún recibe el error, también debe verificar /proc/mounts, ya que el mtabarchivo podría estar desactualizado por alguna extraña razón.
rozcietrzewiacz