Comment puis-je fsck une partition lorsque l'appareil lit comme occupé (mais a été confirmé autrement)?

11

J'essaie d'exécuter fsck -p /dev/sda5pour réparer les erreurs sur une partition ext4, mais la commande sort

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?

J'ai confirmé l'utilisation /etc/mtabet lsofque rien n'utilise la partition et qu'elle n'est pas montée. J'avais également l'habitude fuser -k /dev/sda5de fermer de force quoi que ce soit à l'aide du fichier et umountde tenter de le démonter en vain.

Comment puis-je forcer fsckau moins à vérifier, et, espérons-le, à réparer, la partition malgré le fait qu'elle se lit comme occupée? En supposant que je suis suffisamment confiant qu'il n'est ni monté ni utilisé, et que la possibilité de corruption de données n'est pas un problème.

Toutes les commandes ont été exécutées en tant que root à partir d'un liveCD Ubuntu 10.04 32 bits. La partition est la partie système (non domestique) d'une installation Ubuntu 10.04 32 bits.

Keeblebrox
la source
J'ai trouvé une méthode pour résoudre le plus gros problème lié à cette question, mais je cherche toujours une réponse sur la façon de forcer fscks'il pense que l'appareil est occupé (ou pourquoi cela ne peut pas être fait).
Keeblebrox
Je rencontre le même problème sur un système RHEL5.8. / tmp a été démonté, / etc / mtab et / proc / mounts ne montrent aucune trace du système de fichiers. J'ai même redémarré la machine, je me suis assuré d'être le seul connecté. lsof ne montre aucun fichier en cours d'utilisation sur / tmp. La même procédure fonctionne correctement sur 4 serveurs similaires installés en utilisant le même profil kickstart. La différence entre ces serveurs et celui-ci est que celui-ci dispose d'un stockage SAN. Le démon multivoie peut-il provoquer cela?
Bram
Cela n'a pas aidé dans mon cas, mais la base de connaissances Red Hat KB ( access.redhat.com/knowledge/solutions/54184 ) recommande d'ajouter l'option de noyau nodmraid comme solution de contournement pour ce problème.
Bram

Réponses:

4

Il y a des choses (généralement dans le noyau, comme les threads NFS, les fichiers d'échange, les montages de liaison, etc.) qui peuvent occuper un système de fichiers qui n'apparaîtra pas fuser.

Si vous essayez de fsckmonter un système de fichiers, il sera corrompu. Vous devriez trouver un CD live qui ne monte pas automatiquement vos systèmes de fichiers, comme Knoppix ou Fedora.

Steven Pritchard
la source
Jusqu'à présent, tout a été exécuté à partir d'un disque actif. J'essaie fsckun système de fichiers local, donc j'espère que NFS ne l'a pas occupé - cependant, j'ai ce que vous dites à propos du noyau en le gardant occupé d'une manière qui n'apparaîtra pas nécessairement. Comme cela se produit toujours dans un environnement de disque en direct, cependant, connaissez-vous un moyen d'empêcher le noyau d'y accéder suffisamment longtemps pour que je puisse fonctionner fsck?
Keeblebrox
Oui. En cours d'utilisation à partir d'un disque en direct? Je ne peux penser qu'à deux choses: 1) Essayez un disque live différent (Fedora au lieu d'Ubuntu, par exemple). 2) Vérifiez / etc / fstab sur le système réel. Peut-être y a-t-il un fichier d'échange ou un montage de liaison qui s'active automatiquement? Pas nécessairement dans cet ordre, je pourrais ajouter ...
Steven Pritchard
OK, en quelque sorte, j'ai complètement raté la dernière ligne de la question. J'ai mis à jour ma réponse de manière appropriée.
Steven Pritchard
+1, car votre mention d'un échange monté automatiquement a conduit à une percée sans rapport et vos réponses ont aidé à résoudre le plus gros problème. Je veux toujours trouver un moyen de forcer fscklorsque je sais que l'appareil n'est ni occupé ni monté, et que la corruption des données n'est pas un problème.
Keeblebrox
Peut-être que mdadm a détecté des signatures de raid sur la partition et y est lié? Vérifiez / proc / mdstat.
psusi
4

Vous pouvez supprimer la partition fstabet redémarrer la machine

ManOfLinux
la source
2

Essayez de démarrer un autre liveCD - je recommande SystemRescueCD qui est spécialement conçu pour résoudre les problèmes avec les installations Linux. Il est également plus petit que les liveCD OS classiques. Et pour être prudent, exécutez à fsckpartir de la console (pas de X).

Si la norme fsck -pne fonctionne pas, vous pouvez également essayer e2fsck -y -f.

rozcietrzewiacz
la source
Selon la page de manuel , e2fsck -y -fforce une vérification sur une partition propre. Il ne mentionne rien sur les partitions montées. Savez-vous également si cela forcera un contrôle?
Keeblebrox
Probablement pas, mais vous devez absolument éviter les systèmes de fichiers montés par fsck (voir les paragraphes en haut de la e2fsckpage de manuel). Une autre pensée: si /etc/mtabsemble indiquer que la partition n'est pas montée, mais vous obtenez toujours l'erreur, vous devez également vérifier /proc/mounts, car le mtabfichier peut être obsolète pour une raison étrange.
rozcietrzewiacz
0

Question / réponse connexe sur /server/556014/centos-thinks-disk-is-busy-cant-mount-or-fsck

Plus précisément, le système de fichiers peut déjà être utilisé par autre chose que le montage de fsck. L'unité de fusion et lsof peut aider à déterminer ce qu'est ce pilote / application.

zaTricky
la source