Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Démonter une clé USB ne suffit pas pour l'éjecter en toute sécurité
Envoyé par: Pierre Renié

Bonjour,
J'ai éjecté ma clé USB quelques secondes après l'avoir démontée, et il y a eu un crash du système de fichiers. Plus tard je me suis rendu compte que l'ordinateur ne synchronisait pas ma clé, qu'il attendait un peu avant d'écrire dessus, et que quand on la démonte il attend quelques secondes avant de la synchroniser. Il fait même quelques pauses pendant la synchronisation.

Je voudrais une commande pour vider le cache de ma clé. J'avais essayé de mettre l'option sync dans fstab mais en fait cette option ne marche pas sur les systèmes de fichiers fat32.

Y a-t-il une solution autre qu'éteindre l'ordinateur pour éjecter ma clé? Je ne veux pas avoir un autre crash.
Merci.

Poste le Monday 12 September 2005 09:22:28
Répondre     Citer    
Re: Démonter une clé USB ne suffit pas pour l'éjecter en toute sécurité
Envoyé par: Hélène

J'ai remarqué qu'il ne fallait pas se presser.. J'insère ma clé, je la laisse clignoter quelques secondes, quand elle s'arrête, elle est opérationnelle. Pour la démonter, j'attends aussi un certain temps après l'avoir démontée, pour l'ôter. Depuis que je prends ces précautions, je n'ai plus du tout de souci de lecture/écriture.

Par contre, un jour, un ami à qui je l'avais prêtée, a voulu la monter à peine était-elle insérée, il n'a jamais pu y parvenir, et une fois ôtée, il n'était plus possible de la lire, ni sous Linux, ni sous Windows, obligé de la reformater.

Je n'ai bien sûr pas d'explication technique..

Poste le Monday 12 September 2005 10:44:36
Répondre     Citer    
Re: Démonter une clé USB ne suffit pas pour l'éjecter en toute sécurité
Envoyé par: Pierre Renié

Ce serait pratique d'avoir une commande du type "flush /dev/sda1" mais "man:flush" ne donne rien.

Poste le Monday 12 September 2005 11:53:41
Répondre     Citer    
Re: Démonter une clé USB ne suffit pas pour l'éjecter en toute sécurité
Envoyé par: Pierre Renié

J'ai trouvé la commande "sync" qui écrit sur les disques toutes les données en cache qui ne sont pas encore écrites. L'inconvéniant est que cette commande écrit sur tous les disques et pas seulement sur la clé.

Mais même après avoir fait umount et sync, quand je ferme la session un programme lit ou écrit sur la clé. Elle est pourtant démontée.

Linux ne peut-il pas synchroniser le système de fichiers? C'est intéressant de garder en RAM quelques fichiers pour les lire plus vite, mais c'est risqué de ne les garder qu'en RAM sans les écrire.

Poste le Tuesday 13 September 2005 08:56:01
Répondre     Citer    
J'ai trouvé
Envoyé par: Pierre Renié

En fait, j'utilisais l'option "umount -l" et c'est la cause de tous mes problèmes.
Cette option permet de démonter une clé même quand le périphérique est occupé.
Citation
man mount
-l: Lazy unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as it is not busy anymore.
Citation
traduction
-l: Démontage paresseux. Détache le système de fichiers de l'arborescence maintenant, et efface toutes les références du système de fichiers dès qu'il n'est plus occupé.
En clair, un fichier ouvert sera toujours accessible par le logiciel qui l'occupe!

Conséquences:
-Si on modifie un dossier puis que le programme qui l'a modifié occupe toujours ce dossier, les données ne seront pas forcément synchronisées au démontage et quand on éjecte une clé on peut perdre le contenu de ce répertoire.
-De la même façon, si on formate une partition après l'avoir démontée comme ça, puis remontée immédiatement, les références aux fichiers occupés seront réécrites à l'arrêt de la machine, ce qui peut corrompre le système de fichiers (c'est comme ça que j'avais des "incident de segmentation" quand je faisais "ls" dans une partition fat32)
-Après avoir éjecté un CD puis inséré un autre, les références au système de fichier du CD précédent restaient en mémoire et entraient en conflit avec le nouveau système de fichier => CD illisible, il faut redémarrer X.


Que faire quand on a le message "ressource or device busy"? La solution est ici: [wiki.ubuntu-fr.org]
Résumé: quand on a ce message il faut faire:
pi@Debian$ lsof | grep /mnt/usb
xmms      4848    login    9r   REG        3,6 3430341     545188 /mnt/stock/divers/My Own Summer-Deftones.mp3
pi@Debian$ kill 4848
pi@Debian$ umount /mnt/usb

C'est idiot que l'option "-l" soit la solution au problème de "périphérique occupé" qu'on trouve en premier sur les forums, alors qu'elle est mauvaise. L'option "-l" est à proscrire!

Poste le Friday 30 September 2005 18:12:12
Répondre     Citer    
Précision
Envoyé par: Pierre Renié

La commande lsof permet de déterminer les programmes qui occupent la clé, donc ceux qu'il faut fermer.

Poste le Friday 30 September 2005 18:16:36
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Démonter une clé USB ne suffit pas pour l'éjecter en toute sécurité
Vous voulez savoir si votre matériel est supporté par Linux, ou vous avez un problème pour installer un module ? Ce forum est pour vous !

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons