web-dev-qa-db-fra.com

Comment forcer réellement démonter un système de fichiers (sans enquête manuelle pourquoi est-il occupé)

Comment démonter un système de fichiers sous Linux sans rechercher pourquoi est-il occupé?

Je veux le faire dans une commande. Il devrait gérer les applications à l'aide de ce système de fichiers, des notes, des conteneurs (lxc-execute -n qqq <command>) et toutes les autres choses.

Juste "Démonter. Pas d'objections!". Les correctifs spéciaux du noyau ou la configuration sont autorisés.

Système de fichiers doit être vraiment démontré, alors umount -l n'est certainement pas une option. Par exemple, pour cryptsetup remove (BTW comment de force cryptsetup removeMettre à jour:cryptsetup luksSuspend, mais vous ne serez pas capable de cryptsetup luksResume si ce n'est pas LUKS).

Comment faire tous les fichiers sur ce système de fichiers invalide?

La seule façon fiable que je connaisse est de monter le système de fichiers via le fusible (il n'y a généralement aucun problème à démonter à la fin du fusible à cause de je peux simplement tuer son processus).

P.s. Déjà connaître le mont fuser, lsof | grep, cat /proc/*/mounts | grep et obsolète "patch Badfs" non fonctionnel.

13
Vi.

umount --force ou alors umount -f (équivalent)

Si cela échoue, utilisez:

umount --lazy ou alors umount --l (équivalent)

L'option "- paresseuse " Détachez le système de fichiers de la hiérarchie du système de fichiers maintenant, et nettoyez toutes les références au système de fichiers dès qu'il n'est plus occupé. (Nécessite le noyau 2.4.11 ou ultérieur.) " Cela pourrait causer une instabilité, mais cela aura la chose démontée. Tous les programmes utilisant le lecteur peuvent se bloquer.

3
Freedom_Ben

Utilisez la touche clé Magic SysRQ Combo: Alt+SysRq+u

Notez que vous devriez probablement faire une synchronisation d'urgence d'abord: Alt+SysRq+s

Notez également que sur certains claviers (surtout plus récents), vous devez utiliser PrtSc plutôt que SysRq

3
sml

J'ai bien peur qu'il n'y ait aucun moyen de le faire sur une commande. umount -f ne fonctionne vraiment pas aussi bien que possible. S'il y a des notes sous une autre montagne, vous ne pouvez pas simplement démonter ces monts dans un ordre aléatoire et espérer qu'ils vont descendre.

Mais pas de soucis, il y a une façon de faire tout cela une seule commande: créer un script shell/perl qui tue les processus recherchés, démonte les conteneurs, les notes et ne démont enfin quelques autres mont. Ensuite, vous pouvez simplement appeler votre script sur demande. Initialement, c'est plus de travail pour vous, mais après avoir obtenu le script travaillant, tout est le jeu d'un enfant. :)

1
Janne Pikkarainen
umount -f

peut être utilisé pour forcer un démontage lorsque le système de fichiers est occupé.

1
lime-like