O Gedit não salva um arquivo em um compartilhamento do VirtualBox: Arquivo de texto ocupado

29

Eu tenho um arquivo de texto que posso alterar usando outros aplicativos (por exemplo openoffice). Mas quando tento alterar e salvar usando gedit, estou recebendo erro de gedit:

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

a permissão do BuildNotes.txt é a seguinte:

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

e o ID do usuário é:

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 é o problema e como posso corrigi-lo?

user654019
fonte
e o vim funciona bem ...
Leon

Respostas:

17

Este problema foi relatado desde 2009 (google for 'gedit virtualbox'). É horrível que ainda não haja solução. Nem os desenvolvedores do VirtualBox nem do Gedit estão dispostos a assumir a responsabilidade por isso e, em vez disso, se contentam em apontar os dedos por mais de três anos.

Você pode definir suas preferências de editor como 'Criar um backup' e salvar duas vezes. Incrivelmente doloroso, mas funciona.

Alguns outros editores não reportarão o problema. No entanto, quando testei o Kate e o nano, por exemplo, eles excluíram silenciosamente o arquivo em todos os outros salvos. Isso é ainda pior do que a situação do gedit ...

David
fonte
2
Seria útil se você incluísse um link para o relatório de erros de 2009; isso pode ajudar outras pessoas a rastrear o problema.
jasonwryan
Por favor, inclua na sua resposta: o site é um wiki ...
jasonwryan
2
Saudações do futuro. "Mais de três anos" agora se transformou em "Mais de oito anos" . Isso ainda é um problema.
pipe
então.....? Temos uma solução ou algo assim?
Mohd Abdul Mujib
6

"Arquivo de texto ocupado" pode ser confuso aqui: na verdade, não se trata de arquivos de texto, mas de executáveis. Os executáveis ​​são chamados de arquivos de texto porque ... hum, na verdade, não sei por quê .

O que a mensagem realmente significa é "esse arquivo está bloqueado por outro programa que o está usando e não pode ser modificado debaixo do nariz, para que você não possa gravá-lo". É bastante incomum ver esta mensagem por um tempo. arquivo de texto: os sistemas unix geralmente desaprovam os bloqueios obrigatórios nos arquivos e não há facilidade para os aplicativos impedirem que outros modifiquem um arquivo. (O Unix possui bloqueios de aviso: eles podem ser usados ​​para sincronizar acessos simultâneos a um arquivo por meio de programas cooperantes.) A circunstância mais comum quando você vê “arquivo de texto ocupado” ( ETXTBUSY) é se você tentar modificar um executável em execução: kernel bloqueia. Outra possibilidade é uma imagem de disco montada , novamente bloqueada pelo kernel.

No seu caso, dada a localização do arquivo /media/sf_Ubuntue a propriedade do grupo vboxsf, meu palpite é que o arquivo, que está em um sistema de arquivos de compartilhamento de arquivos do VirtualBox, está bloqueado no sistema operacional do host. Presumivelmente, o host é uma máquina Windows e você também tem o arquivo aberto em um editor. Você precisará fechar o arquivo no host antes de poder salvar no editor na VM.

Gilles 'SO- parar de ser mau'
fonte
4
obrigado. Tenho 100% de certeza de que o arquivo não está aberto no Windows e também nenhum outro aplicativo o está usando. Posso abri-lo usando o OpenOffice e, portanto, tenho certeza de que ele não é aberto por outros aplicativos. É apenas o gedit que não pode salvá-lo.
user654019
2
Estou tendo o mesmo problema. todo programa no sistema operacional convidado funciona muito bem, mas gedit, algo está acontecendo.
GlassGhost
2

Verifique lsofse o arquivo está aberto por outro aplicativo

lsof /media/sf_Ubuntu/BuildNotes.txt

Ou use fuser:

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

O que foi corrigido para mim (ainda um pouco chato, mas funciona) e é aplicável ao gedit, é:

editar - preferências - editor Marque a opção "Criar cópia de segurança"

Ao salvar a partir de agora, salve o arquivo uma vez, ignore o erro, salve novamente. funciona sempre.

Martin Levasseur
fonte
Em 2019, esse erro ainda ocorre. Esta solução alternativa funciona.
David
0

usando o terminal linux, tente editar o arquivo usando vi file_name e salve-o. ps Não consegui encontrar outra solução para esse problema. vi trabalhou

Hamsavardhini
fonte