Gedit n'enregistrera pas de fichier sur un partage VirtualBox: fichier texte occupé

29

J'ai un fichier texte que je peux modifier en utilisant d'autres applications (par exemple openoffice). Mais quand j'essaye de le changer et de l'enregistrer en utilisant gedit, j'obtiens une erreur de gedit:

Could not save the file /media/sf_Ubuntu/BuildNotes.txt.
Unexpected error: Error renaming temporary file: Text file busy

l'autorisation de BuildNotes.txt est la suivante:

-rwxrwx--- 1 root vboxsf  839 2012-10-26 12:08 BuildNotes.txt

et l'ID utilisateur est:

m@m-Linux:/media/sf_Ubuntu$ id
uid=1000(m) gid=1000(m) groups=4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare),1000(m),1001(vboxsf)

Quel est le problème et comment le résoudre?

user654019
la source
et vim fonctionne bien ...
Leon

Réponses:

17

Ce problème est signalé depuis 2009 (google pour 'gedit virtualbox'). C'est horrible qu'il n'y ait pas encore de solution. Ni les développeurs VirtualBox ni Gedit ne sont prêts à en assumer la responsabilité et se contentent plutôt de se pointer du doigt pendant plus de trois ans.

Vous pouvez définir vos préférences d'éditeur sur «Créer une sauvegarde», puis enregistrer deux fois. Incroyablement douloureux, mais ça marche.

Certains autres éditeurs ne signalent pas le problème. Cependant, lorsque j'ai testé Kate et nano, par exemple, ceux-ci ont simplement supprimé le fichier en silence à chaque autre sauvegarde. C'est encore pire que la situation du gedit ...

David
la source
2
Il serait utile que vous incluiez un lien vers le rapport de bogue 2009; cela pourrait aider d'autres personnes à suivre le problème.
jasonwryan
Veuillez inclure dans votre réponse: le site est un wiki ...
jasonwryan
2
Salutations de l'avenir. "Plus de trois ans" est devenu "Plus de huit ans" . C'est toujours un problème.
pipe
alors.....? Avons-nous une solution ou quelque chose?
Mohd Abdul Mujib
6

«Fichier texte occupé» peut être source de confusion ici: il ne s'agit pas en fait de fichiers texte, mais d'exécutables. Les exécutables sont appelés fichiers texte parce que… hum, en fait, je ne sais pas pourquoi .

Ce que signifie réellement le message est «ce fichier est verrouillé par un autre programme qui l'utilise et ne peut pas le modifier sous son nez, donc vous ne pouvez pas y écrire.» Il est assez inhabituel de voir ce message pour un fichier texte: les systèmes Unix désapprouvent généralement les verrous obligatoires sur les fichiers, et il n'y a aucune possibilité pour les applications d'empêcher les autres de modifier un fichier. (Unix a des verrous consultatifs: ils peuvent être utilisés pour synchroniser les accès simultanés à un fichier en coopérant avec des programmes.) La circonstance la plus courante lorsque vous verrez «fichier texte occupé» ( ETXTBUSY) est si vous essayez de modifier un exécutable en cours d'exécution: le le noyau le verrouille. Une autre possibilité est une image disque qui est montée , à nouveau verrouillée par le noyau.

Dans votre cas, étant donné l'emplacement du fichier /media/sf_Ubuntuet la propriété du groupe vboxsf, je suppose que le fichier, qui se trouve sur un système de fichiers de partage de fichiers VirtualBox, est verrouillé dans le système d'exploitation hôte. Vraisemblablement, l'hôte est une machine Windows et le fichier est également ouvert dans un éditeur. Vous devrez fermer le fichier sur l'hôte avant de pouvoir l'enregistrer dans l'éditeur de la machine virtuelle.

Gilles 'SO- arrête d'être méchant'
la source
4
Merci. Je suis sûr à 100% que le fichier n'est pas ouvert dans Windows et qu'aucune autre application ne l'utilise. Je peux l'ouvrir en utilisant OpenOffice et donc je suis sûr qu'il n'est pas ouvert par d'autres applications. Ce n'est que gedit qui ne peut pas le sauvegarder.
user654019
2
J'ai le même problème. chaque programme dans le système d'exploitation invité fonctionne très bien mais gedit, quelque chose se passe.
GlassGhost
2

Vérifiez lsofsi le fichier est ouvert par une autre application

lsof /media/sf_Ubuntu/BuildNotes.txt

Ou utilisez fuser:

fuser -km /media/sf_Ubuntu/BuildNotes.txt
Pankaj Sain
la source
1

Ce qui a résolu le problème pour moi (toujours un peu ennuyeux mais qui fonctionne) et qui s'applique à gedit, c'est de:

modifier - préférences - éditeur Cochez "Créer une copie de sauvegarde"

Lors de l'enregistrement à partir de maintenant, enregistrez le fichier une fois, ignorez l'erreur, enregistrez à nouveau. fonctionne à chaque fois.

Martin Levasseur
la source
En 2019, cette erreur se produit toujours. Cette solution de contournement fonctionne.
David
0

en utilisant le terminal linux, essayez d'éditer le fichier en utilisant vi nom_fichier et enregistrez-le. ps je n'ai pas pu trouver une autre solution pour ce problème. vi a travaillé

Hamsavardhini
la source