Gedit non salverà un file su una condivisione VirtualBox: file di testo occupato


29

Ho un file di testo che posso modificare usando altre applicazioni (ad esempio openoffice). Ma quando provo a modificarlo e salvarlo usando gedit, ricevo un errore da gedit:

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

l'autorizzazione di BuildNotes.txt è la seguente:

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

e l'id utente è:

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)

Qual è il problema e come posso risolverlo?


e vim funziona bene ...
Leon,

Risposte:


17

Questo problema è stato segnalato dal 2009 (google per "gedit virtualbox"). È terribile che non ci siano ancora correzioni. Né gli sviluppatori di VirtualBox né Gedit sono disposti ad assumersene la responsabilità, e invece si accontentano di puntare le dita l'un l'altro per oltre tre anni.

È possibile impostare le preferenze dell'editor su "Crea un backup", quindi salvare due volte. Incredibilmente doloroso, ma funziona.

Alcuni altri editor non segnaleranno il problema. Tuttavia, quando ho provato Kate e nano, ad esempio, quelli hanno semplicemente eliminato il file in silenzio su ogni altro salvataggio. È anche peggio della situazione gedit ...


2
Sarebbe utile se includessi un link alla segnalazione di bug del 2009; potrebbe aiutare gli altri a rintracciare il problema.
Jasonwryan,

Per favore includi nella tua risposta: il sito è un wiki ...
jasonwryan


2
Saluti dal futuro. "Oltre tre anni" è diventato "Oltre otto anni" . Questo è ancora un problema.
pipe

così.....? Abbiamo una soluzione o qualcosa del genere?
Mohd Abdul Mujib,

6

"File di testo occupato" può essere fonte di confusione qui: in realtà non si tratta di file di testo, ma di file eseguibili. Gli eseguibili sono chiamati file di testo perché ... ronzio, in realtà, non so perché .

Ciò che il messaggio significa in realtà è "questo file è bloccato da un altro programma che lo sta usando e non può lasciarlo modificare sotto il suo naso, quindi non puoi scrivergli". È abbastanza insolito vedere questo messaggio per un file di testo: i sistemi unix generalmente disapprovano i blocchi obbligatori sui file e non vi è alcuna possibilità per le applicazioni di bloccare gli altri dalla modifica di un file. (Unix ha i blocchi di avviso: possono essere utilizzati per sincronizzare gli accessi simultanei a un file collaborando ai programmi.) La circostanza più comune quando vedrai "file di testo occupato" ( ETXTBUSY) è se provi a modificare un eseguibile in esecuzione: il il kernel lo blocca. Un'altra possibilità è un'immagine del disco montata , nuovamente bloccata dal kernel.

Nel tuo caso, data la posizione del file /media/sf_Ubuntue la proprietà del gruppo vboxsf, suppongo che il file, che si trova su un filesystem di condivisione file VirtualBox, sia bloccato nel sistema operativo host. Presumibilmente l'host è un computer Windows e hai anche il file aperto in un editor lì. Dovrai chiudere il file sull'host prima di poter salvare nell'editor nella VM.


4
Grazie. Sono sicuro al 100% che il file non sia in Windows e che nessun'altra applicazione lo sta utilizzando. Posso aprirlo usando OpenOffice e quindi sono sicuro che non sia aperto da altre applicazioni. È solo Gedit che non può salvarlo.
user654019,

2
Sto avendo lo stesso problema. ogni programma nel sistema operativo guest funziona alla grande ma gedit, qualcosa è successo.
GlassGhost

2

Verificare lsofse il file è aperto da un'altra applicazione

lsof /media/sf_Ubuntu/BuildNotes.txt

Oppure usa fuser:

fuser -km /media/sf_Ubuntu/BuildNotes.txt


1

Ciò che l'ha risolto per me (ancora un po 'fastidioso ma funziona), ed è applicabile a gedit, è:

modifica - preferenze - editor Metti un segno di spunta su "Crea copia di backup"

Al momento del salvataggio, salvare il file una volta, ignorare l'errore, salvare di nuovo. funziona ogni volta.


Nel 2019, questo errore si verifica ancora. Questa soluzione alternativa funziona.
David,

0

usando il terminale linux, prova a modificare il file usando vi nome_file e salvalo. ps non sono riuscito a trovare un'altra soluzione per questo problema. vi ha funzionato

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.