Gedit não salvará um arquivo em um compartilhamento do VirtualBox: arquivo de texto ocupado

26

Eu tenho um arquivo de texto que posso alterar usando outros aplicativos (por exemplo, openoffice ). Mas quando tento alterar e salvá-lo usando gedit , estou recebendo o 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?

    
por user654019 26.10.2012 / 13:15

6 respostas

15

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

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

Alguns outros editores não relatam o problema. No entanto, quando eu testei o Kate e o nano, por exemplo, aqueles silenciosamente apagaram o arquivo em todos os outros salvos. Isso é ainda pior do que a situação do gedit ...

    
por 08.11.2012 / 02:50
6

"Arquivo de texto ocupado" pode ser confuso aqui: não é realmente sobre arquivos de texto, mas sobre executáveis. Os executáveis são chamados de arquivos de texto porque… hum, na verdade, I não sei porque .

O que a mensagem realmente significa é “esse arquivo está bloqueado por outro programa que o está usando e não pode ser modificado sob o seu nariz, então você não pode escrever nele.” É bastante incomum ver isso mensagem para um arquivo de texto: os sistemas unix geralmente desaprovam os bloqueios obrigatórios nos arquivos, e não há possibilidade de os aplicativos bloquearem outros de modificar um arquivo. (Unix tem bloqueios de aviso: eles podem ser usados para sincronizar acessos simultâneos a um arquivo através de programas cooperativos.) A circunstância mais comum quando você verá “arquivo de texto ocupado” ( ETXTBUSY ) é se você tentar modificar um executável que em execução: o kernel bloqueia. Outra possibilidade é uma imagem de disco que é montada , novamente bloqueada pelo kernel.

No seu caso, dada a localização do arquivo /media/sf_Ubuntu e 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 lá. Você precisará fechar o arquivo no host antes de salvar no editor na VM.

    
por 27.10.2012 / 01:30
2

Verifique com lsof se o arquivo estiver aberto por outro aplicativo

lsof /media/sf_Ubuntu/BuildNotes.txt

Ou use fuser :

fuser -km /media/sf_Ubuntu/BuildNotes.txt
    
por 26.10.2012 / 14:20
1

O problema é fundamentalmente com glib e a maneira como ele salva em um arquivo temporário e, em seguida, renomeia. O bug foi registrado como: link

    
por 19.06.2014 / 20:46
0

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

edit - preferences - editor Coloque uma verificação em "Criar cópia de backup"

Ao salvar de agora em diante, salve o arquivo uma vez, ignore o erro e salve novamente. funciona sempre.

    
por 12.11.2013 / 16:21
0

usando o terminal linux, tente editar o arquivo usando o vi file_name e salve-o. p.s Não consegui encontrar outra solução para este problema. vi trabalhado

    
por 22.09.2017 / 04:46